2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.mso.apihandlerinfra.tenantisolation.process;
\r
23 import static org.junit.Assert.assertEquals;
\r
24 import static org.mockito.Matchers.any;
\r
25 import static org.mockito.Mockito.doNothing;
\r
26 import static org.mockito.Mockito.mock;
\r
27 import static org.mockito.Mockito.spy;
\r
28 import static org.mockito.Mockito.times;
\r
29 import static org.mockito.Mockito.verify;
\r
31 import java.util.ArrayList;
\r
32 import java.util.List;
\r
34 import org.json.JSONObject;
\r
35 import org.junit.After;
\r
36 import org.junit.BeforeClass;
\r
37 import org.junit.Ignore;
38 import org.junit.Test;
\r
39 import org.mockito.Mockito;
\r
40 import org.openecomp.mso.apihandlerinfra.Constants;
\r
41 import org.openecomp.mso.apihandlerinfra.MsoPropertiesUtils;
\r
42 import org.openecomp.mso.apihandlerinfra.tenantisolation.CloudOrchestrationRequest;
\r
43 import org.openecomp.mso.apihandlerinfra.tenantisolation.helpers.AsdcClientHelper;
\r
44 import org.openecomp.mso.apihandlerinfra.tenantisolationbeans.Distribution;
\r
45 import org.openecomp.mso.apihandlerinfra.tenantisolationbeans.DistributionStatus;
\r
46 import org.openecomp.mso.apihandlerinfra.tenantisolationbeans.Status;
\r
47 import org.openecomp.mso.properties.MsoJavaProperties;
\r
48 import org.openecomp.mso.properties.MsoPropertiesFactory;
\r
49 import org.openecomp.mso.requestsdb.OperationalEnvDistributionStatus;
\r
50 import org.openecomp.mso.requestsdb.OperationalEnvDistributionStatusDb;
\r
51 import org.openecomp.mso.requestsdb.OperationalEnvServiceModelStatus;
\r
52 import org.openecomp.mso.requestsdb.OperationalEnvServiceModelStatusDb;
\r
53 import org.openecomp.mso.requestsdb.RequestsDBHelper;
\r
54 import org.openecomp.mso.rest.APIResponse;
\r
55 import org.openecomp.mso.rest.RESTClient;
\r
56 import org.openecomp.mso.rest.RESTConfig;
\r
58 public class ActivateVnfStatusOperationalEnvironmentTest {
\r
60 MsoJavaProperties properties = MsoPropertiesUtils.loadMsoProperties();
\r
61 AsdcClientHelper asdcClientUtils = new AsdcClientHelper(properties);
\r
63 String requestId = "TEST_requestId";
\r
64 String operationalEnvironmentId = "TEST_operationalEnvironmentId";
\r
65 CloudOrchestrationRequest request = new CloudOrchestrationRequest();
\r
66 String workloadContext = "TEST_workloadContext";
\r
67 String recoveryAction = "RETRY";
\r
68 String serviceModelVersionId = "TEST_serviceModelVersionId";
\r
70 String asdcDistributionId = "TEST_distributionId";
\r
73 public static void setUp() throws Exception {
\r
74 MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
\r
75 msoPropertiesFactory.removeAllMsoProperties();
\r
76 msoPropertiesFactory.initializeMsoProperties(Constants.MSO_PROP_APIHANDLER_INFRA, "src/test/resources/mso.apihandler-infra.properties");
\r
80 public void tearDown() throws Exception {
\r
87 public void checkOrUpdateOverallStatusTest_Ok() throws Exception {
\r
91 ActivateVnfStatusOperationalEnvironment activateVnfStatus = spy(new ActivateVnfStatusOperationalEnvironment(request, requestId));
\r
94 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
95 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
96 RequestsDBHelper requestDb = mock(RequestsDBHelper.class);
\r
99 OperationalEnvServiceModelStatus modelStatus = new OperationalEnvServiceModelStatus();
\r
100 modelStatus.setWorkloadContext(workloadContext);
\r
101 modelStatus.setRecoveryAction(recoveryAction);
\r
102 modelStatus.setOperationalEnvId(operationalEnvironmentId);
\r
103 modelStatus.setRetryCount(retryCount);
\r
104 modelStatus.setServiceModelVersionDistrStatus(DistributionStatus.DISTRIBUTION_COMPLETE_OK.toString());
\r
106 OperationalEnvServiceModelStatus modelStatus1 = new OperationalEnvServiceModelStatus();
\r
107 modelStatus1.setWorkloadContext(workloadContext);
\r
108 modelStatus1.setRecoveryAction(recoveryAction);
\r
109 modelStatus1.setOperationalEnvId(operationalEnvironmentId);
\r
110 modelStatus1.setRetryCount(retryCount);
\r
111 modelStatus1.setServiceModelVersionDistrStatus(DistributionStatus.DISTRIBUTION_COMPLETE_OK.toString());
\r
113 List<OperationalEnvServiceModelStatus> queryServiceModelResponseList = new ArrayList<OperationalEnvServiceModelStatus>();
\r
114 queryServiceModelResponseList.add(modelStatus);
\r
115 queryServiceModelResponseList.add(modelStatus1);
\r
117 Mockito.when(serviceModelDb.getOperationalEnvIdStatus(operationalEnvironmentId, requestId)).thenReturn(queryServiceModelResponseList);
\r
118 doNothing().when(requestDb).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
120 activateVnfStatus.setOperationalEnvDistributionStatusDb(distributionDb);
\r
121 activateVnfStatus.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
122 activateVnfStatus.setRequestsDBHelper(requestDb);
\r
123 activateVnfStatus.checkOrUpdateOverallStatus(requestId, operationalEnvironmentId);
\r
125 verify(requestDb, times(0)).updateInfraFailureCompletion(any(String.class), any(String.class), any(String.class));
\r
126 verify(requestDb, times(1)).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
131 public void checkOrUpdateOverallStatusTest_Error() throws Exception {
\r
134 int retryCount = 0; // no more retry
\r
136 ActivateVnfStatusOperationalEnvironment activateVnfStatus = spy(new ActivateVnfStatusOperationalEnvironment(request, requestId));
\r
139 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
140 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
141 RequestsDBHelper requestDb = mock(RequestsDBHelper.class);
\r
144 OperationalEnvServiceModelStatus modelStatus = new OperationalEnvServiceModelStatus();
\r
145 modelStatus.setWorkloadContext(workloadContext);
\r
146 modelStatus.setRecoveryAction(recoveryAction);
\r
147 modelStatus.setOperationalEnvId(operationalEnvironmentId);
\r
148 modelStatus.setRetryCount(retryCount);
\r
149 modelStatus.setServiceModelVersionDistrStatus(DistributionStatus.DISTRIBUTION_COMPLETE_ERROR.toString());
\r
151 OperationalEnvServiceModelStatus modelStatus1 = new OperationalEnvServiceModelStatus();
\r
152 modelStatus1.setWorkloadContext(workloadContext);
\r
153 modelStatus1.setRecoveryAction(recoveryAction);
\r
154 modelStatus1.setOperationalEnvId(operationalEnvironmentId);
\r
155 modelStatus1.setRetryCount(retryCount);
\r
156 modelStatus1.setServiceModelVersionDistrStatus(DistributionStatus.DISTRIBUTION_COMPLETE_OK.toString());
\r
158 List<OperationalEnvServiceModelStatus> queryServiceModelResponseList = new ArrayList<OperationalEnvServiceModelStatus>();
\r
159 queryServiceModelResponseList.add(modelStatus);
\r
160 queryServiceModelResponseList.add(modelStatus1);
\r
162 Mockito.when(serviceModelDb.getOperationalEnvIdStatus(operationalEnvironmentId, requestId)).thenReturn(queryServiceModelResponseList);
\r
163 doNothing().when(requestDb).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
165 activateVnfStatus.setOperationalEnvDistributionStatusDb(distributionDb);
\r
166 activateVnfStatus.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
167 activateVnfStatus.setRequestsDBHelper(requestDb);
\r
168 activateVnfStatus.checkOrUpdateOverallStatus(requestId, operationalEnvironmentId);
\r
170 verify(requestDb, times(0)).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
171 verify(requestDb, times(1)).updateInfraFailureCompletion(any(String.class), any(String.class), any(String.class));
\r
176 public void checkOrUpdateOverallStatusTest_Waiting() throws Exception {
\r
178 int retryCount = 2; // 2 more retry
\r
180 ActivateVnfStatusOperationalEnvironment activateVnfStatus = spy(new ActivateVnfStatusOperationalEnvironment(request, requestId));
\r
183 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
184 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
185 RequestsDBHelper requestDb = mock(RequestsDBHelper.class);
\r
187 OperationalEnvServiceModelStatus modelStatus1 = spy(new OperationalEnvServiceModelStatus());
\r
188 modelStatus1.setWorkloadContext(workloadContext);
\r
189 modelStatus1.setRecoveryAction(recoveryAction);
\r
190 modelStatus1.setOperationalEnvId(operationalEnvironmentId);
\r
191 modelStatus1.setRetryCount(0);
\r
192 modelStatus1.setServiceModelVersionDistrStatus(DistributionStatus.DISTRIBUTION_COMPLETE_OK.toString());
\r
194 OperationalEnvServiceModelStatus modelStatus2 = spy(new OperationalEnvServiceModelStatus());
\r
195 modelStatus2.setWorkloadContext(workloadContext);
\r
196 modelStatus2.setRecoveryAction(recoveryAction);
\r
197 modelStatus2.setOperationalEnvId(operationalEnvironmentId);
\r
198 modelStatus2.setRetryCount(retryCount);
\r
199 modelStatus2.setServiceModelVersionDistrStatus(DistributionStatus.DISTRIBUTION_COMPLETE_ERROR.toString());
\r
200 List<OperationalEnvServiceModelStatus> queryServiceModelResponseList = new ArrayList<OperationalEnvServiceModelStatus>();
\r
201 queryServiceModelResponseList.add(modelStatus1);
\r
202 queryServiceModelResponseList.add(modelStatus2);
\r
204 Mockito.when(serviceModelDb.getOperationalEnvIdStatus(operationalEnvironmentId, requestId)).thenReturn(queryServiceModelResponseList);
\r
205 doNothing().when(requestDb).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
207 activateVnfStatus.setOperationalEnvDistributionStatusDb(distributionDb);
\r
208 activateVnfStatus.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
209 activateVnfStatus.setRequestsDBHelper(requestDb);
\r
210 activateVnfStatus.checkOrUpdateOverallStatus(requestId, operationalEnvironmentId);
\r
212 verify(requestDb, times(0)).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
213 verify(requestDb, times(0)).updateInfraFailureCompletion(any(String.class), any(String.class), any(String.class));
\r
218 public void executionTest() throws Exception {
\r
220 // Prepare db query mock response data
\r
221 OperationalEnvDistributionStatus operEnvDistStatusObj = new OperationalEnvDistributionStatus();
\r
222 operEnvDistStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
223 operEnvDistStatusObj.setDistributionId(asdcDistributionId);
\r
224 operEnvDistStatusObj.setOperationalEnvId( operationalEnvironmentId);
\r
225 operEnvDistStatusObj.setDistributionIdStatus(DistributionStatus.DISTRIBUTION_COMPLETE_OK.toString());
\r
226 operEnvDistStatusObj.setRequestId(requestId);
\r
228 // ServiceModelStatus - getOperationalEnvServiceModelStatus
\r
229 OperationalEnvServiceModelStatus operEnvServiceModelStatusObj = new OperationalEnvServiceModelStatus();
\r
230 operEnvServiceModelStatusObj.setRequestId(requestId);
\r
231 operEnvServiceModelStatusObj.setOperationalEnvId(operationalEnvironmentId);
\r
232 operEnvServiceModelStatusObj.setServiceModelVersionDistrStatus(DistributionStatus.DISTRIBUTION_COMPLETE_OK.toString());
\r
233 operEnvServiceModelStatusObj.setRecoveryAction(recoveryAction);
\r
234 operEnvServiceModelStatusObj.setRetryCount(retryCount);
\r
235 operEnvServiceModelStatusObj.setWorkloadContext(workloadContext);
\r
236 operEnvServiceModelStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
237 List<OperationalEnvServiceModelStatus> queryServiceModelResponseList = new ArrayList<OperationalEnvServiceModelStatus>();
\r
238 queryServiceModelResponseList.add(operEnvServiceModelStatusObj);
\r
240 // prepare distribution obj
\r
241 Distribution distribution = new Distribution();
\r
242 distribution.setStatus(Status.DISTRIBUTION_COMPLETE_OK);
\r
243 request.setDistribution(distribution);
\r
244 request.setDistributionId(asdcDistributionId);
\r
246 // prepare asdc return data
\r
247 String jsonPayload = asdcClientUtils.buildJsonWorkloadContext(workloadContext);
\r
249 JSONObject jsonObject = new JSONObject();
\r
250 jsonObject.put("statusCode", "202");
\r
251 jsonObject.put("message", "Success");
\r
252 jsonObject.put("distributionId", asdcDistributionId);
\r
255 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
256 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
257 RequestsDBHelper dbUtils = mock(RequestsDBHelper.class);
\r
258 AsdcClientHelper asdcClientHelperMock = Mockito.mock(AsdcClientHelper.class);
\r
259 RESTConfig configMock = Mockito.mock(RESTConfig.class);
\r
260 RESTClient clientMock = Mockito.mock(RESTClient.class);
\r
261 APIResponse apiResponseMock = Mockito.mock(APIResponse.class);
\r
263 Mockito.when(asdcClientHelperMock.setRestClient(configMock)).thenReturn(clientMock);
\r
264 Mockito.when(asdcClientHelperMock.setHttpPostResponse(clientMock, jsonPayload)).thenReturn(apiResponseMock);
\r
265 Mockito.when(asdcClientHelperMock.enhanceJsonResponse(jsonObject, 202)).thenReturn(jsonObject);
\r
266 Mockito.when(asdcClientHelperMock.postActivateOperationalEnvironment(serviceModelVersionId, operationalEnvironmentId, workloadContext)).thenReturn(jsonObject);
\r
268 Mockito.when(distributionDb.getOperationalEnvDistributionStatus(asdcDistributionId)).thenReturn(operEnvDistStatusObj);
\r
269 Mockito.when(serviceModelDb.getOperationalEnvServiceModelStatus(operationalEnvironmentId, serviceModelVersionId)).thenReturn(operEnvServiceModelStatusObj);
\r
270 Mockito.when(serviceModelDb.getOperationalEnvIdStatus(operationalEnvironmentId, requestId)).thenReturn(queryServiceModelResponseList);
\r
273 Mockito.when(distributionDb.updateOperationalEnvDistributionStatus(distribution.getStatus().toString(), asdcDistributionId, operationalEnvironmentId, serviceModelVersionId)).thenReturn(row);
\r
274 Mockito.when(serviceModelDb.updateOperationalEnvRetryCountStatus(operationalEnvironmentId, serviceModelVersionId, distribution.getStatus().toString(), 0)).thenReturn(row);
\r
276 doNothing().when(dbUtils).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
278 request.setOperationalEnvironmentId(operationalEnvironmentId);
\r
279 ActivateVnfStatusOperationalEnvironment activateVnfStatus = new ActivateVnfStatusOperationalEnvironment(request, requestId);
\r
280 ActivateVnfStatusOperationalEnvironment activateVnfStatusMock = spy(activateVnfStatus);
\r
281 activateVnfStatusMock.setOperationalEnvDistributionStatusDb(distributionDb);
\r
282 activateVnfStatusMock.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
283 activateVnfStatusMock.setRequestsDBHelper(dbUtils);
\r
284 activateVnfStatusMock.setAsdcClientHelper(asdcClientHelperMock);
\r
286 activateVnfStatusMock.execute();
\r
288 verify(distributionDb, times(1)).updateOperationalEnvDistributionStatus(distribution.getStatus().toString(), asdcDistributionId, operationalEnvironmentId, serviceModelVersionId);
\r
289 verify(serviceModelDb, times(1)).updateOperationalEnvRetryCountStatus(operationalEnvironmentId, serviceModelVersionId, distribution.getStatus().toString(), 0);
\r
295 public void executionTest_ERROR_Status_And_RETRY() throws Exception {
\r
298 String distributionStatus = DistributionStatus.DISTRIBUTION_COMPLETE_ERROR.toString();
\r
299 String recoverAction = "RETRY";
\r
301 // Prepare db query mock response data
\r
302 OperationalEnvDistributionStatus operEnvDistStatusObj = new OperationalEnvDistributionStatus();
\r
303 operEnvDistStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
304 operEnvDistStatusObj.setDistributionId(asdcDistributionId);
\r
305 operEnvDistStatusObj.setOperationalEnvId(operationalEnvironmentId);
\r
306 operEnvDistStatusObj.setDistributionIdStatus(distributionStatus);
\r
307 operEnvDistStatusObj.setRequestId(requestId);
\r
309 // ServiceModelStatus - getOperationalEnvServiceModelStatus
\r
310 OperationalEnvServiceModelStatus operEnvServiceModelStatusObj = new OperationalEnvServiceModelStatus();
\r
311 operEnvServiceModelStatusObj.setRequestId(requestId);
\r
312 operEnvServiceModelStatusObj.setOperationalEnvId(operationalEnvironmentId);
\r
313 operEnvServiceModelStatusObj.setServiceModelVersionDistrStatus(distributionStatus);
\r
314 operEnvServiceModelStatusObj.setRecoveryAction(recoverAction);
\r
315 operEnvServiceModelStatusObj.setRetryCount(retryCnt);
\r
316 operEnvServiceModelStatusObj.setWorkloadContext(workloadContext);
\r
317 operEnvServiceModelStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
318 List<OperationalEnvServiceModelStatus> queryServiceModelResponseList = new ArrayList<OperationalEnvServiceModelStatus>();
\r
319 queryServiceModelResponseList.add(operEnvServiceModelStatusObj);
\r
321 // prepare distribution obj
\r
322 Distribution distribution = new Distribution();
\r
323 distribution.setStatus(Status.DISTRIBUTION_COMPLETE_ERROR);
\r
324 request.setDistribution(distribution);
\r
325 request.setDistributionId(asdcDistributionId);
\r
327 // prepare asdc return data
\r
328 String jsonPayload = asdcClientUtils.buildJsonWorkloadContext(workloadContext);
\r
330 JSONObject jsonObject = new JSONObject();
\r
331 jsonObject.put("statusCode", "202");
\r
332 jsonObject.put("message", "Success");
\r
333 jsonObject.put("distributionId", asdcDistributionId);
\r
336 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
337 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
338 RequestsDBHelper dbUtils = mock(RequestsDBHelper.class);
\r
339 AsdcClientHelper asdcClientHelperMock = Mockito.mock(AsdcClientHelper.class);
\r
340 RESTConfig configMock = Mockito.mock(RESTConfig.class);
\r
341 RESTClient clientMock = Mockito.mock(RESTClient.class);
\r
342 APIResponse apiResponseMock = Mockito.mock(APIResponse.class);
\r
344 Mockito.when(asdcClientHelperMock.setRestClient(configMock)).thenReturn(clientMock);
\r
345 Mockito.when(asdcClientHelperMock.setHttpPostResponse(clientMock, jsonPayload)).thenReturn(apiResponseMock);
\r
346 Mockito.when(asdcClientHelperMock.enhanceJsonResponse(jsonObject, 202)).thenReturn(jsonObject);
\r
347 Mockito.when(asdcClientHelperMock.postActivateOperationalEnvironment(serviceModelVersionId, operationalEnvironmentId, workloadContext)).thenReturn(jsonObject);
\r
349 Mockito.when(distributionDb.getOperationalEnvDistributionStatus(asdcDistributionId)).thenReturn(operEnvDistStatusObj);
\r
350 Mockito.when(serviceModelDb.getOperationalEnvServiceModelStatus(operationalEnvironmentId, serviceModelVersionId)).thenReturn(operEnvServiceModelStatusObj);
\r
351 Mockito.when(serviceModelDb.getOperationalEnvIdStatus(operationalEnvironmentId, requestId)).thenReturn(queryServiceModelResponseList);
\r
354 Mockito.when(distributionDb.updateOperationalEnvDistributionStatus(distribution.getStatus().toString(), asdcDistributionId, operationalEnvironmentId, serviceModelVersionId)).thenReturn(row);
\r
355 Mockito.when(serviceModelDb.updateOperationalEnvRetryCountStatus(operationalEnvironmentId, serviceModelVersionId, distribution.getStatus().toString(), 0)).thenReturn(row);
\r
357 doNothing().when(dbUtils).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
359 request.setOperationalEnvironmentId(operationalEnvironmentId);
\r
360 ActivateVnfStatusOperationalEnvironment activateVnfStatus = new ActivateVnfStatusOperationalEnvironment(request, requestId);
\r
361 ActivateVnfStatusOperationalEnvironment activateVnfStatusMock = spy(activateVnfStatus);
\r
362 activateVnfStatusMock.setOperationalEnvDistributionStatusDb(distributionDb);
\r
363 activateVnfStatusMock.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
364 activateVnfStatusMock.setRequestsDBHelper(dbUtils);
\r
365 activateVnfStatusMock.setAsdcClientHelper(asdcClientHelperMock);
\r
367 activateVnfStatusMock.execute();
\r
370 verify(dbUtils, times(0)).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
371 verify(dbUtils, times(0)).updateInfraFailureCompletion(any(String.class), any(String.class), any(String.class));
\r
372 assertEquals(false, activateVnfStatusMock.isSuccess());
\r
377 public void executionTest_ERROR_Status_And_RETRY_And_RetryZero() throws Exception {
\r
380 String distributionStatus = DistributionStatus.DISTRIBUTION_COMPLETE_ERROR.toString();
\r
381 String recoverAction = "RETRY";
\r
383 // Prepare db query mock response data
\r
384 OperationalEnvDistributionStatus operEnvDistStatusObj = new OperationalEnvDistributionStatus();
\r
385 operEnvDistStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
386 operEnvDistStatusObj.setDistributionId(asdcDistributionId);
\r
387 operEnvDistStatusObj.setOperationalEnvId(operationalEnvironmentId);
\r
388 operEnvDistStatusObj.setDistributionIdStatus(distributionStatus);
\r
389 operEnvDistStatusObj.setRequestId(requestId);
\r
391 // ServiceModelStatus - getOperationalEnvServiceModelStatus
\r
392 OperationalEnvServiceModelStatus operEnvServiceModelStatusObj = new OperationalEnvServiceModelStatus();
\r
393 operEnvServiceModelStatusObj.setRequestId(requestId);
\r
394 operEnvServiceModelStatusObj.setOperationalEnvId(operationalEnvironmentId);
\r
395 operEnvServiceModelStatusObj.setServiceModelVersionDistrStatus(distributionStatus);
\r
396 operEnvServiceModelStatusObj.setRecoveryAction(recoverAction);
\r
397 operEnvServiceModelStatusObj.setRetryCount(retryCnt);
\r
398 operEnvServiceModelStatusObj.setWorkloadContext(workloadContext);
\r
399 operEnvServiceModelStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
400 List<OperationalEnvServiceModelStatus> queryServiceModelResponseList = new ArrayList<OperationalEnvServiceModelStatus>();
\r
401 queryServiceModelResponseList.add(operEnvServiceModelStatusObj);
\r
403 // prepare distribution obj
\r
404 Distribution distribution = new Distribution();
\r
405 distribution.setStatus(Status.DISTRIBUTION_COMPLETE_ERROR);
\r
406 request.setDistribution(distribution);
\r
407 request.setDistributionId(asdcDistributionId);
\r
409 // prepare asdc return data
\r
410 String jsonPayload = asdcClientUtils.buildJsonWorkloadContext(workloadContext);
\r
412 JSONObject jsonObject = new JSONObject();
\r
413 jsonObject.put("statusCode", "202");
\r
414 jsonObject.put("message", "Success");
\r
415 jsonObject.put("distributionId", asdcDistributionId);
\r
418 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
419 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
420 RequestsDBHelper dbUtils = mock(RequestsDBHelper.class);
\r
421 AsdcClientHelper asdcClientHelperMock = Mockito.mock(AsdcClientHelper.class);
\r
422 RESTConfig configMock = Mockito.mock(RESTConfig.class);
\r
423 RESTClient clientMock = Mockito.mock(RESTClient.class);
\r
424 APIResponse apiResponseMock = Mockito.mock(APIResponse.class);
\r
426 Mockito.when(asdcClientHelperMock.setRestClient(configMock)).thenReturn(clientMock);
\r
427 Mockito.when(asdcClientHelperMock.setHttpPostResponse(clientMock, jsonPayload)).thenReturn(apiResponseMock);
\r
428 Mockito.when(asdcClientHelperMock.enhanceJsonResponse(jsonObject, 202)).thenReturn(jsonObject);
\r
429 Mockito.when(asdcClientHelperMock.postActivateOperationalEnvironment(serviceModelVersionId, operationalEnvironmentId, workloadContext)).thenReturn(jsonObject);
\r
431 Mockito.when(distributionDb.getOperationalEnvDistributionStatus(asdcDistributionId)).thenReturn(operEnvDistStatusObj);
\r
432 Mockito.when(serviceModelDb.getOperationalEnvServiceModelStatus(operationalEnvironmentId, serviceModelVersionId)).thenReturn(operEnvServiceModelStatusObj);
\r
433 Mockito.when(serviceModelDb.getOperationalEnvIdStatus(operationalEnvironmentId, requestId)).thenReturn(queryServiceModelResponseList);
\r
436 Mockito.when(distributionDb.updateOperationalEnvDistributionStatus(distribution.getStatus().toString(), asdcDistributionId, operationalEnvironmentId, serviceModelVersionId)).thenReturn(row);
\r
437 Mockito.when(serviceModelDb.updateOperationalEnvRetryCountStatus(operationalEnvironmentId, serviceModelVersionId, distribution.getStatus().toString(), 0)).thenReturn(row);
\r
439 doNothing().when(dbUtils).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
441 request.setOperationalEnvironmentId(operationalEnvironmentId);
\r
442 ActivateVnfStatusOperationalEnvironment activateVnfStatus = new ActivateVnfStatusOperationalEnvironment(request, requestId);
\r
443 ActivateVnfStatusOperationalEnvironment activateVnfStatusMock = spy(activateVnfStatus);
\r
444 activateVnfStatusMock.setOperationalEnvDistributionStatusDb(distributionDb);
\r
445 activateVnfStatusMock.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
446 activateVnfStatusMock.setRequestsDBHelper(dbUtils);
\r
447 activateVnfStatusMock.setAsdcClientHelper(asdcClientHelperMock);
\r
449 activateVnfStatusMock.execute();
\r
452 verify(dbUtils, times(0)).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
453 verify(dbUtils, times(1)).updateInfraFailureCompletion(any(String.class), any(String.class), any(String.class));
\r
454 assertEquals(false, activateVnfStatusMock.isSuccess());
\r
459 public void executionTest_ERROR_Status_And_RETRY_And_ErrorAsdc() throws Exception {
\r
462 String distributionStatus = DistributionStatus.DISTRIBUTION_COMPLETE_ERROR.toString();
\r
463 String recoverAction = "RETRY";
\r
465 // Prepare db query mock response data
\r
466 OperationalEnvDistributionStatus operEnvDistStatusObj = new OperationalEnvDistributionStatus();
\r
467 operEnvDistStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
468 operEnvDistStatusObj.setDistributionId(asdcDistributionId);
\r
469 operEnvDistStatusObj.setOperationalEnvId(operationalEnvironmentId);
\r
470 operEnvDistStatusObj.setDistributionIdStatus(distributionStatus);
\r
471 operEnvDistStatusObj.setRequestId(requestId);
\r
473 // ServiceModelStatus - getOperationalEnvServiceModelStatus
\r
474 OperationalEnvServiceModelStatus operEnvServiceModelStatusObj = new OperationalEnvServiceModelStatus();
\r
475 operEnvServiceModelStatusObj.setRequestId(requestId);
\r
476 operEnvServiceModelStatusObj.setOperationalEnvId(operationalEnvironmentId);
\r
477 operEnvServiceModelStatusObj.setServiceModelVersionDistrStatus(distributionStatus);
\r
478 operEnvServiceModelStatusObj.setRecoveryAction(recoverAction);
\r
479 operEnvServiceModelStatusObj.setRetryCount(retryCnt);
\r
480 operEnvServiceModelStatusObj.setWorkloadContext(workloadContext);
\r
481 operEnvServiceModelStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
482 List<OperationalEnvServiceModelStatus> queryServiceModelResponseList = new ArrayList<OperationalEnvServiceModelStatus>();
\r
483 queryServiceModelResponseList.add(operEnvServiceModelStatusObj);
\r
485 // prepare distribution obj
\r
486 Distribution distribution = new Distribution();
\r
487 distribution.setStatus(Status.DISTRIBUTION_COMPLETE_ERROR);
\r
488 request.setDistribution(distribution);
\r
489 request.setDistributionId(asdcDistributionId);
\r
491 // prepare asdc return data
\r
492 String jsonPayload = asdcClientUtils.buildJsonWorkloadContext(workloadContext);
\r
495 JSONObject jsonMessages = new JSONObject();
\r
496 jsonMessages.put("statusCode", "409");
\r
497 jsonMessages.put("message", "Undefined Error Message!");
\r
498 jsonMessages.put("messageId", "SVC4675");
\r
499 jsonMessages.put("text", "Error: Service state is invalid for this action.");
\r
500 JSONObject jsonServException = new JSONObject();
\r
501 jsonServException.put("serviceException", jsonMessages);
\r
502 JSONObject jsonErrorRequest = new JSONObject();
\r
503 jsonErrorRequest.put("requestError", jsonServException);
\r
506 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
507 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
508 RequestsDBHelper dbUtils = mock(RequestsDBHelper.class);
\r
509 AsdcClientHelper asdcClientHelperMock = Mockito.mock(AsdcClientHelper.class);
\r
510 RESTConfig configMock = Mockito.mock(RESTConfig.class);
\r
511 RESTClient clientMock = Mockito.mock(RESTClient.class);
\r
512 APIResponse apiResponseMock = Mockito.mock(APIResponse.class);
\r
514 Mockito.when(asdcClientHelperMock.setRestClient(configMock)).thenReturn(clientMock);
\r
515 Mockito.when(asdcClientHelperMock.setHttpPostResponse(clientMock, jsonPayload)).thenReturn(apiResponseMock);
\r
516 Mockito.when(asdcClientHelperMock.enhanceJsonResponse(jsonMessages, 202)).thenReturn(jsonMessages);
\r
517 Mockito.when(asdcClientHelperMock.postActivateOperationalEnvironment(serviceModelVersionId, operationalEnvironmentId, workloadContext)).thenReturn(jsonMessages);
\r
519 Mockito.when(distributionDb.getOperationalEnvDistributionStatus(asdcDistributionId)).thenReturn(operEnvDistStatusObj);
\r
520 Mockito.when(serviceModelDb.getOperationalEnvServiceModelStatus(operationalEnvironmentId, serviceModelVersionId)).thenReturn(operEnvServiceModelStatusObj);
\r
521 Mockito.when(serviceModelDb.getOperationalEnvIdStatus(operationalEnvironmentId, requestId)).thenReturn(queryServiceModelResponseList);
\r
524 Mockito.when(distributionDb.updateOperationalEnvDistributionStatus(distribution.getStatus().toString(), asdcDistributionId, operationalEnvironmentId, serviceModelVersionId)).thenReturn(row);
\r
525 Mockito.when(serviceModelDb.updateOperationalEnvRetryCountStatus(operationalEnvironmentId, serviceModelVersionId, distribution.getStatus().toString(), 0)).thenReturn(row);
\r
527 doNothing().when(dbUtils).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
529 request.setOperationalEnvironmentId(operationalEnvironmentId);
\r
530 ActivateVnfStatusOperationalEnvironment activateVnfStatus = new ActivateVnfStatusOperationalEnvironment(request, requestId);
\r
531 ActivateVnfStatusOperationalEnvironment activateVnfStatusMock = spy(activateVnfStatus);
\r
532 activateVnfStatusMock.setOperationalEnvDistributionStatusDb(distributionDb);
\r
533 activateVnfStatusMock.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
534 activateVnfStatusMock.setRequestsDBHelper(dbUtils);
\r
535 activateVnfStatusMock.setAsdcClientHelper(asdcClientHelperMock);
\r
537 activateVnfStatusMock.execute();
\r
540 verify(dbUtils, times(0)).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
541 verify(dbUtils, times(1)).updateInfraFailureCompletion(any(String.class), any(String.class), any(String.class));
\r
542 assertEquals(false, activateVnfStatusMock.isSuccess());
\r
547 public void executionTest_ERROR_Status_And_SKIP() throws Exception {
\r
550 String distributionStatus = DistributionStatus.DISTRIBUTION_COMPLETE_ERROR.toString();
\r
551 String recoverAction = "SKIP";
\r
553 // Prepare db query mock response data
\r
554 OperationalEnvDistributionStatus operEnvDistStatusObj = new OperationalEnvDistributionStatus();
\r
555 operEnvDistStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
556 operEnvDistStatusObj.setDistributionId(asdcDistributionId);
\r
557 operEnvDistStatusObj.setOperationalEnvId( operationalEnvironmentId);
\r
558 operEnvDistStatusObj.setDistributionIdStatus(distributionStatus);
\r
559 operEnvDistStatusObj.setRequestId(requestId);
\r
561 // ServiceModelStatus - getOperationalEnvServiceModelStatus
\r
562 OperationalEnvServiceModelStatus operEnvServiceModelStatusObj = new OperationalEnvServiceModelStatus();
\r
563 operEnvServiceModelStatusObj.setRequestId(requestId);
\r
564 operEnvServiceModelStatusObj.setOperationalEnvId(operationalEnvironmentId);
\r
565 operEnvServiceModelStatusObj.setServiceModelVersionDistrStatus(distributionStatus);
\r
566 operEnvServiceModelStatusObj.setRecoveryAction(recoverAction);
\r
567 operEnvServiceModelStatusObj.setRetryCount(retryCnt);
\r
568 operEnvServiceModelStatusObj.setWorkloadContext(workloadContext);
\r
569 operEnvServiceModelStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
570 List<OperationalEnvServiceModelStatus> queryServiceModelResponseList = new ArrayList<OperationalEnvServiceModelStatus>();
\r
571 queryServiceModelResponseList.add(operEnvServiceModelStatusObj);
\r
573 // prepare distribution obj
\r
574 Distribution distribution = new Distribution();
\r
575 distribution.setStatus(Status.DISTRIBUTION_COMPLETE_ERROR);
\r
576 request.setDistribution(distribution);
\r
577 request.setDistributionId(asdcDistributionId);
\r
580 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
581 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
582 RequestsDBHelper dbUtils = mock(RequestsDBHelper.class);
\r
584 Mockito.when(distributionDb.getOperationalEnvDistributionStatus(asdcDistributionId)).thenReturn(operEnvDistStatusObj);
\r
585 Mockito.when(serviceModelDb.getOperationalEnvServiceModelStatus(operationalEnvironmentId, serviceModelVersionId)).thenReturn(operEnvServiceModelStatusObj);
\r
586 Mockito.when(serviceModelDb.getOperationalEnvIdStatus(operationalEnvironmentId, requestId)).thenReturn(queryServiceModelResponseList);
\r
589 Mockito.when(distributionDb.updateOperationalEnvDistributionStatus(distribution.getStatus().toString(), asdcDistributionId, operationalEnvironmentId, serviceModelVersionId)).thenReturn(row);
\r
590 Mockito.when(serviceModelDb.updateOperationalEnvRetryCountStatus(operationalEnvironmentId, serviceModelVersionId, distribution.getStatus().toString(), 0)).thenReturn(row);
\r
592 doNothing().when(dbUtils).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
594 request.setOperationalEnvironmentId(operationalEnvironmentId);
\r
595 ActivateVnfStatusOperationalEnvironment activateVnfStatus = new ActivateVnfStatusOperationalEnvironment(request, requestId);
\r
596 ActivateVnfStatusOperationalEnvironment activateVnfStatusMock = spy(activateVnfStatus);
\r
597 activateVnfStatusMock.setOperationalEnvDistributionStatusDb(distributionDb);
\r
598 activateVnfStatusMock.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
599 activateVnfStatusMock.setRequestsDBHelper(dbUtils);
\r
601 activateVnfStatusMock.execute();
\r
604 verify(dbUtils, times(0)).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
605 verify(dbUtils, times(0)).updateInfraFailureCompletion(any(String.class), any(String.class), any(String.class));
\r
606 assertEquals(false, activateVnfStatusMock.isSuccess());
\r
611 public void executionTest_ERROR_Status_And_ABORT() throws Exception {
\r
614 String distributionStatus = DistributionStatus.DISTRIBUTION_COMPLETE_ERROR.toString();
\r
615 String recoverAction = "ABORT";
\r
617 // Prepare db query mock response data
\r
618 OperationalEnvDistributionStatus operEnvDistStatusObj = new OperationalEnvDistributionStatus();
\r
619 operEnvDistStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
620 operEnvDistStatusObj.setDistributionId(asdcDistributionId);
\r
621 operEnvDistStatusObj.setOperationalEnvId( operationalEnvironmentId);
\r
622 operEnvDistStatusObj.setDistributionIdStatus(distributionStatus);
\r
623 operEnvDistStatusObj.setRequestId(requestId);
\r
625 // ServiceModelStatus - getOperationalEnvServiceModelStatus
\r
626 OperationalEnvServiceModelStatus operEnvServiceModelStatusObj = new OperationalEnvServiceModelStatus();
\r
627 operEnvServiceModelStatusObj.setRequestId(requestId);
\r
628 operEnvServiceModelStatusObj.setOperationalEnvId(operationalEnvironmentId);
\r
629 operEnvServiceModelStatusObj.setServiceModelVersionDistrStatus(distributionStatus);
\r
630 operEnvServiceModelStatusObj.setRecoveryAction(recoverAction);
\r
631 operEnvServiceModelStatusObj.setRetryCount(retryCnt);
\r
632 operEnvServiceModelStatusObj.setWorkloadContext(workloadContext);
\r
633 operEnvServiceModelStatusObj.setServiceModelVersionId(serviceModelVersionId);
\r
634 List<OperationalEnvServiceModelStatus> queryServiceModelResponseList = new ArrayList<OperationalEnvServiceModelStatus>();
\r
635 queryServiceModelResponseList.add(operEnvServiceModelStatusObj);
\r
637 // prepare distribution obj
\r
638 Distribution distribution = new Distribution();
\r
639 distribution.setStatus(Status.DISTRIBUTION_COMPLETE_ERROR);
\r
640 request.setDistribution(distribution);
\r
641 request.setDistributionId(asdcDistributionId);
\r
644 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
645 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
646 RequestsDBHelper dbUtils = mock(RequestsDBHelper.class);
\r
648 Mockito.when(distributionDb.getOperationalEnvDistributionStatus(asdcDistributionId)).thenReturn(operEnvDistStatusObj);
\r
649 Mockito.when(serviceModelDb.getOperationalEnvServiceModelStatus(operationalEnvironmentId, serviceModelVersionId)).thenReturn(operEnvServiceModelStatusObj);
\r
650 Mockito.when(serviceModelDb.getOperationalEnvIdStatus(operationalEnvironmentId, requestId)).thenReturn(queryServiceModelResponseList);
\r
653 Mockito.when(distributionDb.updateOperationalEnvDistributionStatus(distribution.getStatus().toString(), asdcDistributionId, operationalEnvironmentId, serviceModelVersionId)).thenReturn(row);
\r
654 Mockito.when(serviceModelDb.updateOperationalEnvRetryCountStatus(operationalEnvironmentId, serviceModelVersionId, distribution.getStatus().toString(), 0)).thenReturn(row);
\r
656 doNothing().when(dbUtils).updateInfraSuccessCompletion(any(String.class), any(String.class), any(String.class));
\r
658 request.setOperationalEnvironmentId(operationalEnvironmentId);
\r
659 ActivateVnfStatusOperationalEnvironment activateVnfStatus = new ActivateVnfStatusOperationalEnvironment(request, requestId);
\r
660 ActivateVnfStatusOperationalEnvironment activateVnfStatusMock = spy(activateVnfStatus);
\r
661 activateVnfStatusMock.setOperationalEnvDistributionStatusDb(distributionDb);
\r
662 activateVnfStatusMock.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
663 activateVnfStatusMock.setRequestsDBHelper(dbUtils);
\r
664 activateVnfStatusMock.execute();
\r
666 assertEquals(false, activateVnfStatusMock.isSuccess());
\r