1bcc464fa02dff39cf98acef9d32a6de2d834164
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / client / adapter / network / NetworkAdapterClientIT.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.onap.so.client.adapter.network;
22
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;
52
53 import com.fasterxml.jackson.core.JsonProcessingException;
54 import com.fasterxml.jackson.databind.ObjectMapper;
55
56 public class NetworkAdapterClientIT extends BaseIntegrationTest{
57
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";
61
62         private NetworkAdapterClientImpl client = new NetworkAdapterClientImpl();
63         private ObjectMapper mapper = new JettisonStyleMapperProvider().getMapper();
64
65         @BeforeClass
66         public static void setUp() {
67                 System.setProperty("mso.config.path", "src/test/resources");
68         }
69
70         @Test
71         public void createNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
72                 CreateNetworkRequest request = new CreateNetworkRequest();
73                 request.setCloudSiteId(TESTING_ID);
74
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)));
80
81                 CreateNetworkResponse response = client.createNetwork(request);
82                 assertEquals("Testing CreateVfModule response", true, response.getNetworkCreated());
83         }
84
85         @Test(expected = NetworkAdapterClientException.class)
86         public void createNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
87                 CreateNetworkRequest request = new CreateNetworkRequest();
88                 request.setCloudSiteId(TESTING_ID);
89
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)));
95
96                 client.createNetwork(request);
97         }
98
99         @Test
100         public void deleteNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
101                 DeleteNetworkRequest request = new DeleteNetworkRequest();
102                 request.setCloudSiteId(TESTING_ID);
103
104                 DeleteNetworkResponse mockResponse = new DeleteNetworkResponse();
105                 mockResponse.setNetworkDeleted(true);
106
107                 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
108                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
109                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
110
111                 DeleteNetworkResponse response = client.deleteNetwork(AAI_NETWORK_ID, request);
112                 assertEquals("Testing DeleteVfModule response", true, response.getNetworkDeleted());
113         }
114
115         @Test(expected = NetworkAdapterClientException.class)
116         public void deleteNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
117                 DeleteNetworkRequest request = new DeleteNetworkRequest();
118                 request.setCloudSiteId(TESTING_ID);
119
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)));
125
126                 client.deleteNetwork(AAI_NETWORK_ID, request);
127         }
128
129         @Test
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);
135
136                 RollbackNetworkResponse mockResponse = new RollbackNetworkResponse();
137                 mockResponse.setNetworkRolledBack(true);
138
139                 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
140                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
141                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
142
143                 RollbackNetworkResponse response = client.rollbackNetwork(AAI_NETWORK_ID, request);
144                 assertEquals("Testing DeleteVfModule response", true, response.getNetworkRolledBack());
145         }
146         
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);
153
154                 RollbackNetworkError mockResponse = new RollbackNetworkError();
155                 mockResponse.setMessage("Error in rollback network");
156
157                 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
158                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
159                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
160
161                 client.rollbackNetwork(AAI_NETWORK_ID, request);
162         }
163
164         @Test
165         public void queryNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
166                 QueryNetworkResponse mockResponse = new QueryNetworkResponse();
167                 mockResponse.setNetworkExists(true);
168
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)));
176
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());
180         }
181         
182         @Test(expected = NetworkAdapterClientException.class)
183         public void queryNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
184                 QueryNetworkError mockResponse = new QueryNetworkError();
185                 mockResponse.setMessage("Error in query network");
186
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)));
194
195                 client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
196                                 true, "testRequestId", "serviceInstanceId");
197         }
198
199         @Test
200         public void updateNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
201                 UpdateNetworkRequest request = new UpdateNetworkRequest();
202                 request.setCloudSiteId(TESTING_ID);
203                 request.setNetworkId("test1");
204
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)));
210
211                 UpdateNetworkResponse response = client.updateNetwork(AAI_NETWORK_ID, request);
212                 assertEquals("Testing UpdateVfModule response", "test1", response.getNetworkId());
213         }
214
215         @Test
216         public void updateNetworkTestAsync() throws NetworkAdapterClientException, JsonProcessingException {
217                 UpdateNetworkRequest request = new UpdateNetworkRequest();
218                 request.setCloudSiteId(TESTING_ID);
219                 request.setNetworkId("test1");
220
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)));
226
227                 Response response = client.updateNetworkAsync(AAI_NETWORK_ID, request);
228                 assertNotNull(response.getEntity());
229         }
230         
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");
236
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)));
242
243                 client.updateNetwork(AAI_NETWORK_ID, request);
244         }
245 }