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;
32 import org.junit.BeforeClass;
33 import org.junit.Test;
34 import org.onap.so.BaseIntegrationTest;
35 import org.onap.so.adapters.nwrest.CreateNetworkError;
36 import org.onap.so.adapters.nwrest.CreateNetworkRequest;
37 import org.onap.so.adapters.nwrest.CreateNetworkResponse;
38 import org.onap.so.adapters.nwrest.DeleteNetworkError;
39 import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
40 import org.onap.so.adapters.nwrest.DeleteNetworkResponse;
41 import org.onap.so.adapters.nwrest.QueryNetworkError;
42 import org.onap.so.adapters.nwrest.QueryNetworkResponse;
43 import org.onap.so.adapters.nwrest.RollbackNetworkError;
44 import org.onap.so.adapters.nwrest.RollbackNetworkRequest;
45 import org.onap.so.adapters.nwrest.RollbackNetworkResponse;
46 import org.onap.so.adapters.nwrest.UpdateNetworkError;
47 import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
48 import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
49 import org.onap.so.client.policy.JettisonStyleMapperProvider;
50 import org.onap.so.openstack.beans.NetworkRollback;
52 import com.fasterxml.jackson.core.JsonProcessingException;
53 import com.fasterxml.jackson.databind.ObjectMapper;
55 public class NetworkAdapterClientIT extends BaseIntegrationTest{
57 private static final String TESTING_ID = "___TESTING___";
58 private static final String AAI_NETWORK_ID = "test";
59 private static final String REST_ENDPOINT = "/networks/rest/v1/networks";
61 private NetworkAdapterClientImpl client = new NetworkAdapterClientImpl();
62 private ObjectMapper mapper = new JettisonStyleMapperProvider().getMapper();
65 public static void setUp() {
66 System.setProperty("mso.config.path", "src/test/resources");
70 public void createNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
71 CreateNetworkRequest request = new CreateNetworkRequest();
72 request.setCloudSiteId(TESTING_ID);
74 CreateNetworkResponse mockResponse = new CreateNetworkResponse();
75 mockResponse.setNetworkCreated(true);
76 stubFor(post(urlPathEqualTo(REST_ENDPOINT))
77 .willReturn(aResponse().withHeader("Content-Type", "application/json")
78 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
80 CreateNetworkResponse response = client.createNetwork(request);
81 assertEquals("Testing CreateVfModule response", true, response.getNetworkCreated());
84 @Test(expected = NetworkAdapterClientException.class)
85 public void createNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
86 CreateNetworkRequest request = new CreateNetworkRequest();
87 request.setCloudSiteId(TESTING_ID);
89 CreateNetworkError mockResponse = new CreateNetworkError();
90 mockResponse.setMessage("Error in create network");
91 stubFor(post(urlPathEqualTo(REST_ENDPOINT))
92 .willReturn(aResponse().withHeader("Content-Type", "application/json")
93 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
95 client.createNetwork(request);
99 public void deleteNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
100 DeleteNetworkRequest request = new DeleteNetworkRequest();
101 request.setCloudSiteId(TESTING_ID);
103 DeleteNetworkResponse mockResponse = new DeleteNetworkResponse();
104 mockResponse.setNetworkDeleted(true);
106 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
107 .willReturn(aResponse().withHeader("Content-Type", "application/json")
108 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
110 DeleteNetworkResponse response = client.deleteNetwork(AAI_NETWORK_ID, request);
111 assertEquals("Testing DeleteVfModule response", true, response.getNetworkDeleted());
114 @Test(expected = NetworkAdapterClientException.class)
115 public void deleteNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
116 DeleteNetworkRequest request = new DeleteNetworkRequest();
117 request.setCloudSiteId(TESTING_ID);
119 DeleteNetworkError mockResponse = new DeleteNetworkError();
120 mockResponse.setMessage("Error in delete network");
121 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
122 .willReturn(aResponse().withHeader("Content-Type", "application/json")
123 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
125 client.deleteNetwork(AAI_NETWORK_ID, request);
129 public void rollbackNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
130 RollbackNetworkRequest request = new RollbackNetworkRequest();
131 NetworkRollback rollback = new NetworkRollback();
132 rollback.setCloudId(TESTING_ID);
133 request.setNetworkRollback(rollback);
135 RollbackNetworkResponse mockResponse = new RollbackNetworkResponse();
136 mockResponse.setNetworkRolledBack(true);
138 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
139 .willReturn(aResponse().withHeader("Content-Type", "application/json")
140 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
142 RollbackNetworkResponse response = client.rollbackNetwork(AAI_NETWORK_ID, request);
143 assertEquals("Testing DeleteVfModule response", true, response.getNetworkRolledBack());
146 @Test(expected = NetworkAdapterClientException.class)
147 public void rollbackNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
148 RollbackNetworkRequest request = new RollbackNetworkRequest();
149 NetworkRollback rollback = new NetworkRollback();
150 rollback.setCloudId(TESTING_ID);
151 request.setNetworkRollback(rollback);
153 RollbackNetworkError mockResponse = new RollbackNetworkError();
154 mockResponse.setMessage("Error in rollback network");
156 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
157 .willReturn(aResponse().withHeader("Content-Type", "application/json")
158 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
160 client.rollbackNetwork(AAI_NETWORK_ID, request);
164 public void queryNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
165 QueryNetworkResponse mockResponse = new QueryNetworkResponse();
166 mockResponse.setNetworkExists(true);
168 stubFor(get(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID)).withQueryParam("cloudSiteId", equalTo(TESTING_ID))
169 .withQueryParam("tenantId", equalTo(TESTING_ID))
170 .withQueryParam("networkStackId", equalTo("networkStackId")).withQueryParam("skipAAI", equalTo("true"))
171 .withQueryParam("msoRequest.requestId", equalTo("testRequestId"))
172 .withQueryParam("msoRequest.serviceInstanceId", equalTo("serviceInstanceId"))
173 .willReturn(aResponse().withHeader("Content-Type", "application/json")
174 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
176 QueryNetworkResponse response = client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
177 true, "testRequestId", "serviceInstanceId");
178 assertEquals("Testing QueryVfModule response", true, response.getNetworkExists());
181 @Test(expected = NetworkAdapterClientException.class)
182 public void queryNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
183 QueryNetworkError mockResponse = new QueryNetworkError();
184 mockResponse.setMessage("Error in query network");
186 stubFor(get(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID)).withQueryParam("cloudSiteId", equalTo(TESTING_ID))
187 .withQueryParam("tenantId", equalTo(TESTING_ID))
188 .withQueryParam("networkStackId", equalTo("networkStackId")).withQueryParam("skipAAI", equalTo("true"))
189 .withQueryParam("msoRequest.requestId", equalTo("testRequestId"))
190 .withQueryParam("msoRequest.serviceInstanceId", equalTo("serviceInstanceId"))
191 .willReturn(aResponse().withHeader("Content-Type", "application/json")
192 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
194 client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
195 true, "testRequestId", "serviceInstanceId");
199 public void updateNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
200 UpdateNetworkRequest request = new UpdateNetworkRequest();
201 request.setCloudSiteId(TESTING_ID);
202 request.setNetworkId("test1");
204 UpdateNetworkResponse mockResponse = new UpdateNetworkResponse();
205 mockResponse.setNetworkId("test1");
206 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
207 .willReturn(aResponse().withHeader("Content-Type", "application/json")
208 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
210 UpdateNetworkResponse response = client.updateNetwork(AAI_NETWORK_ID, request);
211 assertEquals("Testing UpdateVfModule response", "test1", response.getNetworkId());
214 @Test(expected = NetworkAdapterClientException.class)
215 public void updateNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
216 UpdateNetworkRequest request = new UpdateNetworkRequest();
217 request.setCloudSiteId(TESTING_ID);
218 request.setNetworkId("test1");
220 UpdateNetworkError mockResponse = new UpdateNetworkError();
221 mockResponse.setMessage("Error in update network");
222 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
223 .willReturn(aResponse().withHeader("Content-Type", "application/json")
224 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
226 client.updateNetwork(AAI_NETWORK_ID, request);