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