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