2 * ============LICENSE_START=======================================================
\r
4 * ================================================================================
\r
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * ================================================================================
\r
7 * Licensed under the Apache License, Version 2.0 (the "License");
\r
8 * you may not use this file except in compliance with the License.
\r
9 * You may obtain a copy of the License at
\r
11 * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * Unless required by applicable law or agreed to in writing, software
\r
14 * distributed under the License is distributed on an "AS IS" BASIS,
\r
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 * See the License for the specific language governing permissions and
\r
17 * limitations under the License.
\r
18 * ============LICENSE_END=========================================================
\r
20 package org.openecomp.mso.apihandlerinfra;
\r
22 import static org.junit.Assert.assertEquals;
\r
23 import static org.junit.Assert.assertFalse;
\r
25 import java.io.IOException;
\r
27 import javax.ws.rs.core.Response;
\r
29 import org.apache.http.HttpStatus;
\r
30 import org.junit.Test;
\r
31 import org.mockito.Mock;
\r
32 import org.mockito.Mockito;
\r
33 import org.openecomp.mso.apihandler.common.ValidationException;
\r
34 import org.openecomp.mso.requestsdb.InfraActiveRequests;
\r
35 import org.openecomp.mso.requestsdb.RequestsDatabase;
\r
36 import org.openecomp.mso.serviceinstancebeans.GetOrchestrationResponse;
\r
37 import org.openecomp.mso.serviceinstancebeans.InstanceReferences;
\r
38 import org.openecomp.mso.serviceinstancebeans.Request;
\r
39 import org.openecomp.mso.serviceinstancebeans.RequestStatus;
\r
40 import org.openecomp.mso.serviceinstancebeans.ServiceInstancesRequest;
\r
42 import com.fasterxml.jackson.core.JsonParseException;
\r
43 import com.fasterxml.jackson.databind.JsonMappingException;
\r
44 import com.fasterxml.jackson.databind.ObjectMapper;
\r
46 public class OrchestrationRequestsTest {
\r
48 private static final String CHECK_HTML = "<!DOCTYPE html><html><head><meta charset=\"ISO-8859-1\"><title></title></head><body></body></html>";
\r
49 public static final Response RESPONSE = Response.status(HttpStatus.SC_OK).entity(CHECK_HTML).build();
\r
51 private static RequestsDatabase db;
\r
52 private static OrchestrationRequests orReq;
\r
53 private static GetOrchestrationResponse orRes;
\r
56 public void testGetOrchestrationRequest() {
\r
57 orReq = Mockito.mock(OrchestrationRequests.class);
\r
58 orRes = new GetOrchestrationResponse();
\r
60 // create InfraActiveRequests object
\r
61 InfraActiveRequests infraRequests = new InfraActiveRequests();
\r
62 infraRequests.setRequestId("rq1234d1-5a33-55df-13ab-12abad84e333");
\r
63 infraRequests.setNetworkType("CONTRAIL30_BASIC");
\r
64 infraRequests.setRequestType("createInstance");
\r
65 infraRequests.setSource("VID");
\r
66 infraRequests.setTenantId("19123c2924c648eb8e42a3c1f14b7682");
\r
67 infraRequests.setServiceInstanceId("bc305d54-75b4-431b-adb2-eb6b9e546014");
\r
68 infraRequests.setRequestStatus("IN_PROGRESS");
\r
69 infraRequests.setRequestorId("ab1234");
\r
70 String body = "{\"modelInfo\":{\"modelInvariantId\":\"9771b085-4705-4bf7-815d-8c0627bb7e36\",\"modelType\":\"service\",\"modelName\":\"Service with VNFs with modules\",\"modelVersion\":\"1.0\"}}";
\r
71 infraRequests.setRequestBody(body);
\r
73 db = Mockito.mock(RequestsDatabase.class);
\r
74 Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests);
\r
76 ///// mock mapInfraActiveRequestToRequest()
\r
77 Request request = new Request();
\r
78 request.setRequestId(infraRequests.getRequestId());
\r
79 request.setRequestScope(infraRequests.getRequestScope());
\r
80 request.setRequestType(infraRequests.getRequestAction());
\r
82 InstanceReferences ir = new InstanceReferences();
\r
83 if (infraRequests.getNetworkId() != null)
\r
84 ir.setNetworkInstanceId(infraRequests.getNetworkId());
\r
85 if (infraRequests.getNetworkName() != null)
\r
86 ir.setNetworkInstanceName(infraRequests.getNetworkName());
\r
87 if (infraRequests.getServiceInstanceId() != null)
\r
88 ir.setServiceInstanceId(infraRequests.getServiceInstanceId());
\r
89 if (infraRequests.getServiceInstanceName() != null)
\r
90 ir.setServiceInstanceName(infraRequests.getServiceInstanceName());
\r
91 if (infraRequests.getVfModuleId() != null)
\r
92 ir.setVfModuleInstanceId(infraRequests.getVfModuleId());
\r
93 if (infraRequests.getVfModuleName() != null)
\r
94 ir.setVfModuleInstanceName(infraRequests.getVfModuleName());
\r
95 if (infraRequests.getVnfId() != null)
\r
96 ir.setVnfInstanceId(infraRequests.getVnfId());
\r
97 if (infraRequests.getVnfName() != null)
\r
98 ir.setVnfInstanceName(infraRequests.getVnfName());
\r
99 if (infraRequests.getVolumeGroupId() != null)
\r
100 ir.setVolumeGroupInstanceId(infraRequests.getVolumeGroupId());
\r
101 if (infraRequests.getVolumeGroupName() != null)
\r
102 ir.setVolumeGroupInstanceName(infraRequests.getVolumeGroupName());
\r
103 if (infraRequests.getRequestorId() != null)
\r
104 ir.setRequestorId(infraRequests.getRequestorId());
\r
106 request.setInstanceReferences(ir);
\r
107 RequestStatus status = new RequestStatus();
\r
109 if (infraRequests.getRequestStatus() != null) {
\r
110 status.setRequestState(infraRequests.getRequestStatus());
\r
113 request.setRequestStatus(status);
\r
114 // RequestStatus reqStatus = request.getRequestStatus();
\r
115 orRes.setRequest(request);
\r
116 Mockito.when(orReq.getOrchestrationRequest(Mockito.anyString(), Mockito.anyString())).thenReturn(RESPONSE);
\r
117 Response resp = orReq.getOrchestrationRequest("rq1234d1-5a33-55df-13ab-12abad84e333", "v3");
\r
119 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getRequestId(),
\r
120 "rq1234d1-5a33-55df-13ab-12abad84e333");
\r
121 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getSource(), "VID");
\r
122 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getTenantId(),
\r
123 "19123c2924c648eb8e42a3c1f14b7682");
\r
124 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getServiceInstanceId(),
\r
125 "bc305d54-75b4-431b-adb2-eb6b9e546014");
\r
126 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getRequestStatus(),
\r
128 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getRequestorId(),
\r
130 assertEquals(request.getInstanceReferences().getServiceInstanceId(),"bc305d54-75b4-431b-adb2-eb6b9e546014");
\r
131 assertEquals(request.getInstanceReferences().getRequestorId(),"ab1234");
\r
132 assertEquals(orRes.getRequest().getRequestId(), "rq1234d1-5a33-55df-13ab-12abad84e333");
\r
133 assertEquals(resp.getStatus(), HttpStatus.SC_OK);
\r
134 } catch (Exception e) {
\r
136 e.printStackTrace();
\r
141 public void testGetOrchestrationRequestNotPresent() {
\r
142 orReq = Mockito.mock(OrchestrationRequests.class);
\r
143 orRes = new GetOrchestrationResponse();
\r
145 // create InfraActiveRequests object
\r
146 InfraActiveRequests infraRequests = Mockito.mock(InfraActiveRequests.class);
\r
147 db = Mockito.mock(RequestsDatabase.class);
\r
148 Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests);
\r
150 Request request = new Request();
\r
151 RequestStatus status = new RequestStatus();
\r
152 request.setRequestStatus(status);
\r
153 orRes.setRequest(request);
\r
154 assertFalse("rq1234d1-5a33-55df-13ab-12abad84e333".equalsIgnoreCase(orRes.getRequest().getRequestId()));
\r
155 } catch (Exception e) {
\r
157 e.printStackTrace();
\r
162 public void testUnlockOrchestrationRequest()
\r
163 throws JsonParseException, JsonMappingException, IOException, ValidationException {
\r
164 ObjectMapper mapper = new ObjectMapper();
\r
165 String requestJSON = " {\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"ab1234\"}}}";
\r
167 MsoRequest msoRequest = new MsoRequest("rq1234d1-5a33-55df-13ab-12abad84e333");
\r
168 ServiceInstancesRequest sir = mapper.readValue(requestJSON, ServiceInstancesRequest.class);
\r
169 msoRequest.parseOrchestration(sir);
\r
171 //create object instead of a DB call.
\r
172 InfraActiveRequests infraRequests = new InfraActiveRequests();
\r
173 infraRequests.setRequestId("rq1234d1-5a33-55df-13ab-12abad84e333");
\r
174 infraRequests.setNetworkType("CONTRAIL30_BASIC");
\r
175 infraRequests.setSource("VID");
\r
176 infraRequests.setTenantId("19123c2924c648eb8e42a3c1f14b7682");
\r
177 infraRequests.setServiceInstanceId("ea4d5374-d28d-4bbf-9691-22985f088b12");
\r
178 infraRequests.setRequestStatus("IN-PROGRESS");
\r
180 db = Mockito.mock(RequestsDatabase.class);
\r
181 Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests);
\r
183 Request request = new Request();
\r
184 InstanceReferences ir = new InstanceReferences();
\r
185 request.setInstanceReferences(ir);
\r
186 RequestStatus status = new RequestStatus();
\r
188 if (infraRequests.getRequestStatus() != null) {
\r
189 status.setRequestState(infraRequests.getRequestStatus());
\r
191 request.setRequestStatus(status);
\r
192 RequestStatus reqStatus = request.getRequestStatus();
\r
194 assertEquals(reqStatus.getRequestState(),"IN-PROGRESS");
\r
196 if (reqStatus.getRequestState().equalsIgnoreCase("IN-PROGRESS")){
\r
197 reqStatus.setRequestState(Status.UNLOCKED.toString ());
\r
199 assertEquals(reqStatus.getRequestState(),"UNLOCKED");
\r