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
24 import static org.junit.Assert.assertFalse;
\r
26 import java.io.IOException;
\r
27 import javax.ws.rs.core.Response;
\r
29 import org.apache.http.HttpStatus;
\r
30 import org.codehaus.jackson.JsonParseException;
\r
31 import org.codehaus.jackson.map.JsonMappingException;
\r
32 import org.codehaus.jackson.map.ObjectMapper;
\r
33 import org.junit.Test;
\r
34 import org.mockito.Mock;
\r
35 import org.mockito.Mockito;
\r
36 import org.openecomp.mso.apihandler.common.ValidationException;
\r
37 import org.openecomp.mso.requestsdb.InfraActiveRequests;
\r
38 import org.openecomp.mso.requestsdb.RequestsDatabase;
\r
39 import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.GetOrchestrationResponse;
\r
40 import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.InstanceReferences;
\r
41 import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.Request;
\r
42 import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.RequestStatus;
\r
43 import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.ServiceInstancesRequest;
\r
45 public class OrchestrationRequestsTest {
\r
47 private static final String CHECK_HTML = "<!DOCTYPE html><html><head><meta charset=\"ISO-8859-1\"><title></title></head><body></body></html>";
\r
48 public static final Response RESPONSE = Response.status(HttpStatus.SC_OK).entity(CHECK_HTML).build();
\r
50 private static RequestsDatabase db;
\r
51 private static OrchestrationRequests orReq;
\r
52 private static GetOrchestrationResponse orRes;
\r
55 public void testGetOrchestrationRequest() {
\r
56 orReq = Mockito.mock(OrchestrationRequests.class);
\r
57 orRes = new GetOrchestrationResponse();
\r
59 // create InfraActiveRequests object
\r
60 InfraActiveRequests infraRequests = new InfraActiveRequests();
\r
61 infraRequests.setRequestId("rq1234d1-5a33-55df-13ab-12abad84e333");
\r
62 infraRequests.setNetworkType("CONTRAIL30_BASIC");
\r
63 infraRequests.setRequestType("createInstance");
\r
64 infraRequests.setSource("VID");
\r
65 infraRequests.setTenantId("19123c2924c648eb8e42a3c1f14b7682");
\r
66 infraRequests.setServiceInstanceId("bc305d54-75b4-431b-adb2-eb6b9e546014");
\r
67 infraRequests.setRequestStatus("IN_PROGRESS");
\r
68 infraRequests.setRequestorId("ab1234");
\r
69 String body = "{\"modelInfo\":{\"modelInvariantId\":\"9771b085-4705-4bf7-815d-8c0627bb7e36\",\"modelType\":\"service\",\"modelName\":\"Service with VNFs with modules\",\"modelVersion\":\"1.0\"}}";
\r
70 infraRequests.setRequestBody(body);
\r
72 db = Mockito.mock(RequestsDatabase.class);
\r
73 Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests);
\r
75 ///// mock mapInfraActiveRequestToRequest()
\r
76 Request request = new Request();
\r
77 request.setRequestId(infraRequests.getRequestId());
\r
78 request.setRequestScope(infraRequests.getRequestScope());
\r
79 request.setRequestType(infraRequests.getRequestAction());
\r
81 InstanceReferences ir = new InstanceReferences();
\r
82 if (infraRequests.getNetworkId() != null)
\r
83 ir.setNetworkInstanceId(infraRequests.getNetworkId());
\r
84 if (infraRequests.getNetworkName() != null)
\r
85 ir.setNetworkInstanceName(infraRequests.getNetworkName());
\r
86 if (infraRequests.getServiceInstanceId() != null)
\r
87 ir.setServiceInstanceId(infraRequests.getServiceInstanceId());
\r
88 if (infraRequests.getServiceInstanceName() != null)
\r
89 ir.setServiceInstanceName(infraRequests.getServiceInstanceName());
\r
90 if (infraRequests.getVfModuleId() != null)
\r
91 ir.setVfModuleInstanceId(infraRequests.getVfModuleId());
\r
92 if (infraRequests.getVfModuleName() != null)
\r
93 ir.setVfModuleInstanceName(infraRequests.getVfModuleName());
\r
94 if (infraRequests.getVnfId() != null)
\r
95 ir.setVnfInstanceId(infraRequests.getVnfId());
\r
96 if (infraRequests.getVnfName() != null)
\r
97 ir.setVnfInstanceName(infraRequests.getVnfName());
\r
98 if (infraRequests.getVolumeGroupId() != null)
\r
99 ir.setVolumeGroupInstanceId(infraRequests.getVolumeGroupId());
\r
100 if (infraRequests.getVolumeGroupName() != null)
\r
101 ir.setVolumeGroupInstanceName(infraRequests.getVolumeGroupName());
\r
102 if (infraRequests.getRequestorId() != null)
\r
103 ir.setRequestorId(infraRequests.getRequestorId());
\r
105 request.setInstanceReferences(ir);
\r
106 RequestStatus status = new RequestStatus();
\r
108 if (infraRequests.getRequestStatus() != null) {
\r
109 status.setRequestState(infraRequests.getRequestStatus());
\r
112 request.setRequestStatus(status);
\r
113 // RequestStatus reqStatus = request.getRequestStatus();
\r
114 orRes.setRequest(request);
\r
115 Mockito.when(orReq.getOrchestrationRequest(Mockito.anyString(), Mockito.anyString())).thenReturn(RESPONSE);
\r
116 Response resp = orReq.getOrchestrationRequest("rq1234d1-5a33-55df-13ab-12abad84e333", "v3");
\r
118 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getRequestId(),
\r
119 "rq1234d1-5a33-55df-13ab-12abad84e333");
\r
120 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getSource(), "VID");
\r
121 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getTenantId(),
\r
122 "19123c2924c648eb8e42a3c1f14b7682");
\r
123 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getServiceInstanceId(),
\r
124 "bc305d54-75b4-431b-adb2-eb6b9e546014");
\r
125 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getRequestStatus(),
\r
127 assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getRequestorId(),
\r
129 assertEquals(request.getInstanceReferences().getServiceInstanceId(), "bc305d54-75b4-431b-adb2-eb6b9e546014");
\r
130 assertEquals(request.getInstanceReferences().getRequestorId(), "ab1234");
\r
131 assertEquals(orRes.getRequest().getRequestId(), "rq1234d1-5a33-55df-13ab-12abad84e333");
\r
132 assertEquals(resp.getStatus(), HttpStatus.SC_OK);
\r
133 } catch (Exception e) {
\r
135 e.printStackTrace();
\r
140 public void testGetOrchestrationRequestNotPresent() {
\r
141 orReq = Mockito.mock(OrchestrationRequests.class);
\r
142 orRes = new GetOrchestrationResponse();
\r
144 // create InfraActiveRequests object
\r
145 InfraActiveRequests infraRequests = Mockito.mock(InfraActiveRequests.class);
\r
146 db = Mockito.mock(RequestsDatabase.class);
\r
147 Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests);
\r
149 Request request = new Request();
\r
150 RequestStatus status = new RequestStatus();
\r
151 request.setRequestStatus(status);
\r
152 orRes.setRequest(request);
\r
153 assertFalse("rq1234d1-5a33-55df-13ab-12abad84e333".equalsIgnoreCase(orRes.getRequest().getRequestId()));
\r
154 } catch (Exception e) {
\r
156 e.printStackTrace();
\r
161 public void testUnlockOrchestrationRequest()
\r
162 throws JsonParseException, JsonMappingException, IOException, ValidationException {
\r
163 ObjectMapper mapper = new ObjectMapper();
\r
164 String requestJSON = " {\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"ab1234\"}}}";
\r
166 MsoRequest msoRequest = new MsoRequest("rq1234d1-5a33-55df-13ab-12abad84e333");
\r
167 ServiceInstancesRequest sir = mapper.readValue(requestJSON, ServiceInstancesRequest.class);
\r
168 msoRequest.parseOrchestration(sir);
\r
170 //create object instead of a DB call.
\r
171 InfraActiveRequests infraRequests = new InfraActiveRequests();
\r
172 infraRequests.setRequestId("rq1234d1-5a33-55df-13ab-12abad84e333");
\r
173 infraRequests.setNetworkType("CONTRAIL30_BASIC");
\r
174 infraRequests.setSource("VID");
\r
175 infraRequests.setTenantId("19123c2924c648eb8e42a3c1f14b7682");
\r
176 infraRequests.setServiceInstanceId("ea4d5374-d28d-4bbf-9691-22985f088b12");
\r
177 infraRequests.setRequestStatus("IN-PROGRESS");
\r
179 db = Mockito.mock(RequestsDatabase.class);
\r
180 Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests);
\r
182 Request request = new Request();
\r
183 InstanceReferences ir = new InstanceReferences();
\r
184 request.setInstanceReferences(ir);
\r
185 RequestStatus status = new RequestStatus();
\r
187 if (infraRequests.getRequestStatus() != null) {
\r
188 status.setRequestState(infraRequests.getRequestStatus());
\r
190 request.setRequestStatus(status);
\r
191 RequestStatus reqStatus = request.getRequestStatus();
\r
193 assertEquals(reqStatus.getRequestState(), "IN-PROGRESS");
\r
195 if (reqStatus.getRequestState().equalsIgnoreCase("IN-PROGRESS")) {
\r
196 reqStatus.setRequestState(Status.UNLOCKED.toString());
\r
198 assertEquals(reqStatus.getRequestState(), "UNLOCKED");
\r