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.mockito.Matchers.any;
\r
24 import static org.mockito.Mockito.doNothing;
\r
25 import static org.mockito.Mockito.mock;
\r
26 import static org.mockito.Mockito.spy;
\r
27 import static org.mockito.Mockito.times;
\r
28 import static org.mockito.Mockito.verify;
\r
30 import java.util.ArrayList;
\r
31 import java.util.List;
\r
33 import org.json.JSONObject;
\r
34 import org.junit.After;
\r
35 import org.junit.Assert;
\r
36 import org.junit.BeforeClass;
\r
37 import org.junit.Test;
\r
38 import org.mockito.Mockito;
\r
39 import org.openecomp.mso.apihandlerinfra.Constants;
\r
40 import org.openecomp.mso.apihandlerinfra.MsoPropertiesUtils;
\r
41 import org.openecomp.mso.apihandlerinfra.tenantisolation.CloudOrchestrationRequest;
\r
42 import org.openecomp.mso.apihandlerinfra.tenantisolation.helpers.AAIClientHelper;
\r
43 import org.openecomp.mso.apihandlerinfra.tenantisolation.helpers.AsdcClientHelper;
\r
44 import org.openecomp.mso.apihandlerinfra.tenantisolationbeans.Manifest;
\r
45 import org.openecomp.mso.apihandlerinfra.tenantisolationbeans.RecoveryAction;
\r
46 import org.openecomp.mso.apihandlerinfra.tenantisolationbeans.RequestDetails;
\r
47 import org.openecomp.mso.apihandlerinfra.tenantisolationbeans.RequestParameters;
\r
48 import org.openecomp.mso.apihandlerinfra.tenantisolationbeans.ServiceModelList;
\r
49 import org.openecomp.mso.client.aai.entities.AAIResultWrapper;
\r
50 import org.openecomp.mso.properties.MsoJavaProperties;
\r
51 import org.openecomp.mso.properties.MsoPropertiesFactory;
\r
52 import org.openecomp.mso.requestsdb.OperationalEnvDistributionStatusDb;
\r
53 import org.openecomp.mso.requestsdb.OperationalEnvServiceModelStatusDb;
\r
54 import org.openecomp.mso.requestsdb.RequestsDBHelper;
\r
55 import org.openecomp.mso.rest.APIResponse;
\r
56 import org.openecomp.mso.rest.RESTClient;
\r
57 import org.openecomp.mso.rest.RESTConfig;
\r
59 public class ActivateVnfOperationalEnvironmentTest {
\r
61 MsoJavaProperties properties = MsoPropertiesUtils.loadMsoProperties();
\r
62 AsdcClientHelper asdcClientUtils = new AsdcClientHelper(properties);
\r
64 String requestId = "TEST_requestId";
\r
65 String operationalEnvironmentId = "TEST_operationalEnvironmentId";
\r
66 CloudOrchestrationRequest request = new CloudOrchestrationRequest();
\r
67 String workloadContext = "TEST_workloadContext";
\r
68 String recoveryAction = "RETRY";
\r
69 String serviceModelVersionId = "TEST_serviceModelVersionId";
\r
71 String distributionId = "TEST_distributionId";
\r
74 public static void setUp() throws Exception {
\r
75 MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
\r
76 msoPropertiesFactory.removeAllMsoProperties();
\r
77 msoPropertiesFactory.initializeMsoProperties(Constants.MSO_PROP_APIHANDLER_INFRA, "src/test/resources/mso.apihandler-infra.properties");
\r
81 public void tearDown() throws Exception {
\r
86 public void getAAIClientHelperTest() throws Exception {
\r
88 request.setOperationalEnvironmentId(operationalEnvironmentId);
\r
89 ActivateVnfOperationalEnvironment activateVnf = new ActivateVnfOperationalEnvironment(request, requestId);
\r
90 AAIClientHelper aaiHelper = activateVnf.getAaiHelper();
\r
92 Assert.assertNotNull(aaiHelper);
\r
97 public void getAAIOperationalEnvironmentTest() throws Exception {
\r
99 // prepare return data
\r
100 JSONObject aaiJsonResponse = new JSONObject();
\r
101 aaiJsonResponse.put("operational-environment-id", "testASDCDistributionId");
\r
102 aaiJsonResponse.put("operational-environment-name", "testASDCDistributionIName");
\r
103 aaiJsonResponse.put("operational-environment-type", "VNF");
\r
104 aaiJsonResponse.put("operational-environment-status", "ACTIVE");
\r
105 aaiJsonResponse.put("tenant-context", "Test");
\r
106 aaiJsonResponse.put("workload-context", "PVT");
\r
107 aaiJsonResponse.put("resource-version", "1505228226913");
\r
108 String mockGetResponseJson = aaiJsonResponse.toString();
\r
110 AAIResultWrapper aaiREsultWrapperObj = new AAIResultWrapper(mockGetResponseJson);
\r
112 request.setOperationalEnvironmentId(operationalEnvironmentId);
\r
113 AAIClientHelper aaiClientHelperMock = Mockito.mock(AAIClientHelper.class);
\r
115 ActivateVnfOperationalEnvironment activateVnfMock = Mockito.mock(ActivateVnfOperationalEnvironment.class);
\r
116 ActivateVnfOperationalEnvironment activateVnf = new ActivateVnfOperationalEnvironment(request, requestId);
\r
118 Mockito.when(aaiClientHelperMock.getAaiOperationalEnvironment(operationalEnvironmentId)).thenReturn(aaiREsultWrapperObj);
\r
120 activateVnfMock = spy(activateVnf);
\r
121 activateVnfMock.setAaiHelper(aaiClientHelperMock);
\r
122 activateVnfMock.getAAIOperationalEnvironment(operationalEnvironmentId);
\r
124 verify(activateVnfMock, times(1)).getAaiHelper();
\r
125 verify(aaiClientHelperMock, times(1)).getAaiOperationalEnvironment( any(String.class) );
\r
130 public void processActivateASDCRequestTest() throws Exception {
\r
132 String jsonPayload = asdcClientUtils.buildJsonWorkloadContext(workloadContext);
\r
133 String distributionId = "TEST_distributionId";
\r
135 JSONObject jsonObject = new JSONObject();
\r
136 jsonObject.put("statusCode", "202");
\r
137 jsonObject.put("message", "Success");
\r
138 jsonObject.put("distributionId", distributionId);
\r
140 List<ServiceModelList> serviceModelVersionIdList = new ArrayList<ServiceModelList>();
\r
141 ServiceModelList serviceModelList1 = new ServiceModelList();
\r
142 serviceModelList1.setRecoveryAction(RecoveryAction.retry);
\r
143 serviceModelList1.setServiceModelVersionId(serviceModelVersionId);
\r
144 serviceModelVersionIdList.add(serviceModelList1);
\r
146 ActivateVnfOperationalEnvironment activate = new ActivateVnfOperationalEnvironment(request, requestId);
\r
147 ActivateVnfOperationalEnvironment activateVnfMock = spy(activate);
\r
150 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
151 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
152 AsdcClientHelper asdcClientHelperMock = Mockito.mock(AsdcClientHelper.class);
\r
153 RESTConfig configMock = Mockito.mock(RESTConfig.class);
\r
154 RESTClient clientMock = Mockito.mock(RESTClient.class);
\r
155 APIResponse apiResponseMock = Mockito.mock(APIResponse.class);
\r
157 activateVnfMock.setOperationalEnvDistributionStatusDb(distributionDb);
\r
158 activateVnfMock.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
159 activateVnfMock.setAsdcClientHelper(asdcClientHelperMock);
\r
161 Mockito.when(asdcClientHelperMock.setRestClient(configMock)).thenReturn(clientMock);
\r
162 Mockito.when(asdcClientHelperMock.setHttpPostResponse(clientMock, jsonPayload)).thenReturn(apiResponseMock);
\r
163 Mockito.when(asdcClientHelperMock.enhanceJsonResponse(jsonObject, 202)).thenReturn(jsonObject);
\r
164 Mockito.when(asdcClientHelperMock.postActivateOperationalEnvironment(serviceModelVersionId, operationalEnvironmentId, workloadContext)).thenReturn(jsonObject);
\r
166 activateVnfMock.processActivateASDCRequest(requestId, operationalEnvironmentId, serviceModelVersionIdList, workloadContext);
\r
168 verify(serviceModelDb, times(1)).insertOperationalEnvServiceModelStatus(requestId, operationalEnvironmentId, serviceModelVersionId, "SENT", "RETRY", retryCount, workloadContext);
\r
173 public void executionTest() throws Exception {
\r
175 // prepare request detail
\r
176 List<ServiceModelList> serviceModelVersionIdList = new ArrayList<ServiceModelList>();
\r
177 ServiceModelList serviceModelList1 = new ServiceModelList();
\r
178 serviceModelList1.setRecoveryAction(RecoveryAction.retry);
\r
179 serviceModelList1.setServiceModelVersionId(serviceModelVersionId);
\r
180 serviceModelVersionIdList.add(serviceModelList1);
\r
182 RequestDetails requestDetails = new RequestDetails();
\r
183 RequestParameters requestParameters = new RequestParameters();
\r
184 Manifest manifest = new Manifest();
\r
185 manifest.setServiceModelList(serviceModelVersionIdList);
\r
186 requestParameters.setManifest(manifest);
\r
187 requestParameters.setWorkloadContext(workloadContext);
\r
188 requestDetails.setRequestParameters(requestParameters);
\r
190 // prepare aai return data
\r
191 JSONObject aaiJsonResponse = new JSONObject();
\r
192 aaiJsonResponse.put("operational-environment-id", "testASDCDistributionId");
\r
193 aaiJsonResponse.put("operational-environment-name", "testASDCDistributionIName");
\r
194 aaiJsonResponse.put("operational-environment-type", "VNF");
\r
195 aaiJsonResponse.put("operational-environment-status", "ACTIVE");
\r
196 aaiJsonResponse.put("tenant-context", "Test");
\r
197 aaiJsonResponse.put("workload-context", workloadContext);
\r
198 aaiJsonResponse.put("resource-version", "1505228226913");
\r
199 String mockGetResponseJson = aaiJsonResponse.toString();
\r
200 AAIResultWrapper aaiREsultWrapperObj = new AAIResultWrapper(mockGetResponseJson);
\r
202 // prepare asdc return data
\r
203 String jsonPayload = asdcClientUtils.buildJsonWorkloadContext(workloadContext);
\r
205 JSONObject jsonObject = new JSONObject();
\r
206 jsonObject.put("statusCode", "202");
\r
207 jsonObject.put("message", "Success");
\r
208 jsonObject.put("distributionId", distributionId);
\r
211 OperationalEnvDistributionStatusDb distributionDb = Mockito.mock(OperationalEnvDistributionStatusDb.class);
\r
212 OperationalEnvServiceModelStatusDb serviceModelDb = Mockito.mock(OperationalEnvServiceModelStatusDb.class);
\r
213 RequestsDBHelper dbUtils = mock(RequestsDBHelper.class);
\r
214 AsdcClientHelper asdcClientHelperMock = Mockito.mock(AsdcClientHelper.class);
\r
215 RESTConfig configMock = Mockito.mock(RESTConfig.class);
\r
216 RESTClient clientMock = Mockito.mock(RESTClient.class);
\r
217 APIResponse apiResponseMock = Mockito.mock(APIResponse.class);
\r
219 Mockito.when(asdcClientHelperMock.setRestClient(configMock)).thenReturn(clientMock);
\r
220 Mockito.when(asdcClientHelperMock.setHttpPostResponse(clientMock, jsonPayload)).thenReturn(apiResponseMock);
\r
221 Mockito.when(asdcClientHelperMock.enhanceJsonResponse(jsonObject, 202)).thenReturn(jsonObject);
\r
223 AAIClientHelper aaiClientHelperMock = Mockito.mock(AAIClientHelper.class);
\r
224 Mockito.when(aaiClientHelperMock.getAaiOperationalEnvironment(operationalEnvironmentId)).thenReturn(aaiREsultWrapperObj);
\r
225 Mockito.when(asdcClientHelperMock.postActivateOperationalEnvironment(serviceModelVersionId, operationalEnvironmentId, workloadContext)).thenReturn(jsonObject);
\r
227 doNothing().when(serviceModelDb).insertOperationalEnvServiceModelStatus(requestId, operationalEnvironmentId, serviceModelVersionId, "SENT", recoveryAction, retryCount, workloadContext);
\r
228 doNothing().when(distributionDb).insertOperationalEnvDistributionStatus(distributionId, operationalEnvironmentId, serviceModelVersionId, "SENT", requestId);
\r
230 request.setOperationalEnvironmentId(operationalEnvironmentId);
\r
231 request.setRequestDetails(requestDetails);
\r
232 ActivateVnfOperationalEnvironment activate = new ActivateVnfOperationalEnvironment(request, requestId);
\r
233 ActivateVnfOperationalEnvironment activateVnfMock = spy(activate);
\r
234 activateVnfMock.setOperationalEnvDistributionStatusDb(distributionDb);
\r
235 activateVnfMock.setOperationalEnvServiceModelStatusDb(serviceModelDb);
\r
236 activateVnfMock.setRequestsDBHelper(dbUtils);
\r
237 activateVnfMock.setAsdcClientHelper(asdcClientHelperMock);
\r
238 activateVnfMock.setAaiHelper(aaiClientHelperMock);
\r
240 activateVnfMock.execute();
\r
242 verify(serviceModelDb, times(1)).insertOperationalEnvServiceModelStatus(requestId, operationalEnvironmentId, serviceModelVersionId, "SENT", recoveryAction, retryCount, workloadContext);
\r
243 verify(distributionDb, times(1)).insertOperationalEnvDistributionStatus(distributionId, operationalEnvironmentId, serviceModelVersionId, "SENT", requestId);
\r