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.delete;
25 import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
26 import static com.github.tomakehurst.wiremock.client.WireMock.get;
27 import static com.github.tomakehurst.wiremock.client.WireMock.post;
28 import static com.github.tomakehurst.wiremock.client.WireMock.put;
29 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
30 import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
31 import static org.junit.Assert.assertEquals;
32 import static org.junit.Assert.assertNotNull;
33 import javax.ws.rs.core.Response;
34 import org.junit.BeforeClass;
35 import org.junit.Test;
36 import org.onap.so.BaseIntegrationTest;
37 import org.onap.so.adapters.nwrest.CreateNetworkError;
38 import org.onap.so.adapters.nwrest.CreateNetworkRequest;
39 import org.onap.so.adapters.nwrest.CreateNetworkResponse;
40 import org.onap.so.adapters.nwrest.DeleteNetworkError;
41 import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
42 import org.onap.so.adapters.nwrest.DeleteNetworkResponse;
43 import org.onap.so.adapters.nwrest.QueryNetworkError;
44 import org.onap.so.adapters.nwrest.QueryNetworkResponse;
45 import org.onap.so.adapters.nwrest.RollbackNetworkError;
46 import org.onap.so.adapters.nwrest.RollbackNetworkRequest;
47 import org.onap.so.adapters.nwrest.RollbackNetworkResponse;
48 import org.onap.so.adapters.nwrest.UpdateNetworkError;
49 import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
50 import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
51 import org.onap.so.client.policy.JettisonStyleMapperProvider;
52 import org.onap.so.openstack.beans.NetworkRollback;
54 import com.fasterxml.jackson.core.JsonProcessingException;
55 import com.fasterxml.jackson.databind.ObjectMapper;
57 public class NetworkAdapterClientIT extends BaseIntegrationTest{
59 private static final String TESTING_ID = "___TESTING___";
60 private static final String AAI_NETWORK_ID = "test";
61 private static final String REST_ENDPOINT = "/networks/rest/v1/networks";
63 private NetworkAdapterClientImpl client = new NetworkAdapterClientImpl();
64 private ObjectMapper mapper = new JettisonStyleMapperProvider().getMapper();
67 public static void setUp() {
68 System.setProperty("mso.config.path", "src/test/resources");
72 public void createNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
73 CreateNetworkRequest request = new CreateNetworkRequest();
74 request.setCloudSiteId(TESTING_ID);
76 CreateNetworkResponse mockResponse = new CreateNetworkResponse();
77 mockResponse.setNetworkCreated(true);
78 stubFor(post(urlPathEqualTo(REST_ENDPOINT))
79 .willReturn(aResponse().withHeader("Content-Type", "application/json")
80 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
82 CreateNetworkResponse response = client.createNetwork(request);
83 assertEquals("Testing CreateVfModule response", true, response.getNetworkCreated());
86 @Test(expected = NetworkAdapterClientException.class)
87 public void createNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
88 CreateNetworkRequest request = new CreateNetworkRequest();
89 request.setCloudSiteId(TESTING_ID);
91 CreateNetworkError mockResponse = new CreateNetworkError();
92 mockResponse.setMessage("Error in create network");
93 stubFor(post(urlPathEqualTo(REST_ENDPOINT))
94 .willReturn(aResponse().withHeader("Content-Type", "application/json")
95 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
97 client.createNetwork(request);
101 public void deleteNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
102 DeleteNetworkRequest request = new DeleteNetworkRequest();
103 request.setCloudSiteId(TESTING_ID);
105 DeleteNetworkResponse mockResponse = new DeleteNetworkResponse();
106 mockResponse.setNetworkDeleted(true);
108 stubFor(delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
109 .willReturn(aResponse().withHeader("Content-Type", "application/json")
110 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
112 DeleteNetworkResponse response = client.deleteNetwork(AAI_NETWORK_ID, request);
113 assertEquals("Testing DeleteVfModule response", true, response.getNetworkDeleted());
116 @Test(expected = NetworkAdapterClientException.class)
117 public void deleteNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
118 DeleteNetworkRequest request = new DeleteNetworkRequest();
119 request.setCloudSiteId(TESTING_ID);
121 DeleteNetworkError mockResponse = new DeleteNetworkError();
122 mockResponse.setMessage("Error in delete network");
123 stubFor(delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
124 .willReturn(aResponse().withHeader("Content-Type", "application/json")
125 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
127 client.deleteNetwork(AAI_NETWORK_ID, request);
131 public void rollbackNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
132 RollbackNetworkRequest request = new RollbackNetworkRequest();
133 NetworkRollback rollback = new NetworkRollback();
134 rollback.setCloudId(TESTING_ID);
135 request.setNetworkRollback(rollback);
137 RollbackNetworkResponse mockResponse = new RollbackNetworkResponse();
138 mockResponse.setNetworkRolledBack(true);
140 stubFor(delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
141 .willReturn(aResponse().withHeader("Content-Type", "application/json")
142 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
144 RollbackNetworkResponse response = client.rollbackNetwork(AAI_NETWORK_ID, request);
145 assertEquals("Testing DeleteVfModule response", true, response.getNetworkRolledBack());
148 @Test(expected = NetworkAdapterClientException.class)
149 public void rollbackNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
150 RollbackNetworkRequest request = new RollbackNetworkRequest();
151 NetworkRollback rollback = new NetworkRollback();
152 rollback.setCloudId(TESTING_ID);
153 request.setNetworkRollback(rollback);
155 RollbackNetworkError mockResponse = new RollbackNetworkError();
156 mockResponse.setMessage("Error in rollback network");
158 stubFor(delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
159 .willReturn(aResponse().withHeader("Content-Type", "application/json")
160 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
162 client.rollbackNetwork(AAI_NETWORK_ID, request);
166 public void queryNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
167 QueryNetworkResponse mockResponse = new QueryNetworkResponse();
168 mockResponse.setNetworkExists(true);
170 stubFor(get(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID)).withQueryParam("cloudSiteId", equalTo(TESTING_ID))
171 .withQueryParam("tenantId", equalTo(TESTING_ID))
172 .withQueryParam("networkStackId", equalTo("networkStackId")).withQueryParam("skipAAI", equalTo("true"))
173 .withQueryParam("msoRequest.requestId", equalTo("testRequestId"))
174 .withQueryParam("msoRequest.serviceInstanceId", equalTo("serviceInstanceId"))
175 .willReturn(aResponse().withHeader("Content-Type", "application/json")
176 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
178 QueryNetworkResponse response = client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
179 true, "testRequestId", "serviceInstanceId");
180 assertEquals("Testing QueryVfModule response", true, response.getNetworkExists());
183 @Test(expected = NetworkAdapterClientException.class)
184 public void queryNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
185 QueryNetworkError mockResponse = new QueryNetworkError();
186 mockResponse.setMessage("Error in query network");
188 stubFor(get(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID)).withQueryParam("cloudSiteId", equalTo(TESTING_ID))
189 .withQueryParam("tenantId", equalTo(TESTING_ID))
190 .withQueryParam("networkStackId", equalTo("networkStackId")).withQueryParam("skipAAI", equalTo("true"))
191 .withQueryParam("msoRequest.requestId", equalTo("testRequestId"))
192 .withQueryParam("msoRequest.serviceInstanceId", equalTo("serviceInstanceId"))
193 .willReturn(aResponse().withHeader("Content-Type", "application/json")
194 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
196 client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
197 true, "testRequestId", "serviceInstanceId");
201 public void updateNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
202 UpdateNetworkRequest request = new UpdateNetworkRequest();
203 request.setCloudSiteId(TESTING_ID);
204 request.setNetworkId("test1");
206 UpdateNetworkResponse mockResponse = new UpdateNetworkResponse();
207 mockResponse.setNetworkId("test1");
208 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
209 .willReturn(aResponse().withHeader("Content-Type", "application/json")
210 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
212 UpdateNetworkResponse response = client.updateNetwork(AAI_NETWORK_ID, request);
213 assertEquals("Testing UpdateVfModule response", "test1", response.getNetworkId());
217 public void updateNetworkTestAsync() throws NetworkAdapterClientException, JsonProcessingException {
218 UpdateNetworkRequest request = new UpdateNetworkRequest();
219 request.setCloudSiteId(TESTING_ID);
220 request.setNetworkId("test1");
222 UpdateNetworkResponse mockResponse = new UpdateNetworkResponse();
223 mockResponse.setNetworkId("test1");
224 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
225 .willReturn(aResponse().withHeader("Content-Type", "application/json")
226 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
228 Response response = client.updateNetworkAsync(AAI_NETWORK_ID, request);
229 assertNotNull(response.getEntity());
232 @Test(expected = NetworkAdapterClientException.class)
233 public void updateNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
234 UpdateNetworkRequest request = new UpdateNetworkRequest();
235 request.setCloudSiteId(TESTING_ID);
236 request.setNetworkId("test1");
238 UpdateNetworkError mockResponse = new UpdateNetworkError();
239 mockResponse.setMessage("Error in update network");
240 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
241 .willReturn(aResponse().withHeader("Content-Type", "application/json")
242 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
244 client.updateNetwork(AAI_NETWORK_ID, request);