Merge Casablanca
[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
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;
51
52 import com.fasterxml.jackson.core.JsonProcessingException;
53 import com.fasterxml.jackson.databind.ObjectMapper;
54
55 public class NetworkAdapterClientIT extends BaseIntegrationTest{
56
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";
60
61         private NetworkAdapterClientImpl client = new NetworkAdapterClientImpl();
62         private ObjectMapper mapper = new JettisonStyleMapperProvider().getMapper();
63
64         @BeforeClass
65         public static void setUp() {
66                 System.setProperty("mso.config.path", "src/test/resources");
67         }
68
69         @Test
70         public void createNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
71                 CreateNetworkRequest request = new CreateNetworkRequest();
72                 request.setCloudSiteId(TESTING_ID);
73
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)));
79
80                 CreateNetworkResponse response = client.createNetwork(request);
81                 assertEquals("Testing CreateVfModule response", true, response.getNetworkCreated());
82         }
83
84         @Test(expected = NetworkAdapterClientException.class)
85         public void createNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
86                 CreateNetworkRequest request = new CreateNetworkRequest();
87                 request.setCloudSiteId(TESTING_ID);
88
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)));
94
95                 client.createNetwork(request);
96         }
97
98         @Test
99         public void deleteNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
100                 DeleteNetworkRequest request = new DeleteNetworkRequest();
101                 request.setCloudSiteId(TESTING_ID);
102
103                 DeleteNetworkResponse mockResponse = new DeleteNetworkResponse();
104                 mockResponse.setNetworkDeleted(true);
105
106                 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
107                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
108                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
109
110                 DeleteNetworkResponse response = client.deleteNetwork(AAI_NETWORK_ID, request);
111                 assertEquals("Testing DeleteVfModule response", true, response.getNetworkDeleted());
112         }
113
114         @Test(expected = NetworkAdapterClientException.class)
115         public void deleteNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
116                 DeleteNetworkRequest request = new DeleteNetworkRequest();
117                 request.setCloudSiteId(TESTING_ID);
118
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)));
124
125                 client.deleteNetwork(AAI_NETWORK_ID, request);
126         }
127
128         @Test
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);
134
135                 RollbackNetworkResponse mockResponse = new RollbackNetworkResponse();
136                 mockResponse.setNetworkRolledBack(true);
137
138                 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
139                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
140                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
141
142                 RollbackNetworkResponse response = client.rollbackNetwork(AAI_NETWORK_ID, request);
143                 assertEquals("Testing DeleteVfModule response", true, response.getNetworkRolledBack());
144         }
145         
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);
152
153                 RollbackNetworkError mockResponse = new RollbackNetworkError();
154                 mockResponse.setMessage("Error in rollback network");
155
156                 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_NETWORK_ID))
157                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
158                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
159
160                 client.rollbackNetwork(AAI_NETWORK_ID, request);
161         }
162
163         @Test
164         public void queryNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
165                 QueryNetworkResponse mockResponse = new QueryNetworkResponse();
166                 mockResponse.setNetworkExists(true);
167
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)));
175
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());
179         }
180         
181         @Test(expected = NetworkAdapterClientException.class)
182         public void queryNetworkTestThrowException() throws NetworkAdapterClientException, JsonProcessingException {
183                 QueryNetworkError mockResponse = new QueryNetworkError();
184                 mockResponse.setMessage("Error in query network");
185
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)));
193
194                 client.queryNetwork(AAI_NETWORK_ID, TESTING_ID, TESTING_ID, "networkStackId",
195                                 true, "testRequestId", "serviceInstanceId");
196         }
197
198         @Test
199         public void updateNetworkTest() throws NetworkAdapterClientException, JsonProcessingException {
200                 UpdateNetworkRequest request = new UpdateNetworkRequest();
201                 request.setCloudSiteId(TESTING_ID);
202                 request.setNetworkId("test1");
203
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)));
209
210                 UpdateNetworkResponse response = client.updateNetwork(AAI_NETWORK_ID, request);
211                 assertEquals("Testing UpdateVfModule response", "test1", response.getNetworkId());
212         }
213         
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");
219
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)));
225
226                 client.updateNetwork(AAI_NETWORK_ID, request);
227         }
228 }