4920814e32050b2e5e0ba0386edd19d950a57549
[so.git] /
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP - SO\r
4  * ================================================================================\r
5  * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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 \r
21 package org.openecomp.mso.apihandlerinfra;\r
22 \r
23 import static org.junit.Assert.assertNotNull;\r
24 import static org.junit.Assert.assertTrue;\r
25 \r
26 import java.io.ByteArrayInputStream;\r
27 import java.io.IOException;\r
28 import java.io.InputStream;\r
29 import java.sql.Timestamp;\r
30 import java.util.ArrayList;\r
31 import java.util.Collections;\r
32 import java.util.List;\r
33 \r
34 import javax.ws.rs.core.Response;\r
35 \r
36 import org.apache.http.HttpResponse;\r
37 import org.apache.http.ProtocolVersion;\r
38 import org.apache.http.client.ClientProtocolException;\r
39 import org.apache.http.entity.BasicHttpEntity;\r
40 import org.apache.http.message.BasicHttpResponse;\r
41 import org.hibernate.HibernateException;\r
42 import org.hibernate.Session;\r
43 import org.hibernate.criterion.Criterion;\r
44 import org.hibernate.criterion.Order;\r
45 import org.hibernate.internal.SessionFactoryImpl;\r
46 import org.junit.BeforeClass;\r
47 import org.junit.Test;\r
48 import org.junit.Ignore;\r
49 import org.mockito.Mockito;\r
50 import org.openecomp.mso.apihandler.common.CamundaClient;\r
51 import org.openecomp.mso.apihandler.common.RequestClient;\r
52 import org.openecomp.mso.apihandler.common.RequestClientFactory;\r
53 import org.openecomp.mso.db.catalog.CatalogDatabase;\r
54 import org.openecomp.mso.db.catalog.beans.Service;\r
55 import org.openecomp.mso.db.catalog.beans.ServiceRecipe;\r
56 import org.openecomp.mso.properties.MsoDatabaseException;\r
57 import org.openecomp.mso.properties.MsoJavaProperties;\r
58 import org.openecomp.mso.properties.MsoPropertiesFactory;\r
59 import org.openecomp.mso.requestsdb.InfraActiveRequests;\r
60 import org.openecomp.mso.requestsdb.OperationStatus;\r
61 import org.openecomp.mso.requestsdb.RequestsDatabase;\r
62 \r
63 import mockit.Mock;\r
64 import mockit.MockUp;\r
65 \r
66 public class E2EServiceInstancesTest {\r
67 \r
68         String jsonBody = "{" +\r
69                         "\"service\": {" +\r
70                         "\"name\": \"so_test4\"," +\r
71                         "\"description\": \"so_test2\"," +\r
72                         "\"serviceInvariantUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561519\"," +\r
73                         "\"serviceUuid\": \"592f9437-a9c0-4303-b9f6-c445bb7e9814\"," +\r
74                         "\"globalSubscriberId\": \"123457\"," +\r
75                         "\"serviceType\": \"voLTE\"," +\r
76                         "\"parameters\": {" +\r
77                         "\"resources\": [" +\r
78                         "{" +\r
79                         "\"resourceName\": \"vIMS\"," +\r
80                         "\"resourceInvariantUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561516\"," +\r
81                         "\"resourceUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561512\"," +\r
82                         "\"parameters\": {" +\r
83                         "\"locationConstraints\": [" +\r
84                         "{" +\r
85                         "\"vnfProfileId\": \"zte-vBAS-1.0\"," +\r
86                         "\"locationConstraints\": {" +\r
87                         "\"vimId\": \"4050083f-465f-4838-af1e-47a545222ad0\"" +\r
88                         "}" +\r
89                         "}," +\r
90                         "{" +\r
91                         "\"vnfProfileId\": \"zte-vMME-1.0\"," +\r
92                         "\"locationConstraints\": {" +\r
93                         "\"vimId\": \"4050083f-465f-4838-af1e-47a545222ad0\"" +\r
94                         "}" +\r
95                         "}" +\r
96                         "]" +\r
97                         "}" +\r
98                         "}," +\r
99                         "{" +\r
100                         "\"resourceName\": \"vEPC\"," +\r
101                         "\"resourceInvariantUuid\": \"61c3e96e-0970-4871-b6e0-3b6de7561516\"," +\r
102                         "\"resourceUuid\": \"62c3e96e-0970-4871-b6e0-3b6de7561512\"," +\r
103                         "\"parameters\": {" +\r
104                         "\"locationConstraints\": [" +\r
105                         "{" +\r
106                         "\"vnfProfileId\": \"zte-CSCF-1.0\"," +\r
107                         "\"locationConstraints\": {" +\r
108                         "\"vimId\": \"4050083f-465f-4838-af1e-47a545222ad1\"" +\r
109                         "}" +\r
110                         "}" +\r
111                         "]" +\r
112                         "}" +\r
113                         "}," +\r
114                         "{" +\r
115                         "\"resourceName\": \"underlayvpn\"," +\r
116                         "\"resourceInvariantUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561513\"," +\r
117                         "\"resourceUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561514\"," +\r
118                         "\"parameters\": {" +\r
119                         "\"locationConstraints\": []" +\r
120                         "}" +\r
121                         "}," +\r
122                         "{" +\r
123                         "\"resourceName\": \"overlayvpn\"," +\r
124                         "\"resourceInvariantUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561517\"," +\r
125                         "\"resourceUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561518\"," +\r
126                         "\"parameters\": {" +\r
127                         "\"locationConstraints\": []" +\r
128                         "}" +\r
129                         "}" +\r
130                         "]," +\r
131                         "\"requestInputs\": {" +\r
132                         "\"externalDataNetworkName\": \"Flow_out_net\"," +\r
133                         "\"m6000_mng_ip\": \"181.18.20.2\"," +\r
134                         "\"externalCompanyFtpDataNetworkName\": \"Flow_out_net\"," +\r
135                         "\"externalPluginManageNetworkName\": \"plugin_net_2014\"," +\r
136                         "\"externalManageNetworkName\": \"mng_net_2017\"," +\r
137                         "\"sfc_data_network\": \"sfc_data_net_2016\"," +\r
138                         "\"NatIpRange\": \"210.1.1.10-210.1.1.20\"," +\r
139                         "\"location\": \"4050083f-465f-4838-af1e-47a545222ad0\"," +\r
140                         "\"sdncontroller\": \"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"" +\r
141                         "}" +\r
142                         "}" +\r
143                         "}" +\r
144                         "}";\r
145 \r
146     private final String compareModelsRequest = "{" +\r
147             "\"globalSubscriberId\": \"60c3e96e-0970-4871-b6e0-3b6de7561519\"," +\r
148             "\"serviceType\": \"vnf\"," +\r
149             "\"modelInvariantIdTarget\": \"60c3e96e-0970-4871-b6e0-3b6de1234567\"," +\r
150             "\"modelVersionIdTarget\": \"modelVersionIdTarget\"" +\r
151             "}";\r
152 \r
153     @BeforeClass\r
154     public static void setUp() throws Exception {\r
155 \r
156         MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();\r
157         msoPropertiesFactory.removeAllMsoProperties();\r
158         msoPropertiesFactory.initializeMsoProperties(Constants.MSO_PROP_APIHANDLER_INFRA, "src/test/resources/mso.apihandler-infra.properties");\r
159     }\r
160 \r
161         @Test\r
162         public void createE2EServiceInstanceTestSuccess() {\r
163                 new MockUp<RequestsDatabase>() {\r
164                         @Mock\r
165                         public OperationStatus getOperationStatusByServiceName(\r
166                                         String serviceName) {\r
167                                 OperationStatus operationStatus = new OperationStatus();\r
168                                 return operationStatus;\r
169                         }\r
170                 };\r
171                 new MockUp<E2EServiceInstances>() {\r
172                         @Mock\r
173                         private void createOperationStatusRecordForError(Action action,\r
174                                         String requestId) throws MsoDatabaseException {\r
175 \r
176                         }\r
177                 };\r
178                 new MockUp<CatalogDatabase>() {\r
179                         @Mock\r
180                         public Service getServiceByModelName(String modelName) {\r
181                                 Service svc = new Service();\r
182                                 return svc;\r
183                         }\r
184                 };\r
185 \r
186                 new MockUp<CatalogDatabase>() {\r
187                         @Mock\r
188                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
189                                         String action) {\r
190                                 ServiceRecipe rec = new ServiceRecipe();\r
191                                 return rec;\r
192                         }\r
193                 };\r
194 \r
195                 new MockUp<RequestClientFactory>() {\r
196                         @Mock\r
197                         public RequestClient getRequestClient(String orchestrationURI,\r
198                                         MsoJavaProperties props) throws IllegalStateException {\r
199                                 RequestClient client = new CamundaClient();\r
200                                 client.setUrl("/test/url");\r
201                                 return client;\r
202                         }\r
203                 };\r
204 \r
205                 new MockUp<CamundaClient>() {\r
206                         @Mock\r
207                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
208                                         int recipeTimeout, String requestAction,\r
209                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
210                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
211                                         String vnfType, String vfModuleType, String networkType,\r
212                                         String requestDetails, String recipeParamXsd) {\r
213                                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
214                                 HttpResponse resp = new BasicHttpResponse(pv, 202,\r
215                                                 "test response");\r
216                                 BasicHttpEntity entity = new BasicHttpEntity();\r
217                                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
218                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
219                                 entity.setContent(instream);\r
220                                 resp.setEntity(entity);\r
221                                 return resp;\r
222                         }\r
223                 };\r
224 \r
225                 E2EServiceInstances instance = new E2EServiceInstances();\r
226                 String request = jsonBody;\r
227                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
228                 String respStr = resp.getEntity().toString();\r
229                 assertTrue(respStr.contains("SVC2000"));\r
230         }\r
231 \r
232         @Test\r
233         public void createE2EServiceInstanceTestBpelHTTPException() {\r
234                 new MockUp<RequestsDatabase>() {\r
235                         @Mock\r
236                         public OperationStatus getOperationStatusByServiceName(\r
237                                         String serviceName) {\r
238                                 OperationStatus operationStatus = new OperationStatus();\r
239                                 return operationStatus;\r
240                         }\r
241                 };\r
242                 new MockUp<E2EServiceInstances>() {\r
243                         @Mock\r
244                         private void createOperationStatusRecordForError(Action action,\r
245                                         String requestId) throws MsoDatabaseException {\r
246 \r
247                         }\r
248                 };\r
249                 new MockUp<CatalogDatabase>() {\r
250                         @Mock\r
251                         public Service getServiceByModelName(String modelName) {\r
252                                 Service svc = new Service();\r
253                                 return svc;\r
254                         }\r
255                 };\r
256 \r
257                 new MockUp<CatalogDatabase>() {\r
258                         @Mock\r
259                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
260                                         String action) {\r
261                                 ServiceRecipe rec = new ServiceRecipe();\r
262                                 return rec;\r
263                         }\r
264                 };\r
265 \r
266                 new MockUp<RequestClientFactory>() {\r
267                         @Mock\r
268                         public RequestClient getRequestClient(String orchestrationURI,\r
269                                         MsoJavaProperties props) throws IllegalStateException {\r
270                                 RequestClient client = new CamundaClient();\r
271                                 client.setUrl("/test/url");\r
272                                 return client;\r
273                         }\r
274                 };\r
275 \r
276                 new MockUp<CamundaClient>() {\r
277                         @Mock\r
278                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
279                                         int recipeTimeout, String requestAction,\r
280                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
281                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
282                                         String vnfType, String vfModuleType, String networkType,\r
283                                         String requestDetails, String recipeParamXsd) {\r
284                                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
285                                 HttpResponse resp = new BasicHttpResponse(pv, 500,\r
286                                                 "test response");\r
287                                 BasicHttpEntity entity = new BasicHttpEntity();\r
288                                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
289                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
290                                 entity.setContent(instream);\r
291                                 resp.setEntity(entity);\r
292                                 return resp;\r
293                         }\r
294                 };\r
295 \r
296                 E2EServiceInstances instance = new E2EServiceInstances();\r
297                 String request = jsonBody;\r
298                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
299                 String respStr = resp.getEntity().toString();\r
300                 assertTrue(respStr.contains("SVC2000"));\r
301         }\r
302 \r
303         @Test\r
304         public void createE2EServiceInstanceTestBpelHTTPExceptionWithNullREsponseBody() {\r
305                 new MockUp<RequestsDatabase>() {\r
306                         @Mock\r
307                         public OperationStatus getOperationStatusByServiceName(\r
308                                         String serviceName) {\r
309                                 OperationStatus operationStatus = new OperationStatus();\r
310                                 return operationStatus;\r
311                         }\r
312                 };\r
313                 new MockUp<E2EServiceInstances>() {\r
314                         @Mock\r
315                         private void createOperationStatusRecordForError(Action action,\r
316                                         String requestId) throws MsoDatabaseException {\r
317 \r
318                         }\r
319                 };\r
320                 new MockUp<CatalogDatabase>() {\r
321                         @Mock\r
322                         public Service getServiceByModelName(String modelName) {\r
323                                 Service svc = new Service();\r
324                                 return svc;\r
325                         }\r
326                 };\r
327 \r
328                 new MockUp<CatalogDatabase>() {\r
329                         @Mock\r
330                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
331                                         String action) {\r
332                                 ServiceRecipe rec = new ServiceRecipe();\r
333                                 return rec;\r
334                         }\r
335                 };\r
336 \r
337                 new MockUp<RequestClientFactory>() {\r
338                         @Mock\r
339                         public RequestClient getRequestClient(String orchestrationURI,\r
340                                         MsoJavaProperties props) throws IllegalStateException {\r
341                                 RequestClient client = new CamundaClient();\r
342                                 client.setUrl("/test/url");\r
343                                 return client;\r
344                         }\r
345                 };\r
346 \r
347                 new MockUp<CamundaClient>() {\r
348                         @Mock\r
349                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
350                                         int recipeTimeout, String requestAction,\r
351                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
352                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
353                                         String vnfType, String vfModuleType, String networkType,\r
354                                         String requestDetails, String recipeParamXsd) {\r
355                                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
356                                 HttpResponse resp = new BasicHttpResponse(pv, 500,\r
357                                                 "test response");\r
358                                 BasicHttpEntity entity = new BasicHttpEntity();\r
359                                 String body = "{\"response\":\"\",\"message\":\"success\"}";\r
360                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
361                                 entity.setContent(instream);\r
362                                 resp.setEntity(entity);\r
363                                 return resp;\r
364                         }\r
365                 };\r
366 \r
367                 E2EServiceInstances instance = new E2EServiceInstances();\r
368                 String request = jsonBody;\r
369                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
370                 String respStr = resp.getEntity().toString();\r
371                 assertTrue(respStr.contains("SVC2000"));\r
372         }\r
373 \r
374         @Test\r
375         public void createE2EServiceInstanceTestNullBPELResponse() {\r
376                 new MockUp<RequestsDatabase>() {\r
377                         @Mock\r
378                         public OperationStatus getOperationStatusByServiceName(\r
379                                         String serviceName) {\r
380                                 OperationStatus operationStatus = new OperationStatus();\r
381                                 return operationStatus;\r
382                         }\r
383                 };\r
384                 new MockUp<E2EServiceInstances>() {\r
385                         @Mock\r
386                         private void createOperationStatusRecordForError(Action action,\r
387                                         String requestId) throws MsoDatabaseException {\r
388 \r
389                         }\r
390                 };\r
391                 new MockUp<CatalogDatabase>() {\r
392                         @Mock\r
393                         public Service getServiceByModelName(String modelName) {\r
394                                 Service svc = new Service();\r
395                                 return svc;\r
396                         }\r
397                 };\r
398 \r
399                 new MockUp<CatalogDatabase>() {\r
400                         @Mock\r
401                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
402                                         String action) {\r
403                                 ServiceRecipe rec = new ServiceRecipe();\r
404                                 return rec;\r
405                         }\r
406                 };\r
407 \r
408                 new MockUp<RequestClientFactory>() {\r
409                         @Mock\r
410                         public RequestClient getRequestClient(String orchestrationURI,\r
411                                         MsoJavaProperties props) throws IllegalStateException {\r
412                                 RequestClient client = new CamundaClient();\r
413                                 client.setUrl("/test/url");\r
414                                 return client;\r
415                         }\r
416                 };\r
417 \r
418                 new MockUp<CamundaClient>() {\r
419                         @Mock\r
420                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
421                                         int recipeTimeout, String requestAction,\r
422                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
423                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
424                                         String vnfType, String vfModuleType, String networkType,\r
425                                         String requestDetails, String recipeParamXsd) {\r
426                                 HttpResponse resp = null;\r
427                                 return resp;\r
428                         }\r
429                 };\r
430 \r
431                 E2EServiceInstances instance = new E2EServiceInstances();\r
432                 String request = jsonBody;\r
433                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
434                 String respStr = resp.getEntity().toString();\r
435                 assertTrue(respStr.contains("SVC2000"));\r
436         }\r
437 \r
438         @Test\r
439         public void createE2EServiceInstanceTestBPMNNullREsponse() {\r
440                 new MockUp<RequestsDatabase>() {\r
441                         @Mock\r
442                         public OperationStatus getOperationStatusByServiceName(\r
443                                         String serviceName) {\r
444                                 OperationStatus operationStatus = new OperationStatus();\r
445                                 return operationStatus;\r
446                         }\r
447                 };\r
448                 new MockUp<E2EServiceInstances>() {\r
449                         @Mock\r
450                         private void createOperationStatusRecordForError(Action action,\r
451                                         String requestId) throws MsoDatabaseException {\r
452 \r
453                         }\r
454                 };\r
455                 new MockUp<CatalogDatabase>() {\r
456                         @Mock\r
457                         public Service getServiceByModelName(String modelName) {\r
458                                 Service svc = new Service();\r
459                                 return svc;\r
460                         }\r
461                 };\r
462 \r
463                 new MockUp<CatalogDatabase>() {\r
464                         @Mock\r
465                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
466                                         String action) {\r
467                                 ServiceRecipe rec = new ServiceRecipe();\r
468                                 return rec;\r
469                         }\r
470                 };\r
471 \r
472                 new MockUp<RequestClientFactory>() {\r
473                         @Mock\r
474                         public RequestClient getRequestClient(String orchestrationURI,\r
475                                         MsoJavaProperties props) throws IllegalStateException {\r
476                                 RequestClient client = new CamundaClient();\r
477                                 client.setUrl("/test/url");\r
478                                 return client;\r
479                         }\r
480                 };\r
481 \r
482                 new MockUp<CamundaClient>() {\r
483                         @Mock\r
484                         public HttpResponse post(String camundaReqXML, String requestId,\r
485                                         String requestTimeout, String schemaVersion,\r
486                                         String serviceInstanceId, String action) {\r
487                                 HttpResponse resp = null;\r
488                                 return resp;\r
489                         }\r
490                 };\r
491                 E2EServiceInstances instance = new E2EServiceInstances();\r
492                 String request = jsonBody;\r
493                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
494                 String respStr = resp.getEntity().toString();\r
495                 assertTrue(respStr.contains("SVC2000"));\r
496         }\r
497 \r
498         @Test\r
499         public void createE2EServiceInstanceTestNullBpmn() {\r
500                 new MockUp<RequestsDatabase>() {\r
501                         @Mock\r
502                         public OperationStatus getOperationStatusByServiceName(\r
503                                         String serviceName) {\r
504                                 OperationStatus operationStatus = new OperationStatus();\r
505                                 return operationStatus;\r
506                         }\r
507                 };\r
508 \r
509                 new MockUp<E2EServiceInstances>() {\r
510                         @Mock\r
511                         private void createOperationStatusRecordForError(Action action,\r
512                                         String requestId) throws MsoDatabaseException {\r
513 \r
514                         }\r
515                 };\r
516                 new MockUp<CatalogDatabase>() {\r
517                         @Mock\r
518                         public Service getServiceByModelName(String modelName) {\r
519                                 Service svc = new Service();\r
520                                 return svc;\r
521                         }\r
522                 };\r
523 \r
524                 new MockUp<CatalogDatabase>() {\r
525                         @Mock\r
526                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
527                                         String action) {\r
528                                 ServiceRecipe rec = new ServiceRecipe();\r
529                                 return rec;\r
530                         }\r
531                 };\r
532                 E2EServiceInstances instance = new E2EServiceInstances();\r
533                 String request = jsonBody;;\r
534                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
535                 String respStr = resp.getEntity().toString();\r
536                 assertTrue(respStr.contains("SVC2000"));\r
537         }\r
538 \r
539         @Test\r
540         public void createE2EServiceInstanceTestNullReceipe() {\r
541                 new MockUp<RequestsDatabase>() {\r
542                         @Mock\r
543                         public OperationStatus getOperationStatusByServiceName(\r
544                                         String serviceName) {\r
545                                 OperationStatus operationStatus = new OperationStatus();\r
546                                 return operationStatus;\r
547                         }\r
548                 };\r
549                 new MockUp<E2EServiceInstances>() {\r
550                         @Mock\r
551                         private void createOperationStatusRecordForError(Action action,\r
552                                         String requestId) throws MsoDatabaseException {\r
553 \r
554                         }\r
555                 };\r
556 \r
557                 E2EServiceInstances instance = new E2EServiceInstances();\r
558                 String request = jsonBody;\r
559                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
560                 String respStr = resp.getEntity().toString();\r
561                 assertTrue(respStr.contains("SVC2000"));\r
562         }\r
563 \r
564         @Test\r
565         public void createE2EServiceInstanceTestNullDBResponse() {\r
566 \r
567                 new MockUp<RequestsDatabase>() {\r
568                         @Mock\r
569                         public OperationStatus getOperationStatusByServiceName(\r
570                                         String serviceName) {\r
571                                 OperationStatus operationStatus = new OperationStatus();\r
572                                 return operationStatus;\r
573                         }\r
574                 };\r
575                 new MockUp<E2EServiceInstances>() {\r
576                         @Mock\r
577                         private void createOperationStatusRecordForError(Action action,\r
578                                         String requestId) throws MsoDatabaseException {\r
579 \r
580                         }\r
581                 };\r
582 \r
583                 E2EServiceInstances instance = new E2EServiceInstances();\r
584                 String request = jsonBody;\r
585                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
586                 String respStr = resp.getEntity().toString();\r
587                 assertTrue(respStr.contains("SVC2000"));\r
588         }\r
589 \r
590         @Test\r
591         public void createE2EServiceInstanceTestInvalidRequest() {\r
592                 new MockUp<RequestsDatabase>() {\r
593                         @Mock\r
594                         public OperationStatus getOperationStatusByServiceName(\r
595                                         String serviceName) {\r
596                                 OperationStatus operationStatus = new OperationStatus();\r
597                                 return operationStatus;\r
598                         }\r
599                 };\r
600 \r
601                 new MockUp<E2EServiceInstances>() {\r
602                         @Mock\r
603                         private void createOperationStatusRecordForError(Action action,\r
604                                         String requestId) throws MsoDatabaseException {\r
605 \r
606                         }\r
607                 };\r
608                 E2EServiceInstances instance = new E2EServiceInstances();\r
609                 String request = jsonBody;\r
610                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
611                 String respStr = resp.getEntity().toString();\r
612                 assertTrue(respStr.contains("SVC2000"));\r
613         }\r
614 \r
615         @Test\r
616         public void createE2EServiceInstanceTestEmptyDBQuery() {\r
617                 new MockUp<E2EServiceInstances>() {\r
618                         @Mock\r
619                         private void createOperationStatusRecordForError(Action action,\r
620                                         String requestId) throws MsoDatabaseException {\r
621 \r
622                         }\r
623                 };\r
624 \r
625                 E2EServiceInstances instance = new E2EServiceInstances();\r
626                 String request = jsonBody;\r
627                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
628                 String respStr = resp.getEntity().toString();\r
629                 assertTrue(respStr.contains("SVC2000"));\r
630                 // assertTrue(true);\r
631         }\r
632 \r
633         @Test\r
634         public void createE2EServiceInstanceTestDBQueryFail() {\r
635                 new MockUp<RequestsDatabase>() {\r
636                         @Mock\r
637                         public OperationStatus getOperationStatusByServiceName(\r
638                                         String serviceName) {\r
639                                 OperationStatus operationStatus = new OperationStatus();\r
640                                 return operationStatus;\r
641                         }\r
642                 };\r
643 \r
644                 new MockUp<E2EServiceInstances>() {\r
645                         @Mock\r
646                         private void createOperationStatusRecordForError(Action action,\r
647                                         String requestId) throws MsoDatabaseException {\r
648 \r
649                         }\r
650                 };\r
651                 E2EServiceInstances instance = new E2EServiceInstances();\r
652                 String request = jsonBody;\r
653                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
654                 String respStr = resp.getEntity().toString();\r
655                 assertTrue(respStr.contains("SVC2000"));\r
656         }\r
657 \r
658         @Test\r
659         public void createE2EServiceInstanceTestForEmptyRequest() {\r
660 \r
661                 new MockUp<E2EServiceInstances>() {\r
662                         @Mock\r
663                         private void createOperationStatusRecordForError(Action action,\r
664                                         String requestId) throws MsoDatabaseException {\r
665 \r
666                         }\r
667                 };\r
668                 E2EServiceInstances instance = new E2EServiceInstances();\r
669                 String request = "";\r
670                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
671                 String respStr = resp.getEntity().toString();\r
672                 assertTrue(respStr\r
673             .contains("Mapping of request to JSON object failed.  No content to map to Object due to end of input"));\r
674         }\r
675 \r
676         @Ignore // 1802 merge\r
677         @Test\r
678         public void deleteE2EServiceInstanceTestNormal() {\r
679                 E2EServiceInstances instance = new E2EServiceInstances();\r
680                 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";\r
681                 Response resp = instance.deleteE2EServiceInstance(request, "v3",\r
682                                 "12345678");\r
683                 String respStr = resp.getEntity().toString();\r
684                 assertTrue(respStr.contains("SVC1000"));\r
685         }\r
686 \r
687         @Test\r
688         public void getE2EServiceInstanceTest() {\r
689 \r
690                 new MockUp<RequestsDatabase>() {\r
691                         @Mock\r
692                         public OperationStatus getOperationStatus(String serviceId,\r
693                                         String operationId) {\r
694                                 OperationStatus os = new OperationStatus();\r
695                                 os.setOperation("");\r
696                                 os.setOperationContent("");\r
697                                 os.setOperationId("123456");\r
698                                 os.setProgress("");\r
699                                 os.setServiceId("12345");\r
700                                 os.setServiceName("VoLTE");\r
701                                 os.setReason("");\r
702                                 os.setResult("");\r
703                                 os.setUserId("");\r
704                                 return os;\r
705                         }\r
706                 };\r
707 \r
708                 E2EServiceInstances instance = new E2EServiceInstances();\r
709                 Response resp = instance\r
710                                 .getE2EServiceInstances("12345", "v3", "123456");\r
711 \r
712         }\r
713         \r
714         @Test\r
715         public void updateE2EServiceInstanceTestNormal() {\r
716                 new MockUp<RequestsDatabase>() {\r
717                         @Mock\r
718                         public OperationStatus getOperationStatusByServiceId(\r
719                                         String serviceID) {\r
720                                 OperationStatus operationStatus = new OperationStatus();\r
721                                 operationStatus.setProgress("100");\r
722                                 return operationStatus;\r
723                         }\r
724                 };\r
725                 new MockUp<E2EServiceInstances>() {\r
726                         @Mock\r
727                         private void createOperationStatusRecordForError(Action action,\r
728                                         String requestId) throws MsoDatabaseException {\r
729 \r
730                         }\r
731                 };\r
732                 new MockUp<CatalogDatabase>() {\r
733                         @Mock\r
734                         public Service getServiceByModelName(String modelName) {\r
735                                 Service svc = new Service();\r
736                                 return svc;\r
737                         }\r
738                 };\r
739 \r
740                 new MockUp<CatalogDatabase>() {\r
741                         @Mock\r
742                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
743                                         String action) {\r
744                                 ServiceRecipe rec = new ServiceRecipe();\r
745                                 return rec;\r
746                         }\r
747                 };\r
748 \r
749                 new MockUp<RequestClientFactory>() {\r
750                         @Mock\r
751                         public RequestClient getRequestClient(String orchestrationURI,\r
752                                         MsoJavaProperties props) throws IllegalStateException {\r
753                                 RequestClient client = new CamundaClient();\r
754                                 client.setUrl("/test/url");\r
755                                 return client;\r
756                         }\r
757                 };\r
758 \r
759                 new MockUp<CamundaClient>() {\r
760                         @Mock\r
761                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
762                                         int recipeTimeout, String requestAction,\r
763                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
764                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
765                                         String vnfType, String vfModuleType, String networkType,\r
766                                         String requestDetails, String recipeParamXsd) {\r
767                                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
768                                 HttpResponse resp = new BasicHttpResponse(pv, 202,\r
769                                                 "test response");\r
770                                 BasicHttpEntity entity = new BasicHttpEntity();\r
771                                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
772                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
773                                 entity.setContent(instream);\r
774                                 resp.setEntity(entity);\r
775                                 return resp;\r
776                         }\r
777                 };\r
778 \r
779                 E2EServiceInstances instance = new E2EServiceInstances();\r
780                 String request = jsonBody;\r
781                 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");\r
782                 String respStr = resp.getEntity().toString();\r
783                 assertTrue(respStr.contains("success"));\r
784         }\r
785         \r
786         @Test\r
787         public void updateE2EServiceInstanceTestChkStatusFalse() {\r
788                 new MockUp<RequestsDatabase>() {\r
789                         @Mock\r
790                         public OperationStatus getOperationStatusByServiceId(\r
791                                         String serviceID) {\r
792                                 OperationStatus operationStatus = new OperationStatus();\r
793                                 return operationStatus;\r
794                         }\r
795                 };\r
796                 new MockUp<E2EServiceInstances>() {\r
797                         @Mock\r
798                         private void createOperationStatusRecordForError(Action action,\r
799                                         String requestId) throws MsoDatabaseException {\r
800 \r
801                         }\r
802                 };\r
803                 new MockUp<CatalogDatabase>() {\r
804                         @Mock\r
805                         public Service getServiceByModelName(String modelName) {\r
806                                 Service svc = new Service();\r
807                                 return svc;\r
808                         }\r
809                 };\r
810 \r
811                 new MockUp<CatalogDatabase>() {\r
812                         @Mock\r
813                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
814                                         String action) {\r
815                                 ServiceRecipe rec = new ServiceRecipe();\r
816                                 return rec;\r
817                         }\r
818                 };\r
819 \r
820                 new MockUp<RequestClientFactory>() {\r
821                         @Mock\r
822                         public RequestClient getRequestClient(String orchestrationURI,\r
823                                         MsoJavaProperties props) throws IllegalStateException {\r
824                                 RequestClient client = new CamundaClient();\r
825                                 client.setUrl("/test/url");\r
826                                 return client;\r
827                         }\r
828                 };\r
829 \r
830                 new MockUp<CamundaClient>() {\r
831                         @Mock\r
832                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
833                                         int recipeTimeout, String requestAction,\r
834                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
835                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
836                                         String vnfType, String vfModuleType, String networkType,\r
837                                         String requestDetails, String recipeParamXsd) {\r
838                                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
839                                 HttpResponse resp = new BasicHttpResponse(pv, 202,\r
840                                                 "test response");\r
841                                 BasicHttpEntity entity = new BasicHttpEntity();\r
842                                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
843                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
844                                 entity.setContent(instream);\r
845                                 resp.setEntity(entity);\r
846                                 return resp;\r
847                         }\r
848                 };\r
849 \r
850                 E2EServiceInstances instance = new E2EServiceInstances();\r
851                 String request = jsonBody;\r
852                 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");\r
853                 String respStr = resp.getEntity().toString();\r
854                 assertTrue(respStr.contains("SVC2000"));\r
855         }\r
856 \r
857     @Test\r
858     public void compareModelwithTargetVersionBadRequest(){\r
859 \r
860         E2EServiceInstances instance = new E2EServiceInstances();\r
861         Response response = instance.compareModelwithTargetVersion("", "12345", "v3");\r
862 \r
863         assertNotNull(response);\r
864         assertTrue(response.getEntity().toString().contains("Mapping of request to JSON object failed."));\r
865 \r
866     }\r
867     @Test\r
868     public void compareModelwithTargetVersionFailedBPMNCall(){\r
869 \r
870         new MockUp<CamundaClient>() {\r
871             @Mock\r
872             public HttpResponse post(String requestId, boolean isBaseVfModule,\r
873                  int recipeTimeout, String requestAction, String serviceInstanceId,\r
874                  String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
875                  String serviceType, String vnfType, String vfModuleType, String networkType,\r
876                  String requestDetails, String recipeParamXsd)\r
877                     throws ClientProtocolException, IOException {\r
878 \r
879                 throw new ClientProtocolException();\r
880             }\r
881         };\r
882 \r
883         E2EServiceInstances instance = new E2EServiceInstances();\r
884         Response response = instance.compareModelwithTargetVersion(compareModelsRequest, "12345", "v3");\r
885 \r
886         assertNotNull(response);\r
887         assertTrue(response.getEntity().toString().contains("Failed calling bpmn"));\r
888 \r
889     }\r
890 \r
891     @Test\r
892     public void compareModelwithTargetVersionSuccess(){\r
893 \r
894         new MockUp<CamundaClient>() {\r
895             @Mock\r
896             public HttpResponse post(String requestId, boolean isBaseVfModule,\r
897                                      int recipeTimeout, String requestAction, String serviceInstanceId,\r
898                                      String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
899                                      String serviceType, String vnfType, String vfModuleType, String networkType,\r
900                                      String requestDetails, String recipeParamXsd)\r
901                     throws ClientProtocolException, IOException {\r
902 \r
903                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
904                 HttpResponse resp = new BasicHttpResponse(pv, 202,\r
905                         "compareModelwithTargetVersion, test response");\r
906                 BasicHttpEntity entity = new BasicHttpEntity();\r
907                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
908                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
909                 entity.setContent(instream);\r
910                 resp.setEntity(entity);\r
911 \r
912                 return resp;\r
913             }\r
914         };\r
915 \r
916         E2EServiceInstances instance = new E2EServiceInstances();\r
917         Response response = instance.compareModelwithTargetVersion(compareModelsRequest, "12345", "v3");\r
918 \r
919         assertNotNull(response);\r
920         assertTrue(response.getStatus()==202);\r
921 \r
922     }\r
923 }\r