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.onap.so.adapters.requestsdb.adapters;
23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.fail;
27 import java.util.ArrayList;
28 import java.util.List;
29 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
30 import org.junit.Before;
31 import org.junit.Rule;
32 import org.junit.Test;
33 import org.junit.rules.ExpectedException;
34 import org.onap.so.adapters.requestsdb.MsoRequestsDbAdapter;
35 import org.onap.so.adapters.requestsdb.RequestStatusType;
36 import org.onap.so.adapters.requestsdb.RequestsAdapterBase;
37 import org.onap.so.adapters.requestsdb.application.TestAppender;
38 import org.onap.so.adapters.requestsdb.exceptions.MsoRequestsDbException;
39 import org.onap.so.db.request.beans.InfraActiveRequests;
40 import org.onap.so.db.request.beans.OperationStatus;
41 import org.onap.so.db.request.beans.ResourceOperationStatus;
42 import org.onap.so.db.request.data.repository.OperationStatusRepository;
43 import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository;
44 import org.onap.so.requestsdb.RequestsDbConstant;
45 import org.springframework.beans.factory.annotation.Autowired;
46 import org.springframework.boot.web.server.LocalServerPort;
48 public class MSORequestDBImplTest extends RequestsAdapterBase {
53 private MsoRequestsDbAdapter dbAdapter;
56 private OperationStatusRepository operationStatusRepository;
59 private ResourceOperationStatusRepository resourceOperationStatusRepo;
62 public ExpectedException thrown = ExpectedException.none();
64 public InfraActiveRequests setupTestEntities() {
65 return buildTestRequest();
69 public void before() throws MsoRequestsDbException {
70 JaxWsProxyFactoryBean jaxWsProxyFactory = new JaxWsProxyFactoryBean();
71 jaxWsProxyFactory.setServiceClass(MsoRequestsDbAdapter.class);
72 jaxWsProxyFactory.setAddress("http://localhost:" + port + "/services/RequestsDbAdapter");
73 jaxWsProxyFactory.setUsername("bpel");
74 jaxWsProxyFactory.setPassword("mso-db-1507!");
75 dbAdapter = (MsoRequestsDbAdapter) jaxWsProxyFactory.create();
77 InfraActiveRequests testRequest = this.buildTestRequest();
79 dbAdapter.updateInfraRequest(testRequest.getRequestId(), testRequest.getLastModifiedBy(),
80 testRequest.getStatusMessage(), testRequest.getResponseBody(),
81 RequestStatusType.valueOf(testRequest.getRequestStatus()), testRequest.getProgress().toString(),
82 testRequest.getVnfOutputs(), testRequest.getServiceInstanceId(), testRequest.getNetworkId(),
83 testRequest.getVnfId(), testRequest.getVfModuleId(), testRequest.getVolumeGroupId(),
84 testRequest.getServiceInstanceName(), testRequest.getConfigurationId(),
85 testRequest.getConfigurationName(), testRequest.getVfModuleName());
90 private InfraActiveRequests buildTestRequest() {
91 InfraActiveRequests testRequest = new InfraActiveRequests();
92 testRequest.setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
93 testRequest.setRequestStatus("COMPLETE");
94 testRequest.setStatusMessage("Vf Module has been deleted successfully.");
95 testRequest.setProgress((long) 100);
96 testRequest.setSource("VID");
97 testRequest.setTenantId("6accefef3cb442ff9e644d589fb04107");
98 testRequest.setServiceInstanceId("e3b5744d-2ad1-4cdd-8390-c999a38829bc");
99 testRequest.setRequestAction("deleteInstance");
100 testRequest.setRequestScope("vfModule");
101 testRequest.setCloudRegion("mtn6");
102 testRequest.setLastModifiedBy("BPMN");
103 testRequest.setVfModuleId("c7d527b1-7a91-49fd-b97d-1c8c0f4a7992");
104 testRequest.setVfModuleModelName("vSAMP10aDEV::base::module-0");
105 testRequest.setVnfId("b92f60c8-8de3-46c1-8dc1-e4390ac2b005");
106 testRequest.setRequestUrl("http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances");
107 testRequest.setVolumeGroupId("volumeGroupId");
108 testRequest.setServiceInstanceName("serviceInstanceName");
109 testRequest.setConfigurationId("configurationId");
110 testRequest.setConfigurationName("configurationName");
111 testRequest.setNetworkId("networkId");
112 testRequest.setResponseBody("responseBody");
113 testRequest.setVfModuleName("vfModuleName");
114 testRequest.setVnfOutputs("vnfOutputs");
119 public void getByRequestId() throws MsoRequestsDbException {
121 InfraActiveRequests testRequest = setupTestEntities();
123 String requestId = "00032ab7-3fb3-42e5-965d-8ea592502017";
126 InfraActiveRequests infraRequest = dbAdapter.getInfraRequest(requestId);
127 if (infraRequest == null)
128 fail("Null infraRequest");
131 assertThat(infraRequest, sameBeanAs(testRequest).ignoring("requestBody").ignoring("endTime")
132 .ignoring("startTime").ignoring("modifyTime"));
137 public void getByInvalidRequestId() throws MsoRequestsDbException {
139 String requestId = "invalidRequestId";
142 dbAdapter.getInfraRequest(requestId);
143 fail("Expected MsoRequestsDbException to be thrown");
144 } catch (Exception e) {
145 assertEquals(e.getMessage(), "Error retrieving MSO Infra Requests DB for Request ID invalidRequestId");
150 public void updateInfraRequest() throws MsoRequestsDbException {
151 InfraActiveRequests testRequest = setupTestEntities();
153 String requestId = "00032ab7-3fb3-42e5-965d-8ea592502017";
157 String lastModifiedBy = "UNIT TEST";
158 String statusMessage = "TESTING THE UDPATES";
159 String progress = "50";
160 String vnfOutputs = "VNF OUTPUTS";
161 String networkId = "New NetworkID";
162 String vnfId = "NEWVNFID";
163 String volumeGroupId = "NewVolumeGroupId";
164 String serviceInstanceName = "NewServiceInstanceName";
165 String configurationId = "NewConfigurationId";
166 String configurationName = "NewConfigurationName";
167 String vfModuleName = "VFModuleName";
168 RequestStatusType requestStatus = RequestStatusType.COMPLETE;
169 String responseBody = "NewResponseBody";
170 String vfModuleId = "NEW VF MODULEID";
171 String serviceInstanceId = " new serv ind";
174 testRequest.setVolumeGroupId(volumeGroupId);
175 testRequest.setServiceInstanceName(serviceInstanceName);
176 testRequest.setConfigurationId(configurationId);
177 testRequest.setConfigurationName(configurationName);
178 testRequest.setNetworkId(networkId);
179 testRequest.setResponseBody(responseBody);
180 testRequest.setStatusMessage(statusMessage);
181 testRequest.setProgress((long) 50);
182 testRequest.setServiceInstanceId(lastModifiedBy);
183 testRequest.setLastModifiedBy(lastModifiedBy);
184 testRequest.setVfModuleId(vfModuleId);
185 testRequest.setVfModuleName(vfModuleName);
186 testRequest.setVnfId(vnfId);
187 testRequest.setServiceInstanceId(serviceInstanceId);
188 testRequest.setVfModuleName(vfModuleName);
189 testRequest.setVnfOutputs(vnfOutputs);
192 dbAdapter.updateInfraRequest(testRequest.getRequestId(), lastModifiedBy, statusMessage, responseBody,
193 requestStatus, progress, vnfOutputs, serviceInstanceId, networkId, vnfId, vfModuleId, volumeGroupId,
194 serviceInstanceName, configurationId, configurationName, vfModuleName);
195 InfraActiveRequests infraRequest = dbAdapter.getInfraRequest(requestId);
197 assertThat(infraRequest, sameBeanAs(testRequest).ignoring("requestBody").ignoring("endTime")
198 .ignoring("startTime").ignoring("modifyTime"));
204 public void UpdateByInvalidRequestId() throws MsoRequestsDbException {
206 String requestId = "invalidRequestId";
209 dbAdapter.updateInfraRequest(requestId, null, null, null, null, null, null, null, null, null, null, null,
210 null, null, null, null);
211 fail("Expected MsoRequestsDbException to be thrown");
212 } catch (Exception e) {
213 assertEquals(e.getMessage(), "Error retrieving MSO Infra Requests DB for Request ID invalidRequestId");
219 public void updateInfraRequestNulls() throws MsoRequestsDbException {
220 InfraActiveRequests testRequest = setupTestEntities();
222 String requestId = "00032ab7-3fb3-42e5-965d-8ea592502017";
225 dbAdapter.updateInfraRequest(testRequest.getRequestId(), testRequest.getLastModifiedBy(), null, null, null,
226 null, null, null, null, null, null, null, null, null, null, null);
227 InfraActiveRequests infraRequest = dbAdapter.getInfraRequest(requestId);
229 assertThat(infraRequest, sameBeanAs(testRequest).ignoring("requestBody").ignoring("endTime")
230 .ignoring("startTime").ignoring("modifyTime"));
234 public void getSiteStatusNotDisabled() throws MsoRequestsDbException {
237 String siteName = "siteName";
240 boolean siteDisabled = dbAdapter.getSiteStatus(siteName);
243 assertEquals(siteDisabled, true);
247 public void getSiteStatusDisabled() throws MsoRequestsDbException {
250 String siteName = "testSite";
253 boolean siteDisabled = dbAdapter.getSiteStatus(siteName);
256 assertEquals(siteDisabled, false);
260 public void updateServiceOperation() throws MsoRequestsDbException {
261 String serviceId = "serviceid";
262 String operationId = "operationid";
263 String serviceName = "servicename";
264 String operation = "newOperationType";
265 String userId = "NewUserId";
266 String result = "NewResult";
267 String operationContent = "newOperationContent";
268 String progress = "Newprogress";
269 String reason = "NewReason";
271 OperationStatus updatedOperationStatus = new OperationStatus();
275 updatedOperationStatus.setServiceId(serviceId);
276 updatedOperationStatus.setServiceName(serviceName);
277 updatedOperationStatus.setOperationId(operationId);
278 updatedOperationStatus.setOperation(operation);
279 updatedOperationStatus.setUserId(userId);
280 updatedOperationStatus.setResult(result);
281 updatedOperationStatus.setProgress(progress);
282 updatedOperationStatus.setReason(reason);
283 updatedOperationStatus.setOperationContent(operationContent);
285 dbAdapter.updateServiceOperationStatus(serviceId, operationId, operation, userId, result, operationContent,
287 OperationStatus dbOpStatus = operationStatusRepository.findOneByServiceIdAndOperationId(serviceId, operationId);
288 assertThat(dbOpStatus, sameBeanAs(updatedOperationStatus).ignoring("operateAt").ignoring("finishedAt"));
293 public void updateServiceOperation_Not_Found() throws MsoRequestsDbException {
294 TestAppender.events.clear();
295 String serviceId = "badserviceId";
296 String operationId = "operationid";
297 String operation = "newOperationType";
298 String userId = "NewUserId";
299 String result = "NewResult";
300 String operationContent = "newOperationContent";
301 String progress = "Newprogress";
302 String reason = "NewReason";
304 OperationStatus updatedOperationStatus = new OperationStatus();
308 updatedOperationStatus.setServiceId(serviceId);
309 updatedOperationStatus.setOperationId(operationId);
310 updatedOperationStatus.setOperation(operation);
311 updatedOperationStatus.setUserId(userId);
312 updatedOperationStatus.setResult(result);
313 updatedOperationStatus.setProgress(progress);
314 updatedOperationStatus.setReason(reason);
315 updatedOperationStatus.setOperationContent(operationContent);
317 dbAdapter.updateServiceOperationStatus(serviceId, operationId, operation, userId, result, operationContent,
319 OperationStatus dbOpStatus = operationStatusRepository.findOneByServiceIdAndOperationId(serviceId, operationId);
320 assertThat(dbOpStatus, sameBeanAs(updatedOperationStatus).ignoring("operateAt").ignoring("finishedAt"));
324 public void initResourceOperationStatus() throws MsoRequestsDbException {
325 String resourceTemplateUUIDs = "template1:template2:template3:";
326 String serviceId = "serviceId";
327 String operationId = "operationId";
328 String operationType = "operationType";
330 ResourceOperationStatus resource1 = new ResourceOperationStatus();
331 resource1.setOperationId(operationId);
332 resource1.setServiceId(serviceId);
333 resource1.setResourceTemplateUUID("template1");
334 resource1.setOperType(operationType);
335 resource1.setStatus(RequestsDbConstant.Status.PROCESSING);
336 resource1.setStatusDescription("Waiting for start");
338 ResourceOperationStatus resource2 = new ResourceOperationStatus();
339 resource2.setOperationId(operationId);
340 resource2.setServiceId(serviceId);
341 resource2.setResourceTemplateUUID("template2");
342 resource2.setOperType(operationType);
343 resource2.setStatus(RequestsDbConstant.Status.PROCESSING);
344 resource2.setStatusDescription("Waiting for start");
346 ResourceOperationStatus resource3 = new ResourceOperationStatus();
347 resource3.setOperationId(operationId);
348 resource3.setServiceId(serviceId);
349 resource3.setResourceTemplateUUID("template3");
350 resource3.setOperType(operationType);
351 resource3.setStatus(RequestsDbConstant.Status.PROCESSING);
352 resource3.setStatusDescription("Waiting for start");
354 List<ResourceOperationStatus> expectedResult = new ArrayList<ResourceOperationStatus>();
355 expectedResult.add(resource1);
356 expectedResult.add(resource2);
357 expectedResult.add(resource3);
359 dbAdapter.initResourceOperationStatus(serviceId, operationId, operationType, resourceTemplateUUIDs);
360 List<ResourceOperationStatus> testList =
361 resourceOperationStatusRepo.findByServiceIdAndOperationId(serviceId, operationId);
362 assertThat(testList, sameBeanAs(expectedResult));
366 public void getResourceOperationStatus() throws MsoRequestsDbException {
367 String resourceTemplateUUIDs = "template1";
368 String serviceId = "serviceId";
369 String operationId = "operationId";
370 String operationType = "operationType";
372 ResourceOperationStatus resource1 = new ResourceOperationStatus();
373 resource1.setOperationId(operationId);
374 resource1.setServiceId(serviceId);
375 resource1.setResourceTemplateUUID("template1");
376 resource1.setOperType(operationType);
377 resource1.setStatus(RequestsDbConstant.Status.PROCESSING);
378 resource1.setStatusDescription("Waiting for start");
381 dbAdapter.initResourceOperationStatus(serviceId, operationId, operationType, resourceTemplateUUIDs);
383 ResourceOperationStatus actualResource =
384 dbAdapter.getResourceOperationStatus(serviceId, operationId, "template1");
385 assertThat(actualResource, sameBeanAs(resource1));
389 public void updateResourceOperationStatus() throws MsoRequestsDbException {
390 TestAppender.events.clear();
391 String resourceTemplateUUID = "template1";
392 String serviceId = "serviceId";
393 String operationId = "operationId";
394 String operationType = "operationType";
395 String resourceInstanceID = "resourceInstanceID";
396 String jobId = "jobId";
397 String status = RequestsDbConstant.Status.FINISHED;
398 String progress = "50";
399 String errorCode = "errorCode";
400 String statusDescription = "statusDescription";
403 ResourceOperationStatus expectedResource = new ResourceOperationStatus();
404 expectedResource.setOperationId(operationId);
405 expectedResource.setServiceId(serviceId);
406 expectedResource.setResourceTemplateUUID(resourceTemplateUUID);
407 expectedResource.setOperType(operationType);
408 expectedResource.setJobId(jobId);
409 expectedResource.setErrorCode(errorCode);
410 expectedResource.setStatus(RequestsDbConstant.Status.FINISHED);
411 expectedResource.setStatusDescription(statusDescription);
412 expectedResource.setProgress(progress);
413 expectedResource.setResourceInstanceID(resourceInstanceID);
416 dbAdapter.updateResourceOperationStatus(serviceId, operationId, resourceTemplateUUID, operationType,
417 resourceInstanceID, jobId, status, progress, errorCode, statusDescription);
419 ResourceOperationStatus actualResource =
420 dbAdapter.getResourceOperationStatus(serviceId, operationId, "template1");
421 assertThat(actualResource, sameBeanAs(expectedResource));