cb3d91b82ad1b316cc34b5db23c98288d98c02c4
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / client / adapter / vnf / VnfAdapterClientIT.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.vnf;
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
33 import org.junit.BeforeClass;
34 import org.junit.Test;
35 import org.onap.so.BaseIntegrationTest;
36 import org.onap.so.adapters.vnfrest.CreateVfModuleRequest;
37 import org.onap.so.adapters.vnfrest.CreateVfModuleResponse;
38 import org.onap.so.adapters.vnfrest.DeleteVfModuleRequest;
39 import org.onap.so.adapters.vnfrest.DeleteVfModuleResponse;
40 import org.onap.so.adapters.vnfrest.QueryVfModuleResponse;
41 import org.onap.so.adapters.vnfrest.RollbackVfModuleRequest;
42 import org.onap.so.adapters.vnfrest.RollbackVfModuleResponse;
43 import org.onap.so.adapters.vnfrest.UpdateVfModuleRequest;
44 import org.onap.so.adapters.vnfrest.UpdateVfModuleResponse;
45 import org.onap.so.adapters.vnfrest.VfModuleExceptionResponse;
46 import org.onap.so.adapters.vnfrest.VfModuleRollback;
47 import org.onap.so.client.policy.JettisonStyleMapperProvider;
48
49 import com.fasterxml.jackson.core.JsonProcessingException;
50 import com.fasterxml.jackson.databind.ObjectMapper;
51
52 public class VnfAdapterClientIT extends BaseIntegrationTest{
53
54         private static final String TESTING_ID = "___TESTING___";
55         private static final String AAI_VNF_ID = "test";
56         private static final String AAI_VF_MODULE_ID = "test";
57         private static final String REST_ENDPOINT = "/services/rest/v1/vnfs";
58
59         private VnfAdapterClientImpl client = new VnfAdapterClientImpl();
60         private ObjectMapper mapper = new JettisonStyleMapperProvider().getMapper();
61
62         @BeforeClass
63         public static void setUp() {
64                 System.setProperty("mso.config.path", "src/test/resources");
65         }
66
67         @Test
68         public void createVfModuleTest() throws JsonProcessingException, VnfAdapterClientException {
69                 CreateVfModuleRequest request = new CreateVfModuleRequest();
70                 request.setCloudSiteId(TESTING_ID);
71
72                 CreateVfModuleResponse mockResponse = new CreateVfModuleResponse();
73                 mockResponse.setVfModuleCreated(true);
74                 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_VNF_ID + "/vf-modules"))
75                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
76                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
77
78                 CreateVfModuleResponse response = client.createVfModule(AAI_VNF_ID, request);
79                 assertEquals("Testing CreateVfModule response", true, response.getVfModuleCreated());
80         }
81         
82         @Test(expected = VnfAdapterClientException.class)
83         public void createVfModuleTestThrowException() throws JsonProcessingException, VnfAdapterClientException {
84                 CreateVfModuleRequest request = new CreateVfModuleRequest();
85                 request.setCloudSiteId(TESTING_ID);
86
87                 VfModuleExceptionResponse mockResponse = new VfModuleExceptionResponse();
88                 mockResponse.setMessage("Error in create Vf module");
89                 stubFor(post(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_VNF_ID + "/vf-modules"))
90                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
91                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
92
93                 client.createVfModule(AAI_VNF_ID, request);
94         }
95
96         @Test
97         public void rollbackVfModuleTest() throws JsonProcessingException, VnfAdapterClientException {
98                 RollbackVfModuleRequest request = new RollbackVfModuleRequest();
99                 VfModuleRollback rollback = new VfModuleRollback();
100                 rollback.setCloudSiteId(TESTING_ID);
101                 request.setVfModuleRollback(rollback);
102
103                 RollbackVfModuleResponse mockResponse = new RollbackVfModuleResponse();
104                 mockResponse.setVfModuleRolledback(true);
105                 stubFor(
106                                 delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_VNF_ID + "/vf-modules/" + AAI_VF_MODULE_ID + "/rollback"))
107                                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
108                                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
109
110                 RollbackVfModuleResponse response = client.rollbackVfModule(AAI_VNF_ID, AAI_VF_MODULE_ID, request);
111                 assertEquals("Testing RollbackVfModule response", true, response.getVfModuleRolledback());
112         }
113         
114         @Test(expected = VnfAdapterClientException.class)
115         public void rollbackVfModuleTestThrowException() throws JsonProcessingException, VnfAdapterClientException {
116                 RollbackVfModuleRequest request = new RollbackVfModuleRequest();
117                 VfModuleRollback rollback = new VfModuleRollback();
118                 rollback.setCloudSiteId(TESTING_ID);
119                 request.setVfModuleRollback(rollback);
120
121                 VfModuleExceptionResponse mockResponse = new VfModuleExceptionResponse();
122                 mockResponse.setMessage("Error in rollback Vf module");
123                 stubFor(
124                                 delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_VNF_ID + "/vf-modules/" + AAI_VF_MODULE_ID + "/rollback"))
125                                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
126                                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
127
128                 client.rollbackVfModule(AAI_VNF_ID, AAI_VF_MODULE_ID, request);
129         }
130
131         @Test
132         public void deleteVfModuleTest() throws JsonProcessingException, VnfAdapterClientException {
133                 DeleteVfModuleRequest request = new DeleteVfModuleRequest();
134                 request.setCloudSiteId(TESTING_ID);
135
136                 DeleteVfModuleResponse mockResponse = new DeleteVfModuleResponse();
137                 mockResponse.setVfModuleDeleted(true);
138                 stubFor(delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_VNF_ID + "/vf-modules/" + AAI_VF_MODULE_ID))
139                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
140                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
141
142                 DeleteVfModuleResponse response = client.deleteVfModule(AAI_VNF_ID, AAI_VF_MODULE_ID, request);
143                 assertEquals("Testing DeleteVfModule response", true, response.getVfModuleDeleted());
144         }
145         
146         @Test(expected = VnfAdapterClientException.class)
147         public void deleteVfModuleTestThrowException() throws JsonProcessingException, VnfAdapterClientException {
148                 DeleteVfModuleRequest request = new DeleteVfModuleRequest();
149                 request.setCloudSiteId(TESTING_ID);
150
151                 VfModuleExceptionResponse mockResponse = new VfModuleExceptionResponse();
152                 mockResponse.setMessage("Error in delete Vf module");
153                 stubFor(delete(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_VNF_ID + "/vf-modules/" + AAI_VF_MODULE_ID))
154                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
155                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
156
157                 client.deleteVfModule(AAI_VNF_ID, AAI_VF_MODULE_ID, request);
158         }
159
160         @Test
161         public void updateVfModuleTest() throws JsonProcessingException, VnfAdapterClientException {
162                 UpdateVfModuleRequest request = new UpdateVfModuleRequest();
163                 request.setCloudSiteId(TESTING_ID);
164                 request.setVfModuleId("test1");
165
166                 UpdateVfModuleResponse mockResponse = new UpdateVfModuleResponse();
167                 mockResponse.setVfModuleId("test1");
168                 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_VNF_ID + "/vf-modules/" + AAI_VF_MODULE_ID))
169                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
170                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
171
172                 UpdateVfModuleResponse response = client.updateVfModule(AAI_VNF_ID, AAI_VF_MODULE_ID, request);
173                 assertEquals("Testing UpdateVfModule response", "test1", response.getVfModuleId());
174         }
175         
176         @Test(expected = VnfAdapterClientException.class)
177         public void updateVfModuleTestThrowException() throws JsonProcessingException, VnfAdapterClientException {
178                 UpdateVfModuleRequest request = new UpdateVfModuleRequest();
179                 request.setCloudSiteId(TESTING_ID);
180                 request.setVfModuleId("test1");
181
182                 VfModuleExceptionResponse mockResponse = new VfModuleExceptionResponse();
183                 mockResponse.setMessage("Error in update Vf module");
184                 stubFor(put(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_VNF_ID + "/vf-modules/" + AAI_VF_MODULE_ID))
185                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
186                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
187
188                 client.updateVfModule(AAI_VNF_ID, AAI_VF_MODULE_ID, request);
189         }
190
191         @Test
192         public void queryVfModuleTest() throws JsonProcessingException, VnfAdapterClientException {
193                 QueryVfModuleResponse mockResponse = new QueryVfModuleResponse();
194                 mockResponse.setVnfId(AAI_VNF_ID);
195                 mockResponse.setVfModuleId(AAI_VF_MODULE_ID);
196                 stubFor(get(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_VNF_ID + "/vf-modules/" + AAI_VF_MODULE_ID))
197                                 .withQueryParam("cloudSiteId", equalTo(TESTING_ID))
198                                 .withQueryParam("tenantId", equalTo(TESTING_ID))
199                                 .withQueryParam("vfModuleName", equalTo("someName"))
200                                 .withQueryParam("skipAAI", equalTo("true"))
201                                 .withQueryParam("msoRequest.requestId", equalTo("testRequestId"))
202                                 .withQueryParam("msoRequest.serviceInstanceId", equalTo("serviceInstanceId"))
203                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
204                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(200)));
205                 QueryVfModuleResponse response = client.queryVfModule(AAI_VNF_ID, AAI_VF_MODULE_ID, TESTING_ID, TESTING_ID,
206                                 "someName", true, "testRequestId", "serviceInstanceId");
207                 assertEquals("Testing QueryVfModule response", AAI_VF_MODULE_ID, response.getVfModuleId());
208         }
209         
210         @Test(expected = VnfAdapterClientException.class)
211         public void queryVfModuleTestThrowException() throws JsonProcessingException, VnfAdapterClientException {
212                 VfModuleExceptionResponse mockResponse = new VfModuleExceptionResponse();
213                 mockResponse.setMessage("Error in update Vf module");
214                 stubFor(get(urlPathEqualTo(REST_ENDPOINT + "/" + AAI_VNF_ID + "/vf-modules/" + AAI_VF_MODULE_ID))
215                                 .withQueryParam("cloudSiteId", equalTo(TESTING_ID))
216                                 .withQueryParam("tenantId", equalTo(TESTING_ID))
217                                 .withQueryParam("vfModuleName", equalTo("someName"))
218                                 .withQueryParam("skipAAI", equalTo("true"))
219                                 .withQueryParam("msoRequest.requestId", equalTo("testRequestId"))
220                                 .withQueryParam("msoRequest.serviceInstanceId", equalTo("serviceInstanceId"))
221                                 .willReturn(aResponse().withHeader("Content-Type", "application/json")
222                                                 .withBody(mapper.writeValueAsString(mockResponse)).withStatus(500)));
223                 client.queryVfModule(AAI_VNF_ID, AAI_VF_MODULE_ID, TESTING_ID, TESTING_ID,
224                                 "someName", true, "testRequestId", "serviceInstanceId");
225         }
226 }