delete with payload does not work
[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.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;
53
54 import com.fasterxml.jackson.core.JsonProcessingException;
55 import com.fasterxml.jackson.databind.ObjectMapper;
56
57 public class NetworkAdapterClientIT extends BaseIntegrationTest{
58
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";
62
63         private NetworkAdapterClientImpl client = new NetworkAdapterClientImpl();
64         private ObjectMapper mapper = new JettisonStyleMapperProvider().getMapper();
65
66         @BeforeClass
67         public static void setUp() {
68                 System.setProperty("mso.config.path", "src/test/resources");
69         }
70
71         @Test
72         public void createNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
73                 CreateNetworkRequest request = new CreateNetworkRequest();
74                 request.setCloudSiteId(TESTING_ID);
75
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)));
81
82                 CreateNetworkResponse response = client.createNetwork(request);
83                 assertEquals("Testing CreateVfModule response", true, response.getNetworkCreated());
84         }
85
86         @Test(expected = NetworkAdapterClientException.class)
87         public void createNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
88                 CreateNetworkRequest request = new CreateNetworkRequest();
89                 request.setCloudSiteId(TESTING_ID);
90
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)));
96
97                 client.createNetwork(request);
98         }
99
100         @Test
101         public void deleteNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
102                 DeleteNetworkRequest request = new DeleteNetworkRequest();
103                 request.setCloudSiteId(TESTING_ID);
104
105                 DeleteNetworkResponse mockResponse = new DeleteNetworkResponse();
106                 mockResponse.setNetworkDeleted(true);
107
108                 stubFor(delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
109                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
110                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
111
112                 DeleteNetworkResponse response = client.deleteNetwork(AAI_NETWORK_ID, request);
113                 assertEquals("Testing DeleteVfModule response", true, response.getNetworkDeleted());
114         }
115
116         @Test(expected = NetworkAdapterClientException.class)
117         public void deleteNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
118                 DeleteNetworkRequest request = new DeleteNetworkRequest();
119                 request.setCloudSiteId(TESTING_ID);
120
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)));
126
127                 client.deleteNetwork(AAI_NETWORK_ID, request);
128         }
129
130         @Test
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);
136
137                 RollbackNetworkResponse mockResponse = new RollbackNetworkResponse();
138                 mockResponse.setNetworkRolledBack(true);
139
140                 stubFor(delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
141                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
142                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
143
144                 RollbackNetworkResponse response = client.rollbackNetwork(AAI_NETWORK_ID, request);
145                 assertEquals("Testing DeleteVfModule response", true, response.getNetworkRolledBack());
146         }
147         
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);
154
155                 RollbackNetworkError mockResponse = new RollbackNetworkError();
156                 mockResponse.setMessage("Error in rollback network");
157
158                 stubFor(delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
159                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
160                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
161
162                 client.rollbackNetwork(AAI_NETWORK_ID, request);
163         }
164
165         @Test
166         public void queryNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
167                 QueryNetworkResponse mockResponse = new QueryNetworkResponse();
168                 mockResponse.setNetworkExists(true);
169
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)));
177
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());
181         }
182         
183         @Test(expected = NetworkAdapterClientException.class)
184         public void queryNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
185                 QueryNetworkError mockResponse = new QueryNetworkError();
186                 mockResponse.setMessage("Error in query network");
187
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)));
195
196                 client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
197                                 true, "testRequestId", "serviceInstanceId");
198         }
199
200         @Test
201         public void updateNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
202                 UpdateNetworkRequest request = new UpdateNetworkRequest();
203                 request.setCloudSiteId(TESTING_ID);
204                 request.setNetworkId("test1");
205
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)));
211
212                 UpdateNetworkResponse response = client.updateNetwork(AAI_NETWORK_ID, request);
213                 assertEquals("Testing UpdateVfModule response", "test1", response.getNetworkId());
214         }
215
216         @Test
217         public void updateNetworkTestAsync() throws NetworkAdapterClientException, JsonProcessingException {
218                 UpdateNetworkRequest request = new UpdateNetworkRequest();
219                 request.setCloudSiteId(TESTING_ID);
220                 request.setNetworkId("test1");
221
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)));
227
228                 Response response = client.updateNetworkAsync(AAI_NETWORK_ID, request);
229                 assertNotNull(response.getEntity());
230         }
231         
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");
237
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)));
243
244                 client.updateNetwork(AAI_NETWORK_ID, request);
245         }
246 }