2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Copyright (C) 2017 Amdocs
8 * =============================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22 * ============LICENSE_END=========================================================
25 package org.onap.appc.provider;
27 import org.junit.After;
28 import org.junit.Assert;
29 import org.junit.Before;
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
32 import org.mockito.Mock;
33 import org.mockito.Spy;
34 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
35 import org.opendaylight.controller.md.sal.binding.test.AbstractDataBrokerTest;
36 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
37 import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
38 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
39 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AttachVolumeInput;
40 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AttachVolumeOutput;
41 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AttachVolumeOutputBuilder;
42 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AuditInput;
43 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AuditOutput;
44 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.CheckLockInput;
45 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.CheckLockOutput;
46 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigBackupDeleteInput;
47 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigBackupDeleteOutput;
48 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigBackupInput;
49 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigBackupOutput;
50 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigExportInput;
51 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigExportOutput;
52 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigModifyInput;
53 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigModifyOutput;
54 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigRestoreInput;
55 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigRestoreOutput;
56 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigureInput;
57 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigureOutput;
58 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.DetachVolumeInput;
59 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.DetachVolumeOutput;
60 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.DetachVolumeOutputBuilder;
61 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.EvacuateInput;
62 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.EvacuateOutput;
63 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.HealthCheckInput;
64 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.HealthCheckOutput;
65 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.LiveUpgradeInput;
66 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.LiveUpgradeOutput;
67 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.LockInput;
68 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.LockOutput;
69 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.MigrateInput;
70 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.MigrateOutput;
71 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QueryInput;
72 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QueryOutput;
73 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QueryOutputBuilder;
74 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QuiesceTrafficInput;
75 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QuiesceTrafficOutput;
76 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QuiesceTrafficOutputBuilder;
77 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ResumeTrafficInput;
78 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ResumeTrafficOutput;
79 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ResumeTrafficOutputBuilder;
80 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePreCheckInput;
81 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePreCheckOutput;
82 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePreCheckOutputBuilder;
83 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeSoftwareInput;
84 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeSoftwareOutput;
85 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeSoftwareOutputBuilder;
86 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePostCheckInput;
87 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePostCheckOutput;
88 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePostCheckOutputBuilder;
89 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackupInput;
90 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackupOutput;
91 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackupOutputBuilder;
92 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackoutInput;
93 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackoutOutput;
94 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackoutOutputBuilder;
95 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebootInput;
96 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebootOutput;
97 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebootOutputBuilder;
98 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebuildInput;
99 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebuildOutput;
100 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RestartInput;
101 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RestartOutput;
102 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RollbackInput;
103 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RollbackOutput;
104 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.SnapshotInput;
105 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.SnapshotOutput;
106 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.SoftwareUploadInput;
107 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.SoftwareUploadOutput;
108 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartApplicationInput;
109 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartApplicationOutput;
110 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartInput;
111 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartOutput;
112 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopApplicationInput;
113 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopApplicationOutput;
114 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopInput;
115 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopOutput;
116 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.SyncInput;
117 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.SyncOutput;
118 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.TerminateInput;
119 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.TerminateOutput;
120 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.TestInput;
121 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.TestOutput;
122 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UnlockInput;
123 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UnlockOutput;
124 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ZULU;
125 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.action.identifiers.ActionIdentifiers;
126 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.action.identifiers.ActionIdentifiersBuilder;
127 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.common.header.CommonHeader;
128 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.common.header.CommonHeaderBuilder;
129 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.status.Status;
130 import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.status.StatusBuilder;
131 import org.opendaylight.yangtools.yang.common.RpcResult;
132 import org.onap.appc.domainmodel.lcm.ResponseContext;
133 import org.onap.appc.executor.objects.LCMCommandStatus;
134 import org.onap.appc.provider.lcm.service.*;
135 import org.onap.appc.provider.lcm.util.ValidationService;
136 import org.onap.appc.requesthandler.objects.RequestHandlerOutput;
137 import org.osgi.framework.FrameworkUtil;
138 import org.powermock.api.mockito.PowerMockito;
139 import org.powermock.core.classloader.annotations.PrepareForTest;
140 import org.powermock.modules.junit4.PowerMockRunner;
141 import org.powermock.reflect.Whitebox;
143 import java.time.Clock;
144 import java.time.LocalDateTime;
145 import java.util.HashMap;
146 import java.util.Map;
147 import java.util.concurrent.ExecutorService;
148 import java.util.concurrent.Executors;
149 import java.util.concurrent.Future;
151 import static org.mockito.Matchers.any;
152 import static org.mockito.Mockito.doReturn;
153 import static org.mockito.Mockito.mock;
154 import static org.mockito.Mockito.spy;
155 import static org.mockito.Mockito.times;
156 import static org.mockito.Mockito.verify;
157 import static org.mockito.Mockito.when;
158 import static org.powermock.api.mockito.PowerMockito.mockStatic;
159 import static org.powermock.api.mockito.PowerMockito.whenNew;
162 * Integration Test class for AppcProviderLcm.
164 @RunWith(PowerMockRunner.class)
165 @PrepareForTest({FrameworkUtil.class, AppcProviderLcm.class, QueryService.class, VolumeService.class,
166 QuiesceTrafficService.class, ValidationService.class})
167 public class AppcProviderLcmTest extends AbstractDataBrokerTest {
168 private Status successStatus = new StatusBuilder().setCode(400).setMessage("success").build();
169 private Status failStatus = new StatusBuilder().setCode(401).setMessage("failure").build();
171 private AppcProviderLcm appcProviderLcm;
172 private DataBroker dataBroker;
174 private ValidationService validationService = ValidationService.getInstance();
176 private RequestHandlerOutput requestHandlerOutput;
178 private ResponseContext responseContext;
180 private org.onap.appc.domainmodel.lcm.Status successlcmStatus;
183 * The @Before annotation is defined in the AbstractDataBrokerTest class. The method setupWithDataBroker is invoked
184 * from inside the @Before method and is used to initialize the databroker with objects for a test runs. In our case
185 * we use this oportunity to create an instance of our provider and initialize it (which registers it as a listener
186 * etc). This method runs before every @Test method below.
189 protected void setupWithDataBroker(DataBroker dataBroker) {
190 super.setupWithDataBroker(dataBroker);
192 this.dataBroker = dataBroker;
196 public void setUp() throws Exception {
197 //mock appcProviderLcm
198 NotificationProviderService nps = mock(NotificationProviderService.class);
199 RpcProviderRegistry registry = mock(RpcProviderRegistry.class);
200 BindingAwareBroker.RpcRegistration rpcRegistration = mock(BindingAwareBroker.RpcRegistration.class);
201 PowerMockito.doReturn(rpcRegistration).when(registry).addRpcImplementation(any(), any());
202 appcProviderLcm = spy(new AppcProviderLcm(dataBroker, nps, registry));
203 //mock validationService
204 mockStatic(ValidationService.class);
205 PowerMockito.when(ValidationService.getInstance()).thenReturn(validationService);
207 doReturn(successlcmStatus).when(responseContext).getStatus();
208 doReturn(400).when(successlcmStatus).getCode();
209 doReturn("success").when(successlcmStatus).getMessage();
213 public void testConstructor() throws Exception {
214 ExecutorService executorService = Whitebox.getInternalState(appcProviderLcm, "executor");
215 Assert.assertNotNull(executorService);
216 BindingAwareBroker.RpcRegistration internalRpcRegistration = Whitebox.getInternalState(appcProviderLcm,
218 Assert.assertNotNull(internalRpcRegistration);
222 public void testClose() throws Exception {
223 ExecutorService executorService = spy(Executors.newFixedThreadPool(1));
224 Whitebox.setInternalState(appcProviderLcm, "executor", executorService);
225 BindingAwareBroker.RpcRegistration rpcRegistration = mock(BindingAwareBroker.RpcRegistration.class);
226 Whitebox.setInternalState(appcProviderLcm, "rpcRegistration", rpcRegistration);
227 appcProviderLcm.close();
229 verify(executorService, times(1)).shutdown();
230 verify(rpcRegistration, times(1)).close();
234 public void testRebuild() throws Exception {
235 // Validation success
236 doReturn("Success").when(successlcmStatus).getMessage();
237 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
238 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
239 doReturn(null).when(validationService).validateInput(any(), any(), any());
241 RebuildInput rebuildInput = mock(RebuildInput.class);
242 doReturn(newCommonHeader("request-id-test")).when(rebuildInput).getCommonHeader();
243 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
244 .when(rebuildInput).getActionIdentifiers();
246 Future<RpcResult<RebuildOutput>> results = appcProviderLcm.rebuild(rebuildInput);
247 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
248 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
249 verify(appcProviderLcm, times(1)).executeRequest(any());
252 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
253 results = appcProviderLcm.rebuild(rebuildInput);
254 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
255 verify(appcProviderLcm, times(1)).executeRequest(any());
258 doReturn(null).when(validationService).validateInput(any(), any(), any());
259 doReturn(null).when(rebuildInput).getActionIdentifiers();
260 results = appcProviderLcm.rebuild(rebuildInput);
261 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
262 == results.get().getResult().getStatus().getCode());
263 verify(appcProviderLcm, times(1)).executeRequest(any());
267 public void testRestart() throws Exception {
268 // Validation success
269 doReturn("Success").when(successlcmStatus).getMessage();
270 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
271 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
272 doReturn(null).when(validationService).validateInput(any(), any(), any());
274 RestartInput restartInput = mock(RestartInput.class);
275 doReturn(newCommonHeader("request-id-test")).when(restartInput).getCommonHeader();
276 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
277 .when(restartInput).getActionIdentifiers();
279 Future<RpcResult<RestartOutput>> results = appcProviderLcm.restart(restartInput);
280 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
281 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
282 verify(appcProviderLcm, times(1)).executeRequest(any());
285 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
286 results = appcProviderLcm.restart(restartInput);
287 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
288 verify(appcProviderLcm, times(1)).executeRequest(any());
291 doReturn(null).when(validationService).validateInput(any(), any(), any());
292 doReturn(null).when(restartInput).getActionIdentifiers();
293 results = appcProviderLcm.restart(restartInput);
294 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
295 == results.get().getResult().getStatus().getCode());
296 verify(appcProviderLcm, times(1)).executeRequest(any());
300 public void testStartApplication() throws Exception {
301 // Validation success
302 doReturn("Success").when(successlcmStatus).getMessage();
303 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
304 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
305 doReturn(null).when(validationService).validateInput(any(), any(), any());
307 StartApplicationInput startApplicationInput = mock(StartApplicationInput.class);
308 doReturn(newCommonHeader("request-id-test")).when(startApplicationInput).getCommonHeader();
309 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
310 .when(startApplicationInput).getActionIdentifiers();
312 Future<RpcResult<StartApplicationOutput>> results = appcProviderLcm.startApplication(startApplicationInput);
313 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
314 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
315 verify(appcProviderLcm, times(1)).executeRequest(any());
318 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
319 results = appcProviderLcm.startApplication(startApplicationInput);
320 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
321 verify(appcProviderLcm, times(1)).executeRequest(any());
324 doReturn(null).when(validationService).validateInput(any(), any(), any());
325 doReturn(null).when(startApplicationInput).getActionIdentifiers();
326 results = appcProviderLcm.startApplication(startApplicationInput);
327 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
328 == results.get().getResult().getStatus().getCode());
329 verify(appcProviderLcm, times(1)).executeRequest(any());
333 public void testMigrate() throws Exception {
334 // Validation success
335 doReturn("Success").when(successlcmStatus).getMessage();
336 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
337 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
338 doReturn(null).when(validationService).validateInput(any(), any(), any());
340 MigrateInput migrateInput = mock(MigrateInput.class);
341 doReturn(newCommonHeader("request-id-test")).when(migrateInput).getCommonHeader();
342 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
343 .when(migrateInput).getActionIdentifiers();
345 Future<RpcResult<MigrateOutput>> results = appcProviderLcm.migrate(migrateInput);
346 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
347 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
348 verify(appcProviderLcm, times(1)).executeRequest(any());
351 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
352 results = appcProviderLcm.migrate(migrateInput);
353 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
354 verify(appcProviderLcm, times(1)).executeRequest(any());
357 doReturn(null).when(validationService).validateInput(any(), any(), any());
358 doReturn(null).when(migrateInput).getActionIdentifiers();
359 results = appcProviderLcm.migrate(migrateInput);
360 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
361 == results.get().getResult().getStatus().getCode());
362 verify(appcProviderLcm, times(1)).executeRequest(any());
366 public void testEvacuate() throws Exception {
367 // Validation success
368 doReturn("Success").when(successlcmStatus).getMessage();
369 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
370 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
371 doReturn(null).when(validationService).validateInput(any(), any(), any());
373 EvacuateInput evacuateInput = mock(EvacuateInput.class);
374 doReturn(newCommonHeader("request-id-test")).when(evacuateInput).getCommonHeader();
375 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
376 .when(evacuateInput).getActionIdentifiers();
378 Future<RpcResult<EvacuateOutput>> results = appcProviderLcm.evacuate(evacuateInput);
379 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
380 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
381 verify(appcProviderLcm, times(1)).executeRequest(any());
384 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
385 results = appcProviderLcm.evacuate(evacuateInput);
386 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
387 verify(appcProviderLcm, times(1)).executeRequest(any());
390 doReturn(null).when(validationService).validateInput(any(), any(), any());
391 doReturn(null).when(evacuateInput).getActionIdentifiers();
392 results = appcProviderLcm.evacuate(evacuateInput);
393 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
394 == results.get().getResult().getStatus().getCode());
395 verify(appcProviderLcm, times(1)).executeRequest(any());
399 public void testSnapshot() throws Exception {
400 // Validation success
401 doReturn("Success").when(successlcmStatus).getMessage();
402 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
403 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
404 doReturn(null).when(validationService).validateInput(any(), any(), any());
406 SnapshotInput snapshotInput = mock(SnapshotInput.class);
407 doReturn(newCommonHeader("request-id-test")).when(snapshotInput).getCommonHeader();
408 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
409 .when(snapshotInput).getActionIdentifiers();
411 Future<RpcResult<SnapshotOutput>> results = appcProviderLcm.snapshot(snapshotInput);
412 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
413 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
414 verify(appcProviderLcm, times(1)).executeRequest(any());
417 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
418 results = appcProviderLcm.snapshot(snapshotInput);
419 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
420 verify(appcProviderLcm, times(1)).executeRequest(any());
423 doReturn(null).when(validationService).validateInput(any(), any(), any());
424 doReturn(null).when(snapshotInput).getActionIdentifiers();
425 results = appcProviderLcm.snapshot(snapshotInput);
426 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
427 == results.get().getResult().getStatus().getCode());
428 verify(appcProviderLcm, times(1)).executeRequest(any());
432 public void testRollback() throws Exception {
433 // Validation success
434 doReturn("Success").when(successlcmStatus).getMessage();
435 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
436 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
437 doReturn(null).when(validationService).validateInput(any(), any(), any());
439 RollbackInput rollbackInput = mock(RollbackInput.class);
440 doReturn(newCommonHeader("request-id-test")).when(rollbackInput).getCommonHeader();
441 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
442 .when(rollbackInput).getActionIdentifiers();
444 Future<RpcResult<RollbackOutput>> results = appcProviderLcm.rollback(rollbackInput);
445 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
446 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
447 verify(appcProviderLcm, times(1)).executeRequest(any());
450 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
451 results = appcProviderLcm.rollback(rollbackInput);
452 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
453 verify(appcProviderLcm, times(1)).executeRequest(any());
456 doReturn(null).when(validationService).validateInput(any(), any(), any());
457 doReturn(null).when(rollbackInput).getActionIdentifiers();
458 results = appcProviderLcm.rollback(rollbackInput);
459 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
460 == results.get().getResult().getStatus().getCode());
461 verify(appcProviderLcm, times(1)).executeRequest(any());
465 public void testSync() throws Exception {
466 // Validation success
467 doReturn("Success").when(successlcmStatus).getMessage();
468 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
469 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
470 doReturn(null).when(validationService).validateInput(any(), any(), any());
472 SyncInput syncInput = mock(SyncInput.class);
473 doReturn(newCommonHeader("request-id-test")).when(syncInput).getCommonHeader();
474 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
475 .when(syncInput).getActionIdentifiers();
477 Future<RpcResult<SyncOutput>> results = appcProviderLcm.sync(syncInput);
478 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
479 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
480 verify(appcProviderLcm, times(1)).executeRequest(any());
483 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
484 results = appcProviderLcm.sync(syncInput);
485 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
486 verify(appcProviderLcm, times(1)).executeRequest(any());
489 doReturn(null).when(validationService).validateInput(any(), any(), any());
490 doReturn(null).when(syncInput).getActionIdentifiers();
491 results = appcProviderLcm.sync(syncInput);
492 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
493 == results.get().getResult().getStatus().getCode());
494 verify(appcProviderLcm, times(1)).executeRequest(any());
498 public void testTerminate() throws Exception {
499 // Validation success
500 doReturn("Success").when(successlcmStatus).getMessage();
501 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
502 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
503 doReturn(null).when(validationService).validateInput(any(), any(), any());
505 TerminateInput terminateInput = mock(TerminateInput.class);
506 doReturn(newCommonHeader("request-id-test")).when(terminateInput).getCommonHeader();
507 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
508 .when(terminateInput).getActionIdentifiers();
510 Future<RpcResult<TerminateOutput>> results = appcProviderLcm.terminate(terminateInput);
511 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
512 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
513 verify(appcProviderLcm, times(1)).executeRequest(any());
516 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
517 results = appcProviderLcm.terminate(terminateInput);
518 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
519 verify(appcProviderLcm, times(1)).executeRequest(any());
522 doReturn(null).when(validationService).validateInput(any(), any(), any());
523 doReturn(null).when(terminateInput).getActionIdentifiers();
524 results = appcProviderLcm.terminate(terminateInput);
525 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
526 == results.get().getResult().getStatus().getCode());
527 verify(appcProviderLcm, times(1)).executeRequest(any());
531 public void testConfigure() throws Exception {
532 // Validation success
533 doReturn("Success").when(successlcmStatus).getMessage();
534 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
535 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
536 doReturn(null).when(validationService).validateInput(any(), any(), any());
538 ConfigureInput configureInput = mock(ConfigureInput.class);
539 doReturn(newCommonHeader("request-id-test")).when(configureInput).getCommonHeader();
540 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
541 .when(configureInput).getActionIdentifiers();
543 Future<RpcResult<ConfigureOutput>> results = appcProviderLcm.configure(configureInput);
544 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
545 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
546 verify(appcProviderLcm, times(1)).executeRequest(any());
549 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
550 results = appcProviderLcm.configure(configureInput);
551 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
552 verify(appcProviderLcm, times(1)).executeRequest(any());
555 doReturn(null).when(validationService).validateInput(any(), any(), any());
556 doReturn(null).when(configureInput).getActionIdentifiers();
557 results = appcProviderLcm.configure(configureInput);
558 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
559 == results.get().getResult().getStatus().getCode());
560 verify(appcProviderLcm, times(1)).executeRequest(any());
564 public void testConfigModify() throws Exception {
565 // Validation success
566 doReturn("Success").when(successlcmStatus).getMessage();
567 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
568 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
569 doReturn(null).when(validationService).validateInput(any(), any(), any());
571 ConfigModifyInput configModifyInput = mock(ConfigModifyInput.class);
572 doReturn(newCommonHeader("request-id-test")).when(configModifyInput).getCommonHeader();
573 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
574 .when(configModifyInput).getActionIdentifiers();
576 Future<RpcResult<ConfigModifyOutput>> results = appcProviderLcm.configModify(configModifyInput);
577 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
578 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
579 verify(appcProviderLcm, times(1)).executeRequest(any());
582 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
583 results = appcProviderLcm.configModify(configModifyInput);
584 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
585 verify(appcProviderLcm, times(1)).executeRequest(any());
588 doReturn(null).when(validationService).validateInput(any(), any(), any());
589 doReturn(null).when(configModifyInput).getActionIdentifiers();
590 results = appcProviderLcm.configModify(configModifyInput);
591 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
592 == results.get().getResult().getStatus().getCode());
593 verify(appcProviderLcm, times(1)).executeRequest(any());
597 public void testConfigRestore() throws Exception {
598 // Validation success
599 doReturn("Success").when(successlcmStatus).getMessage();
600 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
601 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
602 doReturn(null).when(validationService).validateInput(any(), any(), any());
604 ConfigRestoreInput configRestoreInput = mock(ConfigRestoreInput.class);
605 doReturn(newCommonHeader("request-id-test")).when(configRestoreInput).getCommonHeader();
606 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
607 .when(configRestoreInput).getActionIdentifiers();
609 Future<RpcResult<ConfigRestoreOutput>> results = appcProviderLcm.configRestore(configRestoreInput);
610 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
611 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
612 verify(appcProviderLcm, times(1)).executeRequest(any());
615 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
616 results = appcProviderLcm.configRestore(configRestoreInput);
617 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
618 verify(appcProviderLcm, times(1)).executeRequest(any());
621 doReturn(null).when(validationService).validateInput(any(), any(), any());
622 doReturn(null).when(configRestoreInput).getActionIdentifiers();
623 results = appcProviderLcm.configRestore(configRestoreInput);
624 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
625 == results.get().getResult().getStatus().getCode());
626 verify(appcProviderLcm, times(1)).executeRequest(any());
630 public void testTest() throws Exception {
631 // Validation success
632 doReturn("Success").when(successlcmStatus).getMessage();
633 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
634 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
635 doReturn(null).when(validationService).validateInput(any(), any(), any());
637 TestInput testInput = mock(TestInput.class);
638 doReturn(newCommonHeader("request-id-test")).when(testInput).getCommonHeader();
639 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
640 .when(testInput).getActionIdentifiers();
642 Future<RpcResult<TestOutput>> results = appcProviderLcm.test(testInput);
643 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
644 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
645 verify(appcProviderLcm, times(1)).executeRequest(any());
648 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
649 results = appcProviderLcm.test(testInput);
650 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
651 verify(appcProviderLcm, times(1)).executeRequest(any());
654 doReturn(null).when(validationService).validateInput(any(), any(), any());
655 doReturn(null).when(testInput).getActionIdentifiers();
656 results = appcProviderLcm.test(testInput);
657 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
658 == results.get().getResult().getStatus().getCode());
659 verify(appcProviderLcm, times(1)).executeRequest(any());
663 public void testStop() throws Exception {
664 // Validation success
665 doReturn("Success").when(successlcmStatus).getMessage();
666 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
667 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
668 doReturn(null).when(validationService).validateInput(any(), any(), any());
670 StopInput stopInput = mock(StopInput.class);
671 doReturn(newCommonHeader("request-id-stop")).when(stopInput).getCommonHeader();
672 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
673 .when(stopInput).getActionIdentifiers();
675 Future<RpcResult<StopOutput>> results = appcProviderLcm.stop(stopInput);
676 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
677 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
678 verify(appcProviderLcm, times(1)).executeRequest(any());
681 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
682 results = appcProviderLcm.stop(stopInput);
683 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
684 verify(appcProviderLcm, times(1)).executeRequest(any());
687 doReturn(null).when(validationService).validateInput(any(), any(), any());
688 doReturn(null).when(stopInput).getActionIdentifiers();
689 results = appcProviderLcm.stop(stopInput);
690 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
691 == results.get().getResult().getStatus().getCode());
692 verify(appcProviderLcm, times(1)).executeRequest(any());
696 public void testStart() throws Exception {
697 // Validation success
698 doReturn("Success").when(successlcmStatus).getMessage();
699 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
700 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
701 doReturn(null).when(validationService).validateInput(any(), any(), any());
703 StartInput startInput = mock(StartInput.class);
704 doReturn(newCommonHeader("request-id-start")).when(startInput).getCommonHeader();
705 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
706 .when(startInput).getActionIdentifiers();
708 Future<RpcResult<StartOutput>> results = appcProviderLcm.start(startInput);
709 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
710 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
711 verify(appcProviderLcm, times(1)).executeRequest(any());
714 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
715 results = appcProviderLcm.start(startInput);
716 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
717 verify(appcProviderLcm, times(1)).executeRequest(any());
720 doReturn(null).when(validationService).validateInput(any(), any(), any());
721 doReturn(null).when(startInput).getActionIdentifiers();
722 results = appcProviderLcm.start(startInput);
723 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
724 == results.get().getResult().getStatus().getCode());
725 verify(appcProviderLcm, times(1)).executeRequest(any());
729 public void testAudit() throws Exception {
730 // Validation success
731 doReturn("Success").when(successlcmStatus).getMessage();
732 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
733 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
734 doReturn(null).when(validationService).validateInput(any(), any(), any());
736 AuditInput auditInput = mock(AuditInput.class);
737 doReturn(newCommonHeader("request-id-aduit")).when(auditInput).getCommonHeader();
738 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
739 .when(auditInput).getActionIdentifiers();
741 Future<RpcResult<AuditOutput>> results = appcProviderLcm.audit(auditInput);
742 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
743 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
744 verify(appcProviderLcm, times(1)).executeRequest(any());
747 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
748 results = appcProviderLcm.audit(auditInput);
749 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
750 verify(appcProviderLcm, times(1)).executeRequest(any());
753 doReturn(null).when(validationService).validateInput(any(), any(), any());
754 doReturn(null).when(auditInput).getActionIdentifiers();
755 results = appcProviderLcm.audit(auditInput);
756 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
757 == results.get().getResult().getStatus().getCode());
758 verify(appcProviderLcm, times(1)).executeRequest(any());
762 public void testSoftwareUpload() throws Exception {
763 // Validation success
764 doReturn("Success").when(successlcmStatus).getMessage();
765 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
766 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
767 doReturn(null).when(validationService).validateInput(any(), any(), any());
769 SoftwareUploadInput softwareUploadInput = mock(SoftwareUploadInput.class);
770 doReturn(newCommonHeader("request-id-aduit")).when(softwareUploadInput).getCommonHeader();
771 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
772 .when(softwareUploadInput).getActionIdentifiers();
774 Future<RpcResult<SoftwareUploadOutput>> results = appcProviderLcm.softwareUpload(softwareUploadInput);
775 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
776 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
777 verify(appcProviderLcm, times(1)).executeRequest(any());
780 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
781 results = appcProviderLcm.softwareUpload(softwareUploadInput);
782 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
783 verify(appcProviderLcm, times(1)).executeRequest(any());
786 doReturn(null).when(validationService).validateInput(any(), any(), any());
787 doReturn(null).when(softwareUploadInput).getActionIdentifiers();
788 results = appcProviderLcm.softwareUpload(softwareUploadInput);
789 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
790 == results.get().getResult().getStatus().getCode());
791 verify(appcProviderLcm, times(1)).executeRequest(any());
795 public void testHealthCheck() throws Exception {
796 // Validation success
797 doReturn("Success").when(successlcmStatus).getMessage();
798 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
799 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
800 doReturn(null).when(validationService).validateInput(any(), any(), any());
802 HealthCheckInput healthCheckInput = mock(HealthCheckInput.class);
803 doReturn(newCommonHeader("request-id-aduit")).when(healthCheckInput).getCommonHeader();
804 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
805 .when(healthCheckInput).getActionIdentifiers();
807 Future<RpcResult<HealthCheckOutput>> results = appcProviderLcm.healthCheck(healthCheckInput);
808 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
809 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
810 verify(appcProviderLcm, times(1)).executeRequest(any());
813 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
814 results = appcProviderLcm.healthCheck(healthCheckInput);
815 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
816 verify(appcProviderLcm, times(1)).executeRequest(any());
819 doReturn(null).when(validationService).validateInput(any(), any(), any());
820 doReturn(null).when(healthCheckInput).getActionIdentifiers();
821 results = appcProviderLcm.healthCheck(healthCheckInput);
822 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
823 == results.get().getResult().getStatus().getCode());
824 verify(appcProviderLcm, times(1)).executeRequest(any());
828 public void testLiveUpgrade() throws Exception {
829 // Validation success
830 doReturn("Success").when(successlcmStatus).getMessage();
831 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
832 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
833 doReturn(null).when(validationService).validateInput(any(), any(), any());
835 LiveUpgradeInput liveUpgradeInput = mock(LiveUpgradeInput.class);
836 doReturn(newCommonHeader("request-id-aduit")).when(liveUpgradeInput).getCommonHeader();
837 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
838 .when(liveUpgradeInput).getActionIdentifiers();
840 Future<RpcResult<LiveUpgradeOutput>> results = appcProviderLcm.liveUpgrade(liveUpgradeInput);
841 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
842 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
843 verify(appcProviderLcm, times(1)).executeRequest(any());
846 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
847 results = appcProviderLcm.liveUpgrade(liveUpgradeInput);
848 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
849 verify(appcProviderLcm, times(1)).executeRequest(any());
852 doReturn(null).when(validationService).validateInput(any(), any(), any());
853 doReturn(null).when(liveUpgradeInput).getActionIdentifiers();
854 results = appcProviderLcm.liveUpgrade(liveUpgradeInput);
855 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
856 == results.get().getResult().getStatus().getCode());
857 verify(appcProviderLcm, times(1)).executeRequest(any());
861 public void testLock() throws Exception {
862 // Validation success
863 doReturn("Success").when(successlcmStatus).getMessage();
864 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
865 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
866 doReturn(null).when(validationService).validateInput(any(), any(), any());
868 LockInput lockInput = mock(LockInput.class);
869 doReturn(newCommonHeader("request-id-aduit")).when(lockInput).getCommonHeader();
870 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
871 .when(lockInput).getActionIdentifiers();
873 Future<RpcResult<LockOutput>> results = appcProviderLcm.lock(lockInput);
874 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
875 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
876 verify(appcProviderLcm, times(1)).executeRequest(any());
879 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
880 results = appcProviderLcm.lock(lockInput);
881 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
882 verify(appcProviderLcm, times(1)).executeRequest(any());
885 doReturn(null).when(validationService).validateInput(any(), any(), any());
886 doReturn(null).when(lockInput).getActionIdentifiers();
887 results = appcProviderLcm.lock(lockInput);
888 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
889 == results.get().getResult().getStatus().getCode());
890 verify(appcProviderLcm, times(1)).executeRequest(any());
894 public void testUnlock() throws Exception {
895 // Validation success
896 doReturn("Success").when(successlcmStatus).getMessage();
897 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
898 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
899 doReturn(null).when(validationService).validateInput(any(), any(), any());
901 UnlockInput unlockInput = mock(UnlockInput.class);
902 doReturn(newCommonHeader("request-id-aduit")).when(unlockInput).getCommonHeader();
903 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
904 .when(unlockInput).getActionIdentifiers();
906 Future<RpcResult<UnlockOutput>> results = appcProviderLcm.unlock(unlockInput);
907 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
908 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
909 verify(appcProviderLcm, times(1)).executeRequest(any());
912 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
913 results = appcProviderLcm.unlock(unlockInput);
914 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
915 verify(appcProviderLcm, times(1)).executeRequest(any());
918 doReturn(null).when(validationService).validateInput(any(), any(), any());
919 doReturn(null).when(unlockInput).getActionIdentifiers();
920 results = appcProviderLcm.unlock(unlockInput);
921 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
922 == results.get().getResult().getStatus().getCode());
923 verify(appcProviderLcm, times(1)).executeRequest(any());
927 public void testCheckLock() throws Exception {
928 // Validation success
929 doReturn("Success").when(successlcmStatus).getMessage();
930 Map<String, String> additionalContext = new HashMap<>();
931 additionalContext.put("locked", "true");
932 doReturn(additionalContext).when(responseContext).getAdditionalContext();
933 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
934 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
935 doReturn(null).when(validationService).validateInput(any(), any(), any());
936 CheckLockInput checkLockInput = mock(CheckLockInput.class);
937 doReturn(newCommonHeader("request-id-aduit")).when(checkLockInput).getCommonHeader();
938 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
939 .when(checkLockInput).getActionIdentifiers();
941 Future<RpcResult<CheckLockOutput>> results = appcProviderLcm.checkLock(checkLockInput);
942 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
943 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
944 verify(appcProviderLcm, times(1)).executeRequest(any());
947 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
948 results = appcProviderLcm.checkLock(checkLockInput);
949 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
950 verify(appcProviderLcm, times(1)).executeRequest(any());
953 doReturn(null).when(validationService).validateInput(any(), any(), any());
954 doReturn(null).when(checkLockInput).getActionIdentifiers();
955 results = appcProviderLcm.checkLock(checkLockInput);
956 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
957 == results.get().getResult().getStatus().getCode());
958 verify(appcProviderLcm, times(1)).executeRequest(any());
962 public void testConfigBackup() throws Exception {
963 // Validation success
964 doReturn("Success").when(successlcmStatus).getMessage();
965 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
966 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
967 doReturn(null).when(validationService).validateInput(any(), any(), any());
969 ConfigBackupInput configBackupInput = mock(ConfigBackupInput.class);
970 doReturn(newCommonHeader("request-id-aduit")).when(configBackupInput).getCommonHeader();
971 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
972 .when(configBackupInput).getActionIdentifiers();
974 Future<RpcResult<ConfigBackupOutput>> results = appcProviderLcm.configBackup(configBackupInput);
975 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
976 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
977 verify(appcProviderLcm, times(1)).executeRequest(any());
980 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
981 results = appcProviderLcm.configBackup(configBackupInput);
982 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
983 verify(appcProviderLcm, times(1)).executeRequest(any());
986 doReturn(null).when(validationService).validateInput(any(), any(), any());
987 doReturn(null).when(configBackupInput).getActionIdentifiers();
988 results = appcProviderLcm.configBackup(configBackupInput);
989 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
990 == results.get().getResult().getStatus().getCode());
991 verify(appcProviderLcm, times(1)).executeRequest(any());
995 public void testConfigBackupDelete() throws Exception {
996 // Validation success
997 doReturn("Success").when(successlcmStatus).getMessage();
998 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
999 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
1000 doReturn(null).when(validationService).validateInput(any(), any(), any());
1002 ConfigBackupDeleteInput configBackupDeleteInput = mock(ConfigBackupDeleteInput.class);
1003 doReturn(newCommonHeader("request-id-aduit")).when(configBackupDeleteInput).getCommonHeader();
1004 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
1005 .when(configBackupDeleteInput).getActionIdentifiers();
1007 Future<RpcResult<ConfigBackupDeleteOutput>> results = appcProviderLcm.configBackupDelete
1008 (configBackupDeleteInput);
1009 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
1010 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
1011 verify(appcProviderLcm, times(1)).executeRequest(any());
1013 // Validation failed
1014 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
1015 results = appcProviderLcm.configBackupDelete(configBackupDeleteInput);
1016 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
1017 verify(appcProviderLcm, times(1)).executeRequest(any());
1020 doReturn(null).when(validationService).validateInput(any(), any(), any());
1021 doReturn(null).when(configBackupDeleteInput).getActionIdentifiers();
1022 results = appcProviderLcm.configBackupDelete(configBackupDeleteInput);
1023 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
1024 == results.get().getResult().getStatus().getCode());
1025 verify(appcProviderLcm, times(1)).executeRequest(any());
1029 public void testConfigExport() throws Exception {
1030 // Validation success
1031 doReturn("Success").when(successlcmStatus).getMessage();
1032 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
1033 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
1034 doReturn(null).when(validationService).validateInput(any(), any(), any());
1036 ConfigExportInput configExportInput = mock(ConfigExportInput.class);
1037 doReturn(newCommonHeader("request-id-aduit")).when(configExportInput).getCommonHeader();
1038 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
1039 .when(configExportInput).getActionIdentifiers();
1041 Future<RpcResult<ConfigExportOutput>> results = appcProviderLcm.configExport
1042 (configExportInput);
1043 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
1044 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
1045 verify(appcProviderLcm, times(1)).executeRequest(any());
1047 // Validation failed
1048 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
1049 results = appcProviderLcm.configExport(configExportInput);
1050 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
1051 verify(appcProviderLcm, times(1)).executeRequest(any());
1054 doReturn(null).when(validationService).validateInput(any(), any(), any());
1055 doReturn(null).when(configExportInput).getActionIdentifiers();
1056 results = appcProviderLcm.configExport(configExportInput);
1057 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
1058 == results.get().getResult().getStatus().getCode());
1059 verify(appcProviderLcm, times(1)).executeRequest(any());
1063 public void testStopApplication() throws Exception {
1064 // Validation success
1065 doReturn("Success").when(successlcmStatus).getMessage();
1066 doReturn(responseContext).when(requestHandlerOutput).getResponseContext();
1067 doReturn(requestHandlerOutput).when(appcProviderLcm).executeRequest(any());
1068 doReturn(null).when(validationService).validateInput(any(), any(), any());
1070 StopApplicationInput stopApplicationInput = mock(StopApplicationInput.class);
1071 doReturn(newCommonHeader("request-id-aduit")).when(stopApplicationInput).getCommonHeader();
1072 doReturn(newActionIdentifier("vnf-id", "vnfc-id", "vserver-id"))
1073 .when(stopApplicationInput).getActionIdentifiers();
1075 Future<RpcResult<StopApplicationOutput>> results = appcProviderLcm.stopApplication
1076 (stopApplicationInput);
1077 Assert.assertTrue(400 == results.get().getResult().getStatus().getCode());
1078 Assert.assertEquals("Success", results.get().getResult().getStatus().getMessage());
1079 verify(appcProviderLcm, times(1)).executeRequest(any());
1081 // Validation failed
1082 doReturn(failStatus).when(validationService).validateInput(any(), any(), any());
1083 results = appcProviderLcm.stopApplication(stopApplicationInput);
1084 Assert.assertEquals(failStatus, results.get().getResult().getStatus());
1085 verify(appcProviderLcm, times(1)).executeRequest(any());
1088 doReturn(null).when(validationService).validateInput(any(), any(), any());
1089 doReturn(null).when(stopApplicationInput).getActionIdentifiers();
1090 results = appcProviderLcm.stopApplication(stopApplicationInput);
1091 Assert.assertTrue(LCMCommandStatus.REQUEST_PARSING_FAILED.getResponseCode()
1092 == results.get().getResult().getStatus().getCode());
1093 verify(appcProviderLcm, times(1)).executeRequest(any());
1097 public void testQuery() throws Exception {
1098 QueryInput mockInput = mock(QueryInput.class);
1099 QueryOutput mockOutput = mock(QueryOutput.class);
1100 QueryOutputBuilder mockQueryOutputBuilder = mock(QueryOutputBuilder.class);
1101 QueryService mockQuery = mock(QueryService.class);
1103 whenNew(QueryService.class).withNoArguments().thenReturn(mockQuery);
1104 when(mockQuery.process(mockInput)).thenReturn(mockQueryOutputBuilder);
1105 when(mockQueryOutputBuilder.build()).thenReturn(mockOutput);
1107 Future<RpcResult<QueryOutput>> results = appcProviderLcm.query(mockInput);
1108 verify(mockQuery, times(1)).process(mockInput);
1109 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1113 public void testReboot() throws Exception {
1114 RebootInput mockInput = mock(RebootInput.class);
1115 RebootOutput mockOutput = mock(RebootOutput.class);
1116 RebootOutputBuilder mockRebootOutputBuilder = mock(RebootOutputBuilder.class);
1117 RebootService mockReboot = mock(RebootService.class);
1119 whenNew(RebootService.class).withNoArguments().thenReturn(mockReboot);
1120 when(mockReboot.process(mockInput)).thenReturn(mockRebootOutputBuilder);
1121 when(mockRebootOutputBuilder.build()).thenReturn(mockOutput);
1123 Future<RpcResult<RebootOutput>> results = appcProviderLcm.reboot(mockInput);
1124 verify(mockReboot, times(1)).process(mockInput);
1125 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1129 public void testAttachVolume() throws Exception {
1130 AttachVolumeInput mockInput = mock(AttachVolumeInput.class);
1131 AttachVolumeOutput mockOutput = mock(AttachVolumeOutput.class);
1132 AttachVolumeOutputBuilder mockOutputBuilder = mock(AttachVolumeOutputBuilder.class);
1133 VolumeService mockVolumeService = mock(VolumeService.class);
1135 whenNew(VolumeService.class).withArguments(true).thenReturn(mockVolumeService);
1136 when(mockVolumeService.attachVolume(mockInput)).thenReturn(mockOutputBuilder);
1137 when(mockOutputBuilder.build()).thenReturn(mockOutput);
1139 Future<RpcResult<AttachVolumeOutput>> results = appcProviderLcm.attachVolume(mockInput);
1140 verify(mockVolumeService, times(1)).attachVolume(mockInput);
1141 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1145 public void testDetachVolume() throws Exception {
1146 DetachVolumeInput mockInput = mock(DetachVolumeInput.class);
1147 DetachVolumeOutput mockOutput = mock(DetachVolumeOutput.class);
1148 DetachVolumeOutputBuilder mockOutputBuilder = mock(DetachVolumeOutputBuilder.class);
1149 VolumeService mockVolumeService = mock(VolumeService.class);
1151 whenNew(VolumeService.class).withArguments(false).thenReturn(mockVolumeService);
1152 when(mockVolumeService.detachVolume(mockInput)).thenReturn(mockOutputBuilder);
1153 when(mockOutputBuilder.build()).thenReturn(mockOutput);
1155 Future<RpcResult<DetachVolumeOutput>> results = appcProviderLcm.detachVolume(mockInput);
1156 verify(mockVolumeService, times(1)).detachVolume(mockInput);
1157 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1161 public void testQuiesceTraffic() throws Exception {
1162 QuiesceTrafficInput mockInput = mock(QuiesceTrafficInput.class);
1163 QuiesceTrafficOutput mockOutput = mock(QuiesceTrafficOutput.class);
1164 QuiesceTrafficOutputBuilder mockOutputBuilder = mock(QuiesceTrafficOutputBuilder.class);
1165 QuiesceTrafficService mockService = mock(QuiesceTrafficService.class);
1167 whenNew(QuiesceTrafficService.class).withNoArguments().thenReturn(mockService);
1168 when(mockService.process(mockInput)).thenReturn(mockOutputBuilder);
1169 when(mockOutputBuilder.build()).thenReturn(mockOutput);
1171 Future<RpcResult<QuiesceTrafficOutput>> results = appcProviderLcm.quiesceTraffic(mockInput);
1172 verify(mockService, times(1)).process(mockInput);
1173 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1177 public void testResumeTraffic() throws Exception {
1178 ResumeTrafficInput mockInput = mock(ResumeTrafficInput.class);
1179 ResumeTrafficOutput mockOutput = mock(ResumeTrafficOutput.class);
1180 ResumeTrafficOutputBuilder mockOutputBuilder = mock(ResumeTrafficOutputBuilder.class);
1181 ResumeTrafficService mockService = mock(ResumeTrafficService.class);
1183 whenNew(ResumeTrafficService.class).withNoArguments().thenReturn(mockService);
1184 when(mockService.process(mockInput)).thenReturn(mockOutputBuilder);
1185 when(mockOutputBuilder.build()).thenReturn(mockOutput);
1187 Future<RpcResult<ResumeTrafficOutput>> results = appcProviderLcm.resumeTraffic(mockInput);
1188 verify(mockService, times(1)).process(mockInput);
1189 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1193 public void testUpgradePreCheck() throws Exception {
1194 UpgradePreCheckInput mockInput = mock(UpgradePreCheckInput.class);
1195 UpgradePreCheckOutput mockOutput = mock(UpgradePreCheckOutput.class);
1196 UpgradePreCheckOutputBuilder mockOutputBuilder = mock(UpgradePreCheckOutputBuilder.class);
1197 UpgradeService mockService = mock(UpgradeService.class);
1199 whenNew(UpgradeService.class).withAnyArguments().thenReturn(mockService);
1200 when(mockService.upgradePreCheck(mockInput)).thenReturn(mockOutputBuilder);
1201 when(mockOutputBuilder.build()).thenReturn(mockOutput);
1203 Future<RpcResult<UpgradePreCheckOutput>> results = appcProviderLcm.upgradePreCheck(mockInput);
1204 verify(mockService, times(1)).upgradePreCheck(mockInput);
1205 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1210 public void testUpgradePostCheck() throws Exception {
1211 UpgradePostCheckInput mockInput = mock(UpgradePostCheckInput.class);
1212 UpgradePostCheckOutput mockOutput = mock(UpgradePostCheckOutput.class);
1213 UpgradePostCheckOutputBuilder mockOutputBuilder = mock(UpgradePostCheckOutputBuilder.class);
1214 UpgradeService mockService = mock(UpgradeService.class);
1216 whenNew(UpgradeService.class).withAnyArguments().thenReturn(mockService);
1217 when(mockService.upgradePostCheck(mockInput)).thenReturn(mockOutputBuilder);
1218 when(mockOutputBuilder.build()).thenReturn(mockOutput);
1220 Future<RpcResult<UpgradePostCheckOutput>> results = appcProviderLcm.upgradePostCheck(mockInput);
1221 verify(mockService, times(1)).upgradePostCheck(mockInput);
1222 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1226 public void testUpgradeSoftware() throws Exception {
1227 UpgradeSoftwareInput mockInput = mock(UpgradeSoftwareInput.class);
1228 UpgradeSoftwareOutput mockOutput = mock(UpgradeSoftwareOutput.class);
1229 UpgradeSoftwareOutputBuilder mockOutputBuilder = mock(UpgradeSoftwareOutputBuilder.class);
1230 UpgradeService mockService = mock(UpgradeService.class);
1232 whenNew(UpgradeService.class).withAnyArguments().thenReturn(mockService);
1233 when(mockService.upgradeSoftware(mockInput)).thenReturn(mockOutputBuilder);
1234 when(mockOutputBuilder.build()).thenReturn(mockOutput);
1236 Future<RpcResult<UpgradeSoftwareOutput>> results = appcProviderLcm.upgradeSoftware(mockInput);
1237 verify(mockService, times(1)).upgradeSoftware(mockInput);
1238 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1242 public void testUpgradeBackup() throws Exception {
1243 UpgradeBackupInput mockInput = mock(UpgradeBackupInput.class);
1244 UpgradeBackupOutput mockOutput = mock(UpgradeBackupOutput.class);
1245 UpgradeBackupOutputBuilder mockOutputBuilder = mock(UpgradeBackupOutputBuilder.class);
1246 UpgradeService mockService = mock(UpgradeService.class);
1248 whenNew(UpgradeService.class).withAnyArguments().thenReturn(mockService);
1249 when(mockService.upgradeBackup(mockInput)).thenReturn(mockOutputBuilder);
1250 when(mockOutputBuilder.build()).thenReturn(mockOutput);
1252 Future<RpcResult<UpgradeBackupOutput>> results = appcProviderLcm.upgradeBackup(mockInput);
1253 verify(mockService, times(1)).upgradeBackup(mockInput);
1254 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1258 public void testUpgradeBackout() throws Exception {
1259 UpgradeBackoutInput mockInput = mock(UpgradeBackoutInput.class);
1260 UpgradeBackoutOutput mockOutput = mock(UpgradeBackoutOutput.class);
1261 UpgradeBackoutOutputBuilder mockOutputBuilder = mock(UpgradeBackoutOutputBuilder.class);
1262 UpgradeService mockService = mock(UpgradeService.class);
1264 whenNew(UpgradeService.class).withAnyArguments().thenReturn(mockService);
1265 when(mockService.upgradeBackout(mockInput)).thenReturn(mockOutputBuilder);
1266 when(mockOutputBuilder.build()).thenReturn(mockOutput);
1268 Future<RpcResult<UpgradeBackoutOutput>> results = appcProviderLcm.upgradeBackout(mockInput);
1269 verify(mockService, times(1)).upgradeBackout(mockInput);
1270 Assert.assertEquals("Should return mockOutput", mockOutput, results.get().getResult());
1274 public void tearDown() throws Exception {
1275 if (appcProviderLcm != null) {
1276 appcProviderLcm.close();
1281 private ActionIdentifiers newActionIdentifier(String vnfId, String vnfcId, String vserverId) {
1282 ActionIdentifiersBuilder actionIdentifiersBuilder = new ActionIdentifiersBuilder();
1283 actionIdentifiersBuilder.setVnfId(vnfId);
1284 actionIdentifiersBuilder.setVnfcName(vnfcId);
1285 actionIdentifiersBuilder.setVserverId(vserverId);
1286 return actionIdentifiersBuilder.build();
1289 private CommonHeader newCommonHeader(String requestId) {
1290 CommonHeaderBuilder commonHeaderBuilder = new CommonHeaderBuilder();
1291 commonHeaderBuilder.setRequestId(requestId);
1292 commonHeaderBuilder.setApiVer("2.0.0");
1293 commonHeaderBuilder.setOriginatorId("originatortest");
1294 commonHeaderBuilder.setTimestamp(ZULU.getDefaultInstance(LocalDateTime.now(Clock.systemUTC()).toString() +
1296 return commonHeaderBuilder.build();