2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.so.adapters.network;
23 import org.apache.http.HttpStatus;
24 import org.junit.Test;
25 import org.onap.so.adapters.vnf.BaseRestTestUtils;
26 import org.onap.so.entity.MsoRequest;
27 import org.onap.so.openstack.beans.NetworkRollback;
28 import org.springframework.beans.factory.annotation.Autowired;
30 import java.io.IOException;
31 import java.util.ArrayList;
33 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
34 import static com.github.tomakehurst.wiremock.client.WireMock.containing;
35 import static com.github.tomakehurst.wiremock.client.WireMock.post;
36 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
37 import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
38 import static org.onap.so.bpmn.mock.StubOpenStack.getBodyFromFile;
39 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackCreatedVUSP_200;
40 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackCreated_200;
41 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackDeleteOrUpdateComplete_200;
42 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPostStacks_200;
43 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPutPublicUrlStackByNameAndID_NETWORK2_200;
44 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackResponseAccessQueryNetwork;
46 public class MsoNetworkAdapterAsyncImplTest extends BaseRestTestUtils {
48 MsoNetworkAdapterAsyncImpl impl;
51 public void healthCheckATest() {
52 MsoNetworkAdapterAsyncImpl mNAAimpl = new MsoNetworkAdapterAsyncImpl();
53 mNAAimpl.healthCheckA();
57 public void rollbackNetworkATest() throws IOException {
58 stubFor(post(urlPathEqualTo("/v2.0/tokens"))
59 .withRequestBody(containing("tenantId"))
60 .willReturn(aResponse().withHeader("Content-Type", "application/json")
61 .withBody(getBodyFromFile("OpenstackResponse_Access.json", wireMockPort, "/mockPublicUrl"))
62 .withStatus(HttpStatus.SC_OK)));
63 stubFor(post(urlPathEqualTo("/notificationUrl"))
64 .withRequestBody(containing("<completed>true</completed>"))
65 .willReturn(aResponse()
66 .withBody("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:net=\"http://org.onap.so/networkNotify\">\n" +
67 " <soapenv:Header/>\n" +
69 " <net:rollbackNetworkNotificationResponse>\n" +
70 " </net:rollbackNetworkNotificationResponse>\n" +
71 " </soapenv:Body>\n" +
72 "</soapenv:Envelope>")
73 .withStatus(HttpStatus.SC_OK)));
74 NetworkRollback nrb = getNetworkRollback("mtn13");
75 impl.rollbackNetworkA(nrb, "messageId", "http://localhost:"+wireMockPort+"/notificationUrl");
79 public void rollbackNetworkATest_NotifyException() throws IOException {
80 stubFor(post(urlPathEqualTo("/v2.0/tokens"))
81 .withRequestBody(containing("tenantId"))
82 .willReturn(aResponse().withHeader("Content-Type", "application/json")
83 .withBody(getBodyFromFile("OpenstackResponse_Access.json", wireMockPort, "/mockPublicUrl"))
84 .withStatus(HttpStatus.SC_OK)));
85 stubFor(post(urlPathEqualTo("/notificationUrl"))
86 .withRequestBody(containing("<completed>true</completed>"))
87 .willReturn(aResponse()
88 .withStatus(HttpStatus.SC_NOT_FOUND)));
89 NetworkRollback nrb = getNetworkRollback("mtn13");
90 impl.rollbackNetworkA(nrb, "messageId", "http://localhost:"+wireMockPort+"/notificationUrl");
93 private NetworkRollback getNetworkRollback(String cloudId) {
94 NetworkRollback nrb = new NetworkRollback();
95 nrb.setCloudId(cloudId);
96 nrb.setMsoRequest(new MsoRequest());
97 nrb.setModelCustomizationUuid("3bdbb104-476c-483e-9f8b-c095b3d3068c");
98 nrb.setNetworkCreated(true);
99 nrb.setNetworkId("networkId");
100 nrb.setNetworkName("networkName");
101 nrb.setNetworkStackId("networkStackId");
102 nrb.setNetworkType("networkType");
103 nrb.setNeutronNetworkId("neutronNetworkId");
104 nrb.setPhysicalNetwork("physicalNetwork");
105 nrb.setTenantId("tenantId");
106 nrb.setVlans(new ArrayList<>());
111 public void rollbackNetworkATestNetworkException() {
112 NetworkRollback nrb = getNetworkRollback("cloudId");
114 impl.rollbackNetworkA(nrb, "messageId", "http://localhost");
118 public void noRollbackNetworkATest() {
119 impl.rollbackNetworkA(null, "messageId", "http://localhost");
124 public void deleteNetworkATest() throws IOException {
125 stubFor(post(urlPathEqualTo("/v2.0/tokens"))
126 .withRequestBody(containing("tenantId"))
127 .willReturn(aResponse().withHeader("Content-Type", "application/json")
128 .withBody(getBodyFromFile("OpenstackResponse_Access.json", wireMockPort, "/mockPublicUrl"))
129 .withStatus(HttpStatus.SC_OK)));
130 stubFor(post(urlPathEqualTo("/notificationUrl"))
131 .withRequestBody(containing("<completed>true</completed>"))
132 .willReturn(aResponse()
133 .withBody("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:net=\"http://org.onap.so/networkNotify\">\n" +
134 " <soapenv:Header/>\n" +
135 " <soapenv:Body>\n" +
136 " <net:deleteNetworkNotificationResponse>\n" +
137 " </net:deleteNetworkNotificationResponse>\n" +
138 " </soapenv:Body>\n" +
139 "</soapenv:Envelope>")
140 .withStatus(HttpStatus.SC_OK)));
141 impl.deleteNetworkA("mtn13", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
142 "messageId", new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
146 public void deleteNetworkATest_NotifyException() throws IOException {
147 stubFor(post(urlPathEqualTo("/v2.0/tokens"))
148 .withRequestBody(containing("tenantId"))
149 .willReturn(aResponse().withHeader("Content-Type", "application/json")
150 .withBody(getBodyFromFile("OpenstackResponse_Access.json", wireMockPort, "/mockPublicUrl"))
151 .withStatus(HttpStatus.SC_OK)));
152 stubFor(post(urlPathEqualTo("/notificationUrl"))
153 .withRequestBody(containing("<completed>true</completed>"))
154 .willReturn(aResponse()
155 .withStatus(HttpStatus.SC_NOT_FOUND)));
156 impl.deleteNetworkA("mtn13", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
157 "messageId", new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
161 public void deleteNetworkATest_NetworkException() {
162 impl.deleteNetworkA("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
163 "messageId", new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
167 public void updateNetworkATest() throws IOException {
168 stubFor(post(urlPathEqualTo("/v2.0/tokens"))
169 .withRequestBody(containing("tenantId"))
170 .willReturn(aResponse().withHeader("Content-Type", "application/json")
171 .withBody(getBodyFromFile("OpenstackResponse_Access.json", wireMockPort, "/mockPublicUrl"))
172 .withStatus(HttpStatus.SC_OK)));
173 mockOpenStackGetStackCreated_200("OpenstackResponse_Stack_Created.json", "dvspg-VCE_VPE-mtjnj40avbc");
174 mockOpenStackGetStackDeleteOrUpdateComplete_200("OpenstackResponse_Stack_UpdateComplete.json");
175 mockOpenStackPutPublicUrlStackByNameAndID_NETWORK2_200();
176 stubFor(post(urlPathEqualTo("/notificationUrl"))
177 .withRequestBody(containing("updateNetworkNotification"))
178 .willReturn(aResponse()
179 .withBody("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:net=\"http://org.onap.so/networkNotify\">\n" +
180 " <soapenv:Header/>\n" +
181 " <soapenv:Body>\n" +
182 " <net:updateNetworkNotificationResponse>\n" +
183 " </net:updateNetworkNotificationResponse>\n" +
184 " </soapenv:Body>\n" +
185 "</soapenv:Envelope>")
186 .withStatus(HttpStatus.SC_OK)));
187 impl.updateNetworkA("mtn13", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "dvspg-VCE_VPE-mtjnj40avbc",
188 "dvspg-VCE_VPE-mtjnj40avbc", "physicalNetworkName", new ArrayList<>(), new ArrayList<>(), "messageId",
189 new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
193 public void updateNetworkATest_NotifyExcpetion() throws IOException {
194 stubFor(post(urlPathEqualTo("/v2.0/tokens"))
195 .withRequestBody(containing("tenantId"))
196 .willReturn(aResponse().withHeader("Content-Type", "application/json")
197 .withBody(getBodyFromFile("OpenstackResponse_Access.json", wireMockPort, "/mockPublicUrl"))
198 .withStatus(HttpStatus.SC_OK)));
199 mockOpenStackGetStackCreated_200("OpenstackResponse_Stack_Created.json", "dvspg-VCE_VPE-mtjnj40avbc");
200 mockOpenStackGetStackDeleteOrUpdateComplete_200("OpenstackResponse_Stack_UpdateComplete.json");
201 mockOpenStackPutPublicUrlStackByNameAndID_NETWORK2_200();
202 impl.updateNetworkA("mtn13", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "dvspg-VCE_VPE-mtjnj40avbc",
203 "dvspg-VCE_VPE-mtjnj40avbc", "physicalNetworkName", new ArrayList<>(), new ArrayList<>(), "messageId",
204 new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl"); }
207 public void updateNetworkATest_NetworkException() {
208 impl.updateNetworkA("cloudSiteId", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "networkId",
209 "dvspg-VCE_VPE-mtjnj40avbc", "physicalNetworkName", new ArrayList<>(), new ArrayList<>(), "messageId",
210 new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
214 public void queryNetworkATest() throws IOException {
215 mockOpenStackResponseAccessQueryNetwork(wireMockPort);
216 impl.queryNetworkA("mtn13", "tenantId", "networkId", "messageId", new MsoRequest(),
217 "http://localhost:"+wireMockPort+"/notificationUrl");
221 public void createNetworkATest() throws IOException {
222 stubFor(post(urlPathEqualTo("/v2.0/tokens"))
223 .withRequestBody(containing("tenantId"))
224 .willReturn(aResponse().withHeader("Content-Type", "application/json")
225 .withBody(getBodyFromFile("OpenstackResponse_Access.json", wireMockPort, "/mockPublicUrl"))
226 .withStatus(HttpStatus.SC_OK)));
227 stubFor(post(urlPathEqualTo("/notificationUrl"))
228 .withRequestBody(containing("createNetworkNotification"))
229 .willReturn(aResponse()
230 .withBody("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:net=\"http://org.onap.so/networkNotify\">\n" +
231 " <soapenv:Header/>\n" +
232 " <soapenv:Body>\n" +
233 " <net:createNetworkNotificationResponse>\n" +
234 " </net:createNetworkNotificationResponse>\n" +
235 " </soapenv:Body>\n" +
236 "</soapenv:Envelope>")
237 .withStatus(HttpStatus.SC_OK)));
238 mockOpenStackGetStackCreatedVUSP_200();
239 mockOpenStackPostStacks_200();
240 impl.createNetworkA("mtn13", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "vUSP-23804-T-01-dpa2b_EVUSP-CORE-VIF-TSIG0_net_0",
241 "physicalNetworkName", new ArrayList<>(), false, false, new ArrayList<>(), "messageId",
242 new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
246 public void createNetworkATest_NotifyException() throws IOException {
247 stubFor(post(urlPathEqualTo("/v2.0/tokens"))
248 .withRequestBody(containing("tenantId"))
249 .willReturn(aResponse().withHeader("Content-Type", "application/json")
250 .withBody(getBodyFromFile("OpenstackResponse_Access.json", wireMockPort, "/mockPublicUrl"))
251 .withStatus(HttpStatus.SC_OK)));
252 mockOpenStackGetStackCreatedVUSP_200();
253 mockOpenStackPostStacks_200();
254 impl.createNetworkA("mtn13", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "vUSP-23804-T-01-dpa2b_EVUSP-CORE-VIF-TSIG0_net_0",
255 "physicalNetworkName", new ArrayList<>(), false, false, new ArrayList<>(), "messageId",
256 new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
260 public void createNetworkATest_NetworkException() {
261 impl.createNetworkA("mtn13", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "vUSP-23804-T-01-dpa2b_EVUSP-CORE-VIF-TSIG0_net_0",
262 "physicalNetworkName", new ArrayList<>(), false, false, new ArrayList<>(), "messageId",
263 new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");