284067a766c4e9a140f9e8f60a8289d804146f9e
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.adapters.network;
22
23 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
24 import static com.github.tomakehurst.wiremock.client.WireMock.patch;
25 import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
26 import static org.junit.Assert.assertEquals;
27 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackDeleteNeutronNetwork;
28 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackDeleteStack_200;
29 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackDeleteStack_500;
30 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetAllNeutronNetworks_200;
31 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetAllNeutronNetworks_404;
32 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetNeutronNetwork;
33 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetNeutronNetwork_404;
34 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackCreated_200;
35 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackDeleteOrUpdateComplete_200;
36 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStack_404;
37 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStack_500;
38 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPostNeutronNetwork_200;
39 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPostStack_200;
40 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPutNeutronNetwork;
41 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPutNeutronNetwork_200;
42 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPutStack;
43 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackResponseAccess;
44 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenstackGet;
45 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenstackPost;
46 import java.io.IOException;
47 import java.nio.file.Files;
48 import java.nio.file.Paths;
49 import javax.ws.rs.core.MediaType;
50 import javax.ws.rs.core.Response;
51 import org.apache.http.HttpStatus;
52 import org.junit.Test;
53 import org.onap.so.adapters.vnf.BaseRestTestUtils;
54 import org.springframework.http.HttpEntity;
55 import org.springframework.http.HttpMethod;
56 import org.springframework.http.ResponseEntity;
57 import org.springframework.web.util.UriComponentsBuilder;
58 import com.github.tomakehurst.wiremock.WireMockServer;
59
60 public class MSONetworkAdapterImplTest extends BaseRestTestUtils {
61
62     public static final String NETWORK_ID = "43173f6a-d699-414b-888f-ab243dda6dfe";
63     public static final String NETWORK_NAME = "vUSP-23804-T-01-dpa2b_EVUSP-CORE-VIF-TSIG0_net_0";
64
65
66
67     @Test
68     public void createNetworkByModelNameNeutronModeGetNetworkException() throws IOException {
69         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
70
71         mockOpenstackGet(wireMockServer, "/mockPublicUrl/v2.0/networks", HttpStatus.SC_INTERNAL_SERVER_ERROR);
72
73         String uri = "/services/NetworkAdapter";
74         headers.set("X-ECOMP-RequestID", "123456789456127");
75         ResponseEntity<String> response =
76                 sendXMLRequest(inputStream("/CreateNetwork_NEUTRON_Mode.xml"), uri, HttpMethod.POST);
77         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
78     }
79
80     @Test
81     public void createNetworkByModelNameNeutronModeCreateNetworkException() throws IOException {
82
83         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
84
85         mockOpenStackGetNeutronNetwork_404(wireMockServer, "dvspg-VCE_VPE-mtjnj40avbc");
86
87         mockOpenStackGetAllNeutronNetworks_404(wireMockServer);
88
89         mockOpenstackPost(wireMockServer, "/mockPublicUrl/v2.0/networks", HttpStatus.SC_INTERNAL_SERVER_ERROR);
90
91         String uri = "/services/NetworkAdapter";
92         headers.set("X-ECOMP-RequestID", "123456789456127");
93         ResponseEntity<String> response =
94                 sendXMLRequest(inputStream("/CreateNetwork_NEUTRON_Mode.xml"), uri, HttpMethod.POST);
95         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
96     }
97
98     @Test
99     public void createNetworkByModelNameNeutronMode() throws IOException {
100
101         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
102
103         mockOpenStackGetNeutronNetwork_404(wireMockServer, "dvspg-VCE_VPE-mtjnj40avbc");
104
105         mockOpenStackGetAllNeutronNetworks_404(wireMockServer);
106
107         mockOpenStackPostNeutronNetwork_200(wireMockServer, "OpenstackCreateNeutronNetworkResponse.json");
108
109         String uri = "/services/NetworkAdapter";
110         headers.set("X-ECOMP-RequestID", "123456789456127");
111         ResponseEntity<String> response =
112                 sendXMLRequest(inputStream("/CreateNetwork_NEUTRON_Mode.xml"), uri, HttpMethod.POST);
113         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
114     }
115
116     @Test
117     public void createNetworkByModelNameAlreadyExistNeutronMode() throws IOException {
118
119         mockUpdateRequestDb(wireMockServer, "9733c8d1-2668-4e5f-8b51-2cacc9b662c0");
120
121         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
122
123         mockOpenStackGetAllNeutronNetworks_200(wireMockServer, "OpenstackGetNeutronNetworks.json");
124
125         String uri = "/services/NetworkAdapter";
126         headers.set("X-ECOMP-RequestID", "123456789456127");
127         ResponseEntity<String> response =
128                 sendXMLRequest(inputStream("/CreateNetwork_NEUTRON_Mode.xml"), uri, HttpMethod.POST);
129         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
130     }
131
132     @Test
133     public void createNetworkByModelNameAlreadyExistNeutronModeFailIfExistTrue() throws IOException {
134
135         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
136
137         mockOpenStackGetAllNeutronNetworks_200(wireMockServer, "OpenstackGetNeutronNetworks.json");
138
139         String uri = "/services/NetworkAdapter";
140         headers.set("X-ECOMP-RequestID", "123456789456127");
141         ResponseEntity<String> response =
142                 sendXMLRequest(inputStream("/CreateNetwork_NEUTRON_Mode_Fail_If_Exist_True.xml"), uri, HttpMethod.POST);
143         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
144     }
145
146     @Test
147     public void createNetworkByModelNameHeatMode() throws IOException {
148
149         mockUpdateRequestDb(wireMockServer, "9733c8d1-2668-4e5f-8b51-2cacc9b662c0");
150
151         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
152
153         mockOpenStackGetStack_404(wireMockServer, "DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId");
154
155         mockOpenStackPostStack_200(wireMockServer, "OpenstackResponse_Stack.json");
156
157         mockOpenStackGetStackCreated_200(wireMockServer, "OpenstackResponse_Stack_Created.json",
158                 "DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId");
159
160         String uri = "/services/NetworkAdapter";
161         headers.set("X-ECOMP-RequestID", "123456789456127");
162         ResponseEntity<String> response = sendXMLRequest(inputStream("/CreateNetwork.xml"), uri, HttpMethod.POST);
163         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
164     }
165
166     @Test
167     public void createNetworkByModelNameAlreadyExistHeatMode() throws IOException {
168
169         mockUpdateRequestDb(wireMockServer, "9733c8d1-2668-4e5f-8b51-2cacc9b662c0");
170
171         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
172
173         mockOpenStackPostStack_200(wireMockServer, "OpenstackResponse_Stack.json");
174
175         mockOpenStackGetStackCreated_200(wireMockServer, "OpenstackResponse_Stack_Created.json",
176                 "DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId");
177
178         String uri = "/services/NetworkAdapter";
179         headers.set("X-ECOMP-RequestID", "123456789456127");
180         ResponseEntity<String> response = sendXMLRequest(inputStream("/CreateNetwork.xml"), uri, HttpMethod.POST);
181         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
182     }
183
184     @Test
185     public void createNetworkByModelNameAlreadyExistHeatModeFailIfExistTrue() throws IOException {
186
187         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
188
189         mockOpenStackGetStackCreated_200(wireMockServer, "OpenstackResponse_Stack_Created.json",
190                 "dvspg-VCE_VPE-mtjnj40avbc");
191
192         String uri = "/services/NetworkAdapter";
193         headers.set("X-ECOMP-RequestID", "123456789456127");
194         ResponseEntity<String> response =
195                 sendXMLRequest(inputStream("/CreateNetwork_Fail_If_Exist_True.xml"), uri, HttpMethod.POST);
196         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
197     }
198
199
200     @Test
201     public void createNetworkByModelNameHeatModeQueryNetworkException() throws IOException {
202
203         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
204
205         mockOpenstackGet(wireMockServer, "/mockPublicUrl/stacks/dvspg-VCE_VPE-mtjnj40avbc",
206                 HttpStatus.SC_INTERNAL_SERVER_ERROR);
207
208         String uri = "/services/NetworkAdapter";
209         headers.set("X-ECOMP-RequestID", "123456789456127");
210         ResponseEntity<String> response = sendXMLRequest(inputStream("/CreateNetwork.xml"), uri, HttpMethod.POST);
211         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
212     }
213
214     @Test
215     public void createNetworkByModelNameHeatModeCreateNetworkException() throws IOException {
216
217         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
218
219         mockOpenStackGetStack_404(wireMockServer, "dvspg-VCE_VPE-mtjnj40avbc");
220
221         mockOpenstackPost(wireMockServer, "/mockPublicUrl/stacks", HttpStatus.SC_INTERNAL_SERVER_ERROR);
222
223         String uri = "/services/NetworkAdapter";
224         headers.set("X-ECOMP-RequestID", "123456789456127");
225         ResponseEntity<String> response = sendXMLRequest(inputStream("/CreateNetwork.xml"), uri, HttpMethod.POST);
226         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
227     }
228
229     @Test
230     public void createNetworkByModelNameCloudSiteNotPresentError() throws IOException {
231
232         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
233
234         mockOpenStackPostStack_200(wireMockServer, "OpenstackResponse_Stack.json");
235
236         mockOpenStackGetStackCreated_200(wireMockServer, "OpenstackResponse_Stack_Created.json",
237                 "dvspg-VCE_VPE-mtjnj40avbc");
238
239         String uri = "/services/NetworkAdapter";
240         headers.set("X-ECOMP-RequestID", "123456789456127");
241         ResponseEntity<String> response =
242                 sendXMLRequest(inputStream("/CreateNetwork_InvalidCloudSiteId.xml"), uri, HttpMethod.POST);
243         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
244     }
245
246     @Test
247     public void deleteNetworkHeatModeSuccess() throws IOException {
248
249         mockUpdateRequestDb(wireMockServer, "5a29d907-b8c7-47bf-85f3-3940c0cce0f7");
250
251         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
252
253         mockOpenStackGetStackDeleteOrUpdateComplete_200(wireMockServer, "OpenstackResponse_Stack_DeleteComplete.json");
254
255         mockOpenStackDeleteStack_200(wireMockServer);
256
257         mockOpenStackGetStackCreated_200(wireMockServer, "OpenstackResponse_Stack_Created.json",
258                 "43173f6a-d699-414b-888f-ab243dda6dfe");
259
260         String uri = "/services/NetworkAdapter";
261         headers.set("X-ECOMP-RequestID", "123456789456127");
262         ResponseEntity<String> response = sendXMLRequest(inputStream("/DeleteNetwork.xml"), uri, HttpMethod.POST);
263         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
264     }
265
266     @Test
267     public void deleteNetworkDeleteStackException() throws IOException {
268
269         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
270
271         mockOpenStackGetStackDeleteOrUpdateComplete_200(wireMockServer, "OpenstackResponse_Stack_DeleteComplete.json");
272
273         mockOpenStackDeleteStack_500(wireMockServer);
274
275         mockOpenStackGetStackCreated_200(wireMockServer, "OpenstackResponse_Stack_Created.json",
276                 "43173f6a-d699-414b-888f-ab243dda6dfe");
277
278         String uri = "/services/NetworkAdapter";
279         headers.set("X-ECOMP-RequestID", "123456789456127");
280         ResponseEntity<String> response = sendXMLRequest(inputStream("/DeleteNetwork.xml"), uri, HttpMethod.POST);
281         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
282     }
283
284     @Test
285     public void deleteNetworkError() throws IOException {
286
287         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
288
289         mockOpenStackGetStackDeleteOrUpdateComplete_200(wireMockServer, "OpenstackResponse_Stack_DeleteComplete.json");
290
291         mockOpenStackDeleteStack_200(wireMockServer);
292
293         mockOpenStackGetStackCreated_200(wireMockServer, "OpenstackResponse_Stack_Created.json",
294                 "43173f6a-d699-414b-888f-ab243dda6dfe");
295
296         String uri = "/services/NetworkAdapter";
297         headers.set("X-ECOMP-RequestID", "123456789456127");
298         ResponseEntity<String> response =
299                 sendXMLRequest(inputStream("/DeleteNetwork.xml").replace("mtn13", ""), uri, HttpMethod.POST);
300         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
301     }
302
303
304     @Test
305     public void deleteNetworkNeureonMode() throws IOException {
306
307         mockUpdateRequestDb(wireMockServer, "5a29d907-b8c7-47bf-85f3-3940c0cce0f7");
308
309         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
310
311         mockOpenStackGetNeutronNetwork(wireMockServer, "GetNeutronNetwork.json", NETWORK_ID, HttpStatus.SC_OK);
312
313         mockOpenStackDeleteNeutronNetwork(wireMockServer, NETWORK_ID, HttpStatus.SC_OK);
314
315         String uri = "/services/NetworkAdapter";
316         headers.set("X-ECOMP-RequestID", "123456789456127");
317         ResponseEntity<String> response =
318                 sendXMLRequest(inputStream("/DeleteNetwork.xml").replace("CONTRAIL30_BASIC", "CONTRAIL31_GNDIRECT"),
319                         uri, HttpMethod.POST);
320         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
321     }
322
323     @Test
324     public void deleteNetworkNeutronModeDeleteStackException() throws IOException {
325
326         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
327
328         mockOpenStackGetNeutronNetwork(wireMockServer, "GetNeutronNetwork.json", NETWORK_ID, HttpStatus.SC_OK);
329
330         mockOpenStackDeleteNeutronNetwork(wireMockServer, NETWORK_ID, HttpStatus.SC_INTERNAL_SERVER_ERROR);
331
332         // mockOpenStackGetStackCreated_200("OpenstackResponse_Stack_Created.json", NETWORK_ID);
333
334         String uri = "/services/NetworkAdapter";
335         headers.set("X-ECOMP-RequestID", "123456789456127");
336         ResponseEntity<String> response =
337                 sendXMLRequest(inputStream("/DeleteNetwork.xml").replace("CONTRAIL30_BASIC", "CONTRAIL31_GNDIRECT"),
338                         uri, HttpMethod.POST);
339         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
340     }
341
342     @Test
343     public void updateNetworkNeutronModeSuccess() throws IOException {
344
345         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
346
347         mockOpenStackGetNeutronNetwork(wireMockServer, "GetNeutronNetwork.json", NETWORK_ID, HttpStatus.SC_OK);
348         mockOpenStackPutNeutronNetwork_200(wireMockServer, "OpenstackCreateNeutronNetworkResponse.json", NETWORK_ID);
349
350         String uri = "/services/NetworkAdapter";
351         headers.set("X-ECOMP-RequestID", "123456789456127");
352         ResponseEntity<String> response =
353                 sendXMLRequest(inputStream("/UpdateNetwork.xml").replace("CONTRAIL30_BASIC", "CONTRAIL31_GNDIRECT"),
354                         uri, HttpMethod.POST);
355         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
356     }
357
358     @Test
359     public void updateNetworkNeutronUpdateException() throws IOException {
360
361         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
362
363         mockOpenStackGetNeutronNetwork(wireMockServer, "GetNeutronNetwork.json", NETWORK_ID, HttpStatus.SC_OK);
364         mockOpenStackPutNeutronNetwork(wireMockServer, NETWORK_ID, HttpStatus.SC_INTERNAL_SERVER_ERROR);
365
366         String uri = "/services/NetworkAdapter";
367         headers.set("X-ECOMP-RequestID", "123456789456127");
368         ResponseEntity<String> response =
369                 sendXMLRequest(inputStream("/UpdateNetwork.xml").replace("CONTRAIL30_BASIC", "CONTRAIL31_GNDIRECT"),
370                         uri, HttpMethod.POST);
371         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
372     }
373
374     @Test
375     public void updateNetworkHeatUpdateException() throws IOException {
376
377         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
378
379         mockOpenStackGetStackCreated_200(wireMockServer, "OpenstackResponse_Stack_Created.json", NETWORK_NAME);
380
381         mockOpenStackPutStack(wireMockServer, NETWORK_ID, HttpStatus.SC_INTERNAL_SERVER_ERROR);
382
383         String uri = "/services/NetworkAdapter";
384         headers.set("X-ECOMP-RequestID", "123456789456127");
385         ResponseEntity<String> response = sendXMLRequest(inputStream("/UpdateNetwork.xml"), uri, HttpMethod.POST);
386         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
387     }
388
389     @Test
390     public void updateNetworkHeatQueryException() throws IOException {
391
392         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
393
394         mockOpenStackGetStack_500(wireMockServer, NETWORK_NAME);
395
396         String uri = "/services/NetworkAdapter";
397         headers.set("X-ECOMP-RequestID", "123456789456127");
398         ResponseEntity<String> response = sendXMLRequest(inputStream("/UpdateNetwork.xml"), uri, HttpMethod.POST);
399         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
400     }
401
402     @Test
403     public void updateNetworkHeatStackNotFound() throws IOException {
404
405         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
406
407         mockOpenStackGetStack_404(wireMockServer, NETWORK_NAME);
408
409         String uri = "/services/NetworkAdapter";
410         headers.set("X-ECOMP-RequestID", "123456789456127");
411         ResponseEntity<String> response = sendXMLRequest(inputStream("/UpdateNetwork.xml"), uri, HttpMethod.POST);
412         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
413     }
414
415     @Test
416     public void updateNetworkNeutronQueryException() throws IOException {
417
418         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
419
420         mockOpenStackGetNeutronNetwork(wireMockServer, NETWORK_ID, HttpStatus.SC_INTERNAL_SERVER_ERROR);
421
422         String uri = "/services/NetworkAdapter";
423         headers.set("X-ECOMP-RequestID", "123456789456127");
424         ResponseEntity<String> response =
425                 sendXMLRequest(inputStream("/UpdateNetwork.xml").replace("CONTRAIL30_BASIC", "CONTRAIL31_GNDIRECT"),
426                         uri, HttpMethod.POST);
427         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
428     }
429
430     @Test
431     public void updateNetworkNeutronStackNotFound() throws IOException {
432
433         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
434
435         mockOpenStackGetNeutronNetwork(wireMockServer, NETWORK_ID, HttpStatus.SC_NOT_FOUND);
436
437         String uri = "/services/NetworkAdapter";
438         headers.set("X-ECOMP-RequestID", "123456789456127");
439         ResponseEntity<String> response =
440                 sendXMLRequest(inputStream("/UpdateNetwork.xml").replace("CONTRAIL30_BASIC", "CONTRAIL31_GNDIRECT"),
441                         uri, HttpMethod.POST);
442         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
443     }
444
445     @Test
446     public void queryNetworkHeatModesuccess() throws IOException {
447
448         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
449
450         mockOpenStackGetStackCreated_200(wireMockServer, "OpenstackResponse_Stack_Created.json", NETWORK_ID);
451
452         String uri = "/services/NetworkAdapter";
453         headers.set("X-ECOMP-RequestID", "123456789456127");
454         ResponseEntity<String> response =
455                 sendXMLRequest(inputStream("/QueryNetwork.xml").replace("CONTRAIL30_BASIC", "CONTRAIL31_GNDIRECT"), uri,
456                         HttpMethod.POST);
457         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
458     }
459
460     @Test
461     public void queryNetworkHeatModeQueryException() throws IOException {
462
463         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
464
465         mockOpenStackGetStack_500(wireMockServer, NETWORK_ID);
466
467         String uri = "/services/NetworkAdapter";
468         headers.set("X-ECOMP-RequestID", "123456789456127");
469         ResponseEntity<String> response =
470                 sendXMLRequest(inputStream("/QueryNetwork.xml").replace("CONTRAIL30_BASIC", "CONTRAIL31_GNDIRECT"), uri,
471                         HttpMethod.POST);
472         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
473     }
474
475     @Test
476     public void queryNetworkNeutronModeSuccess() throws IOException {
477
478         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
479
480         mockOpenStackGetNeutronNetwork(wireMockServer, "GetNeutronNetwork.json", NETWORK_ID, HttpStatus.SC_OK);
481
482         String uri = "/services/NetworkAdapter";
483         headers.set("X-ECOMP-RequestID", "123456789456127");
484         ResponseEntity<String> response =
485                 sendXMLRequest(inputStream("/QueryNetwork.xml").replace("CONTRAIL30_BASIC", "CONTRAIL31_GNDIRECT"), uri,
486                         HttpMethod.POST);
487         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
488     }
489
490     @Test
491     public void queryNetworkNeutronModeException() throws IOException {
492
493         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
494
495         mockOpenStackGetNeutronNetwork(wireMockServer, NETWORK_ID, HttpStatus.SC_INTERNAL_SERVER_ERROR);
496
497         String uri = "/services/NetworkAdapter";
498         headers.set("X-ECOMP-RequestID", "123456789456127");
499         ResponseEntity<String> response =
500                 sendXMLRequest(inputStream("/QueryNetwork.xml").replace("CONTRAIL30_BASIC", "CONTRAIL31_GNDIRECT"), uri,
501                         HttpMethod.POST);
502         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
503     }
504
505     public ResponseEntity<String> sendXMLRequest(String requestJson, String uriPath, HttpMethod reqMethod) {
506         headers.set("Accept", MediaType.APPLICATION_XML);
507         headers.set("Content-Type", MediaType.APPLICATION_XML);
508
509         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort(uriPath));
510
511         HttpEntity<String> request = new HttpEntity<String>(requestJson, headers);
512         ResponseEntity<String> response =
513                 restTemplate.exchange(builder.toUriString(), reqMethod, request, String.class);
514
515         return response;
516     }
517
518     public String inputStream(String JsonInput) throws IOException {
519         JsonInput = "src/test/resources/" + JsonInput;
520         String input = new String(Files.readAllBytes(Paths.get(JsonInput)));
521         return input;
522     }
523
524     public static void mockUpdateRequestDb(WireMockServer wireMockServer, String requestId) throws IOException {
525         wireMockServer.stubFor(patch(urlPathEqualTo("/infraActiveRequests/" + requestId))
526                 .willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.SC_OK)));
527     }
528 }