2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 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
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.client.adapter.network;
23 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
24 import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
25 import static com.github.tomakehurst.wiremock.client.WireMock.get;
26 import static com.github.tomakehurst.wiremock.client.WireMock.post;
27 import static com.github.tomakehurst.wiremock.client.WireMock.put;
28 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
29 import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertNotNull;
32 import javax.ws.rs.core.Response;
33 import org.junit.BeforeClass;
34 import org.junit.Test;
35 import org.onap.so.BaseIntegrationTest;
36 import org.onap.so.adapters.nwrest.CreateNetworkError;
37 import org.onap.so.adapters.nwrest.CreateNetworkRequest;
38 import org.onap.so.adapters.nwrest.CreateNetworkResponse;
39 import org.onap.so.adapters.nwrest.DeleteNetworkError;
40 import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
41 import org.onap.so.adapters.nwrest.DeleteNetworkResponse;
42 import org.onap.so.adapters.nwrest.QueryNetworkError;
43 import org.onap.so.adapters.nwrest.QueryNetworkResponse;
44 import org.onap.so.adapters.nwrest.RollbackNetworkError;
45 import org.onap.so.adapters.nwrest.RollbackNetworkRequest;
46 import org.onap.so.adapters.nwrest.RollbackNetworkResponse;
47 import org.onap.so.adapters.nwrest.UpdateNetworkError;
48 import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
49 import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
50 import org.onap.so.client.policy.JettisonStyleMapperProvider;
51 import org.onap.so.openstack.beans.NetworkRollback;
53 import com.fasterxml.jackson.core.JsonProcessingException;
54 import com.fasterxml.jackson.databind.ObjectMapper;
56 public class NetworkAdapterClientIT extends BaseIntegrationTest{
58 private static final String TESTING_ID = "___TESTING___";
59 private static final String AAI_NETWORK_ID = "test";
60 private static final String REST_ENDPOINT = "/networks/rest/v1/networks";
62 private NetworkAdapterClientImpl client = new NetworkAdapterClientImpl();
63 private ObjectMapper mapper = new JettisonStyleMapperProvider().getMapper();
66 public static void setUp() {
67 System.setProperty("mso.config.path", "src/test/resources");
71 public void createNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
72 CreateNetworkRequest request = new CreateNetworkRequest();
73 request.setCloudSiteId(TESTING_ID);
75 CreateNetworkResponse mockResponse = new CreateNetworkResponse();
76 mockResponse.setNetworkCreated(true);
77 stubFor(post(urlPathEqualTo(REST_ENDPOINT))
78 .willReturn(aResponse().withHeader("Content-Type", "application/json")
79 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
81 CreateNetworkResponse response = client.createNetwork(request);
82 assertEquals("Testing CreateVfModule response", true, response.getNetworkCreated());
85 @Test(expected = NetworkAdapterClientException.class)
86 public void createNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
87 CreateNetworkRequest request = new CreateNetworkRequest();
88 request.setCloudSiteId(TESTING_ID);
90 CreateNetworkError mockResponse = new CreateNetworkError();
91 mockResponse.setMessage("Error in create network");
92 stubFor(post(urlPathEqualTo(REST_ENDPOINT))
93 .willReturn(aResponse().withHeader("Content-Type", "application/json")
94 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
96 client.createNetwork(request);
100 public void deleteNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
101 DeleteNetworkRequest request = new DeleteNetworkRequest();
102 request.setCloudSiteId(TESTING_ID);
104 DeleteNetworkResponse mockResponse = new DeleteNetworkResponse();
105 mockResponse.setNetworkDeleted(true);
107 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
108 .willReturn(aResponse().withHeader("Content-Type", "application/json")
109 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
111 DeleteNetworkResponse response = client.deleteNetwork(AAI_NETWORK_ID, request);
112 assertEquals("Testing DeleteVfModule response", true, response.getNetworkDeleted());
115 @Test(expected = NetworkAdapterClientException.class)
116 public void deleteNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
117 DeleteNetworkRequest request = new DeleteNetworkRequest();
118 request.setCloudSiteId(TESTING_ID);
120 DeleteNetworkError mockResponse = new DeleteNetworkError();
121 mockResponse.setMessage("Error in delete network");
122 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
123 .willReturn(aResponse().withHeader("Content-Type", "application/json")
124 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
126 client.deleteNetwork(AAI_NETWORK_ID, request);
130 public void rollbackNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
131 RollbackNetworkRequest request = new RollbackNetworkRequest();
132 NetworkRollback rollback = new NetworkRollback();
133 rollback.setCloudId(TESTING_ID);
134 request.setNetworkRollback(rollback);
136 RollbackNetworkResponse mockResponse = new RollbackNetworkResponse();
137 mockResponse.setNetworkRolledBack(true);
139 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
140 .willReturn(aResponse().withHeader("Content-Type", "application/json")
141 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
143 RollbackNetworkResponse response = client.rollbackNetwork(AAI_NETWORK_ID, request);
144 assertEquals("Testing DeleteVfModule response", true, response.getNetworkRolledBack());
147 @Test(expected = NetworkAdapterClientException.class)
148 public void rollbackNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
149 RollbackNetworkRequest request = new RollbackNetworkRequest();
150 NetworkRollback rollback = new NetworkRollback();
151 rollback.setCloudId(TESTING_ID);
152 request.setNetworkRollback(rollback);
154 RollbackNetworkError mockResponse = new RollbackNetworkError();
155 mockResponse.setMessage("Error in rollback network");
157 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
158 .willReturn(aResponse().withHeader("Content-Type", "application/json")
159 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
161 client.rollbackNetwork(AAI_NETWORK_ID, request);
165 public void queryNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
166 QueryNetworkResponse mockResponse = new QueryNetworkResponse();
167 mockResponse.setNetworkExists(true);
169 stubFor(get(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID)).withQueryParam("cloudSiteId", equalTo(TESTING_ID))
170 .withQueryParam("tenantId", equalTo(TESTING_ID))
171 .withQueryParam("networkStackId", equalTo("networkStackId")).withQueryParam("skipAAI", equalTo("true"))
172 .withQueryParam("msoRequest.requestId", equalTo("testRequestId"))
173 .withQueryParam("msoRequest.serviceInstanceId", equalTo("serviceInstanceId"))
174 .willReturn(aResponse().withHeader("Content-Type", "application/json")
175 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
177 QueryNetworkResponse response = client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
178 true, "testRequestId", "serviceInstanceId");
179 assertEquals("Testing QueryVfModule response", true, response.getNetworkExists());
182 @Test(expected = NetworkAdapterClientException.class)
183 public void queryNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
184 QueryNetworkError mockResponse = new QueryNetworkError();
185 mockResponse.setMessage("Error in query network");
187 stubFor(get(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID)).withQueryParam("cloudSiteId", equalTo(TESTING_ID))
188 .withQueryParam("tenantId", equalTo(TESTING_ID))
189 .withQueryParam("networkStackId", equalTo("networkStackId")).withQueryParam("skipAAI", equalTo("true"))
190 .withQueryParam("msoRequest.requestId", equalTo("testRequestId"))
191 .withQueryParam("msoRequest.serviceInstanceId", equalTo("serviceInstanceId"))
192 .willReturn(aResponse().withHeader("Content-Type", "application/json")
193 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
195 client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
196 true, "testRequestId", "serviceInstanceId");
200 public void updateNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
201 UpdateNetworkRequest request = new UpdateNetworkRequest();
202 request.setCloudSiteId(TESTING_ID);
203 request.setNetworkId("test1");
205 UpdateNetworkResponse mockResponse = new UpdateNetworkResponse();
206 mockResponse.setNetworkId("test1");
207 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
208 .willReturn(aResponse().withHeader("Content-Type", "application/json")
209 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
211 UpdateNetworkResponse response = client.updateNetwork(AAI_NETWORK_ID, request);
212 assertEquals("Testing UpdateVfModule response", "test1", response.getNetworkId());
216 public void updateNetworkTestAsync() throws NetworkAdapterClientException, JsonProcessingException {
217 UpdateNetworkRequest request = new UpdateNetworkRequest();
218 request.setCloudSiteId(TESTING_ID);
219 request.setNetworkId("test1");
221 UpdateNetworkResponse mockResponse = new UpdateNetworkResponse();
222 mockResponse.setNetworkId("test1");
223 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
224 .willReturn(aResponse().withHeader("Content-Type", "application/json")
225 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
227 Response response = client.updateNetworkAsync(AAI_NETWORK_ID, request);
228 assertNotNull(response.getEntity());
231 @Test(expected = NetworkAdapterClientException.class)
232 public void updateNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
233 UpdateNetworkRequest request = new UpdateNetworkRequest();
234 request.setCloudSiteId(TESTING_ID);
235 request.setNetworkId("test1");
237 UpdateNetworkError mockResponse = new UpdateNetworkError();
238 mockResponse.setMessage("Error in update network");
239 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
240 .willReturn(aResponse().withHeader("Content-Type", "application/json")
241 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
243 client.updateNetwork(AAI_NETWORK_ID, request);