AT&T 1712 and 1802 release code
[so.git] / mso-api-handlers / mso-api-handler-infra / src / test / java / org / openecomp / mso / apihandlerinfra / OrchestrationRequestsTest.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP - SO\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
10  *\r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  *\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
19  */\r
20 package org.openecomp.mso.apihandlerinfra;\r
21 \r
22 import static org.junit.Assert.assertEquals;\r
23 import static org.junit.Assert.assertFalse;\r
24 \r
25 import java.io.IOException;\r
26 \r
27 import javax.ws.rs.core.Response;\r
28 \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
41 \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
45 \r
46 public class OrchestrationRequestsTest {\r
47 \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
50         @Mock\r
51         private static RequestsDatabase db;\r
52         private static OrchestrationRequests orReq;\r
53         private static GetOrchestrationResponse orRes;\r
54 \r
55         @Test\r
56         public void testGetOrchestrationRequest() {\r
57                 orReq = Mockito.mock(OrchestrationRequests.class);\r
58                 orRes = new GetOrchestrationResponse();\r
59                 try {\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
72         \r
73                         db = Mockito.mock(RequestsDatabase.class);\r
74                         Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests);\r
75 \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
81 \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
105 \r
106                         request.setInstanceReferences(ir);\r
107                         RequestStatus status = new RequestStatus();\r
108 \r
109                         if (infraRequests.getRequestStatus() != null) {\r
110                                 status.setRequestState(infraRequests.getRequestStatus());\r
111                         }\r
112 \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
118                         \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
127                                         "IN_PROGRESS");\r
128                         assertEquals(db.getRequestFromInfraActive("rq1234d1-5a33-55df-13ab-12abad84e333").getRequestorId(),\r
129                                         "ab1234");\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
135 \r
136                         e.printStackTrace();\r
137                 }\r
138         }\r
139 \r
140         @Test\r
141         public void testGetOrchestrationRequestNotPresent() {\r
142                 orReq = Mockito.mock(OrchestrationRequests.class);\r
143                 orRes = new GetOrchestrationResponse();\r
144                 try {\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
149 \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
156 \r
157                         e.printStackTrace();\r
158                 }\r
159         }\r
160 \r
161         @Test\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
166                 \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
170 \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
179 \r
180                 db = Mockito.mock(RequestsDatabase.class);\r
181                 Mockito.when(db.getRequestFromInfraActive(Mockito.anyString())).thenReturn(infraRequests);\r
182 \r
183                 Request request = new Request();\r
184                 InstanceReferences ir = new InstanceReferences();\r
185                 request.setInstanceReferences(ir);\r
186                 RequestStatus status = new RequestStatus();\r
187 \r
188                 if (infraRequests.getRequestStatus() != null) {\r
189                         status.setRequestState(infraRequests.getRequestStatus());\r
190                 }\r
191                 request.setRequestStatus(status);\r
192                 RequestStatus reqStatus = request.getRequestStatus();\r
193                 \r
194                 assertEquals(reqStatus.getRequestState(),"IN-PROGRESS");\r
195                 \r
196                 if (reqStatus.getRequestState().equalsIgnoreCase("IN-PROGRESS")){\r
197                         reqStatus.setRequestState(Status.UNLOCKED.toString ());\r
198                         }\r
199                 assertEquals(reqStatus.getRequestState(),"UNLOCKED");\r
200 \r
201         }\r
202 \r
203 }\r