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.urlPathEqualTo;
29 import static org.junit.Assert.assertEquals;
31 import org.junit.BeforeClass;
32 import org.junit.Test;
33 import org.onap.so.adapters.nwrest.CreateNetworkError;
34 import org.onap.so.adapters.nwrest.CreateNetworkRequest;
35 import org.onap.so.adapters.nwrest.CreateNetworkResponse;
36 import org.onap.so.adapters.nwrest.DeleteNetworkError;
37 import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
38 import org.onap.so.adapters.nwrest.DeleteNetworkResponse;
39 import org.onap.so.adapters.nwrest.QueryNetworkError;
40 import org.onap.so.adapters.nwrest.QueryNetworkResponse;
41 import org.onap.so.adapters.nwrest.RollbackNetworkError;
42 import org.onap.so.adapters.nwrest.RollbackNetworkRequest;
43 import org.onap.so.adapters.nwrest.RollbackNetworkResponse;
44 import org.onap.so.adapters.nwrest.UpdateNetworkError;
45 import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
46 import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
47 import org.onap.so.BaseIntegrationTest;
48 import org.onap.so.openstack.beans.NetworkRollback;
50 import com.fasterxml.jackson.core.JsonProcessingException;
51 import com.fasterxml.jackson.databind.ObjectMapper;
52 import static com.github.tomakehurst.wiremock.client.WireMock.*;
54 public class NetworkAdapterClientIT extends BaseIntegrationTest{
56 private static final String TESTING_ID = "___TESTING___";
57 private static final String AAI_NETWORK_ID = "test";
58 private static final String REST_ENDPOINT = "/networks/rest/v1/networks";
60 private NetworkAdapterClientImpl client = new NetworkAdapterClientImpl();
61 private ObjectMapper mapper = new ObjectMapper();
64 public static void setUp() {
65 System.setProperty("mso.config.path", "src/test/resources");
69 public void createNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
70 CreateNetworkRequest request = new CreateNetworkRequest();
71 request.setCloudSiteId(TESTING_ID);
73 CreateNetworkResponse mockResponse = new CreateNetworkResponse();
74 mockResponse.setNetworkCreated(true);
75 stubFor(post(urlPathEqualTo(REST_ENDPOINT))
76 .willReturn(aResponse().withHeader("Content-Type", "application/json")
77 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
79 CreateNetworkResponse response = client.createNetwork(request);
80 assertEquals("Testing CreateVfModule response", true, response.getNetworkCreated());
83 @Test(expected = NetworkAdapterClientException.class)
84 public void createNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
85 CreateNetworkRequest request = new CreateNetworkRequest();
86 request.setCloudSiteId(TESTING_ID);
88 CreateNetworkError mockResponse = new CreateNetworkError();
89 mockResponse.setMessage("Error in create network");
90 stubFor(post(urlPathEqualTo(REST_ENDPOINT))
91 .willReturn(aResponse().withHeader("Content-Type", "application/json")
92 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
94 client.createNetwork(request);
98 public void deleteNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
99 DeleteNetworkRequest request = new DeleteNetworkRequest();
100 request.setCloudSiteId(TESTING_ID);
102 DeleteNetworkResponse mockResponse = new DeleteNetworkResponse();
103 mockResponse.setNetworkDeleted(true);
105 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
106 .willReturn(aResponse().withHeader("Content-Type", "application/json")
107 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
109 DeleteNetworkResponse response = client.deleteNetwork(AAI_NETWORK_ID, request);
110 assertEquals("Testing DeleteVfModule response", true, response.getNetworkDeleted());
113 @Test(expected = NetworkAdapterClientException.class)
114 public void deleteNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
115 DeleteNetworkRequest request = new DeleteNetworkRequest();
116 request.setCloudSiteId(TESTING_ID);
118 DeleteNetworkError mockResponse = new DeleteNetworkError();
119 mockResponse.setMessage("Error in delete network");
120 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
121 .willReturn(aResponse().withHeader("Content-Type", "application/json")
122 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
124 client.deleteNetwork(AAI_NETWORK_ID, request);
128 public void rollbackNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
129 RollbackNetworkRequest request = new RollbackNetworkRequest();
130 NetworkRollback rollback = new NetworkRollback();
131 rollback.setCloudId(TESTING_ID);
132 request.setNetworkRollback(rollback);
134 RollbackNetworkResponse mockResponse = new RollbackNetworkResponse();
135 mockResponse.setNetworkRolledBack(true);
137 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
138 .willReturn(aResponse().withHeader("Content-Type", "application/json")
139 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
141 RollbackNetworkResponse response = client.rollbackNetwork(AAI_NETWORK_ID, request);
142 assertEquals("Testing DeleteVfModule response", true, response.getNetworkRolledBack());
145 @Test(expected = NetworkAdapterClientException.class)
146 public void rollbackNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
147 RollbackNetworkRequest request = new RollbackNetworkRequest();
148 NetworkRollback rollback = new NetworkRollback();
149 rollback.setCloudId(TESTING_ID);
150 request.setNetworkRollback(rollback);
152 RollbackNetworkError mockResponse = new RollbackNetworkError();
153 mockResponse.setMessage("Error in rollback network");
155 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
156 .willReturn(aResponse().withHeader("Content-Type", "application/json")
157 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
159 client.rollbackNetwork(AAI_NETWORK_ID, request);
163 public void queryNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
164 QueryNetworkResponse mockResponse = new QueryNetworkResponse();
165 mockResponse.setNetworkExists(true);
167 stubFor(get(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID)).withQueryParam("cloudSiteId", equalTo(TESTING_ID))
168 .withQueryParam("tenantId", equalTo(TESTING_ID))
169 .withQueryParam("networkStackId", equalTo("networkStackId")).withQueryParam("skipAAI", equalTo("true"))
170 .withQueryParam("msoRequest.requestId", equalTo("testRequestId"))
171 .withQueryParam("msoRequest.serviceInstanceId", equalTo("serviceInstanceId"))
172 .willReturn(aResponse().withHeader("Content-Type", "application/json")
173 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
175 QueryNetworkResponse response = client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
176 true, "testRequestId", "serviceInstanceId");
177 assertEquals("Testing QueryVfModule response", true, response.getNetworkExists());
180 @Test(expected = NetworkAdapterClientException.class)
181 public void queryNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
182 QueryNetworkError mockResponse = new QueryNetworkError();
183 mockResponse.setMessage("Error in query network");
185 stubFor(get(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID)).withQueryParam("cloudSiteId", equalTo(TESTING_ID))
186 .withQueryParam("tenantId", equalTo(TESTING_ID))
187 .withQueryParam("networkStackId", equalTo("networkStackId")).withQueryParam("skipAAI", equalTo("true"))
188 .withQueryParam("msoRequest.requestId", equalTo("testRequestId"))
189 .withQueryParam("msoRequest.serviceInstanceId", equalTo("serviceInstanceId"))
190 .willReturn(aResponse().withHeader("Content-Type", "application/json")
191 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
193 client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
194 true, "testRequestId", "serviceInstanceId");
198 public void updateNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
199 UpdateNetworkRequest request = new UpdateNetworkRequest();
200 request.setCloudSiteId(TESTING_ID);
201 request.setNetworkId("test1");
203 UpdateNetworkResponse mockResponse = new UpdateNetworkResponse();
204 mockResponse.setNetworkId("test1");
205 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
206 .willReturn(aResponse().withHeader("Content-Type", "application/json")
207 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
209 UpdateNetworkResponse response = client.updateNetwork(AAI_NETWORK_ID, request);
210 assertEquals("Testing UpdateVfModule response", "test1", response.getNetworkId());
213 @Test(expected = NetworkAdapterClientException.class)
214 public void updateNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
215 UpdateNetworkRequest request = new UpdateNetworkRequest();
216 request.setCloudSiteId(TESTING_ID);
217 request.setNetworkId("test1");
219 UpdateNetworkError mockResponse = new UpdateNetworkError();
220 mockResponse.setMessage("Error in update network");
221 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
222 .willReturn(aResponse().withHeader("Content-Type", "application/json")
223 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
225 client.updateNetwork(AAI_NETWORK_ID, request);