/*- * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= */ package org.openecomp.mso.apihandlerinfra; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import java.io.IOException; import javax.ws.rs.core.Response; import org.apache.http.HttpStatus; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; import org.openecomp.mso.apihandler.common.ValidationException; import org.openecomp.mso.requestsdb.InfraActiveRequests; import org.openecomp.mso.requestsdb.RequestsDatabase; import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.GetOrchestrationResponse; import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.InstanceReferences; import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.Request; import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.RequestStatus; import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.ServiceInstancesRequest; public class OrchestrationRequestsTest { private static final String CHECK_HTML = ""; public static final Response RESPONSE = Response.status(HttpStatus.SC_OK).entity(CHECK_HTML).build(); @Mock private static RequestsDatabase db; private static OrchestrationRequests orReq; private static GetOrchestrationResponse orRes; @Test public void testGetOrchestrationRequest() { orReq = Mockito.mock(OrchestrationRequests.class); orRes = new GetOrchestrationResponse(); try { // create InfraActiveRequests object InfraActiveRequests infraRequests = new InfraActiveRequests(); infraRequests.setRequestId("rq1234d1-5a33-55df-13ab-12abad84e333"); infraRequests.setNetworkType("CONTRAIL30_BASIC"); infraRequests.setRequestType("createInstance"); infraRequests.setSource("VID"); infraRequests.setTenantId("19123c2924c648eb8e42a3c1f14b7682"); infraRequests.setServiceInstanceId("bc305d54-75b4-431b-adb2-eb6b9e546014"); infraRequests.setRequestStatus("IN_PROGRESS"); infraRequests.setRequestorId("ab1234"); String body = "{\"modelInfo\":{\"modelInvariantId\":\"9771b085-4705-4bf7-815d-8c0627bb7e36\",\"modelType\":\"service\",\"modelName\":\"Service with VNFs with modules\",\"modelVersion\":\"1.0\"}}"; infraRequests.setRequestBody(body); db = Mockito.mock(RequestsDatabase.class); Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests); ///// mock mapInfraActiveRequestToRequest() Request request = new Request(); request.setRequestId(infraRequests.getRequestId()); request.setRequestScope(infraRequests.getRequestScope()); request.setRequestType(infraRequests.getRequestAction()); InstanceReferences ir = new InstanceReferences(); if (infraRequests.getNetworkId() != null) ir.setNetworkInstanceId(infraRequests.getNetworkId()); if (infraRequests.getNetworkName() != null) ir.setNetworkInstanceName(infraRequests.getNetworkName()); if (infraRequests.getServiceInstanceId() != null) ir.setServiceInstanceId(infraRequests.getServiceInstanceId()); if (infraRequests.getServiceInstanceName() != null) ir.setServiceInstanceName(infraRequests.getServiceInstanceName()); if (infraRequests.getVfModuleId() != null) ir.setVfModuleInstanceId(infraRequests.getVfModuleId()); if (infraRequests.getVfModuleName() != null) ir.setVfModuleInstanceName(infraRequests.getVfModuleName()); if (infraRequests.getVnfId() != null) ir.setVnfInstanceId(infraRequests.getVnfId()); if (infraRequests.getVnfName() != null) ir.setVnfInstanceName(infraRequests.getVnfName()); if (infraRequests.getVolumeGroupId() != null) ir.setVolumeGroupInstanceId(infraRequests.getVolumeGroupId()); if (infraRequests.getVolumeGroupName() != null) ir.setVolumeGroupInstanceName(infraRequests.getVolumeGroupName()); if (infraRequests.getRequestorId() != null) ir.setRequestorId(infraRequests.getRequestorId()); request.setInstanceReferences(ir); RequestStatus status = new RequestStatus(); if (infraRequests.getRequestStatus() != null) { status.setRequestState(infraRequests.getRequestStatus()); } request.setRequestStatus(status); // RequestStatus reqStatus = request.getRequestStatus(); orRes.setRequest(request); Mockito.when(orReq.getOrchestrationRequest(Mockito.anyString(), Mockito.anyString())).thenReturn(RESPONSE); Response resp = orReq.getOrchestrationRequest("rq1234d1-5a33-55df-13ab-12abad84e333", "v3"); assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getRequestId(), "rq1234d1-5a33-55df-13ab-12abad84e333"); assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getSource(), "VID"); assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getTenantId(), "19123c2924c648eb8e42a3c1f14b7682"); assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getServiceInstanceId(), "bc305d54-75b4-431b-adb2-eb6b9e546014"); assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getRequestStatus(), "IN_PROGRESS"); assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getRequestorId(), "ab1234"); assertEquals(request.getInstanceReferences().getServiceInstanceId(),"bc305d54-75b4-431b-adb2-eb6b9e546014"); assertEquals(request.getInstanceReferences().getRequestorId(),"ab1234"); assertEquals(orRes.getRequest().getRequestId(), "rq1234d1-5a33-55df-13ab-12abad84e333"); assertEquals(resp.getStatus(), HttpStatus.SC_OK); } catch (Exception e) { e.printStackTrace(); } } @Test public void testGetOrchestrationRequestNotPresent() { orReq = Mockito.mock(OrchestrationRequests.class); orRes = new GetOrchestrationResponse(); try { // create InfraActiveRequests object InfraActiveRequests infraRequests = Mockito.mock(InfraActiveRequests.class); db = Mockito.mock(RequestsDatabase.class); Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests); Request request = new Request(); RequestStatus status = new RequestStatus(); request.setRequestStatus(status); orRes.setRequest(request); assertFalse("rq1234d1-5a33-55df-13ab-12abad84e333".equalsIgnoreCase(orRes.getRequest().getRequestId())); } catch (Exception e) { e.printStackTrace(); } } @Test public void testUnlockOrchestrationRequest() throws JsonParseException, JsonMappingException, IOException, ValidationException { ObjectMapper mapper = new ObjectMapper(); String requestJSON = " {\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"ab1234\"}}}"; MsoRequest msoRequest = new MsoRequest("rq1234d1-5a33-55df-13ab-12abad84e333"); ServiceInstancesRequest sir = mapper.readValue(requestJSON, ServiceInstancesRequest.class); msoRequest.parseOrchestration(sir); //create object instead of a DB call. InfraActiveRequests infraRequests = new InfraActiveRequests(); infraRequests.setRequestId("rq1234d1-5a33-55df-13ab-12abad84e333"); infraRequests.setNetworkType("CONTRAIL30_BASIC"); infraRequests.setSource("VID"); infraRequests.setTenantId("19123c2924c648eb8e42a3c1f14b7682"); infraRequests.setServiceInstanceId("ea4d5374-d28d-4bbf-9691-22985f088b12"); infraRequests.setRequestStatus("IN-PROGRESS"); db = Mockito.mock(RequestsDatabase.class); Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests); Request request = new Request(); InstanceReferences ir = new InstanceReferences(); request.setInstanceReferences(ir); RequestStatus status = new RequestStatus(); if (infraRequests.getRequestStatus() != null) { status.setRequestState(infraRequests.getRequestStatus()); } request.setRequestStatus(status); RequestStatus reqStatus = request.getRequestStatus(); assertEquals(reqStatus.getRequestState(),"IN-PROGRESS"); if (reqStatus.getRequestState().equalsIgnoreCase("IN-PROGRESS")){ reqStatus.setRequestState(Status.UNLOCKED.toString ()); } assertEquals(reqStatus.getRequestState(),"UNLOCKED"); } }