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.openecomp.mso.adapters.catalogdb;
23 import javax.json.Json;
24 import javax.json.JsonArray;
25 import javax.json.JsonObject;
26 import javax.json.JsonReader;
27 import javax.ws.rs.core.HttpHeaders;
28 import javax.ws.rs.core.MediaType;
29 import javax.ws.rs.core.Response;
31 import org.jboss.resteasy.plugins.server.tjws.TJWSEmbeddedJaxrsServer;
32 import static org.junit.Assert.*;
34 import java.io.StringReader;
35 import java.util.ArrayList;
36 import java.util.List;
38 import org.jboss.resteasy.spi.Registry;
39 import org.jboss.resteasy.spi.ResteasyProviderFactory;
40 import org.junit.AfterClass;
41 import org.junit.Before;
42 import org.junit.BeforeClass;
43 import org.junit.Test;
44 import org.junit.runner.RunWith;
45 import org.mockito.Mock;
46 import org.mockito.Mockito;
47 import org.mockito.runners.MockitoJUnitRunner;
48 import org.openecomp.mso.adapters.catalogdb.CatalogDbAdapterRest;
49 import org.openecomp.mso.db.catalog.CatalogDatabase;
50 import org.openecomp.mso.db.catalog.beans.AllottedResourceCustomization;
51 import org.openecomp.mso.db.catalog.beans.NetworkResourceCustomization;
52 import org.openecomp.mso.db.catalog.beans.ServiceMacroHolder;
53 import org.openecomp.mso.db.catalog.beans.VfModule;
54 import org.openecomp.mso.db.catalog.beans.VfModuleCustomization;
55 import org.openecomp.mso.db.catalog.beans.VnfResourceCustomization;
56 import org.powermock.api.mockito.PowerMockito;
57 import org.powermock.core.classloader.annotations.PowerMockIgnore;
58 import org.powermock.core.classloader.annotations.PrepareForTest;
59 import org.apache.http.HttpStatus;
60 import org.jboss.resteasy.client.jaxrs.ResteasyClient;
61 import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
62 import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
63 import org.powermock.modules.junit4.PowerMockRunner;
66 @RunWith(PowerMockRunner.class)
67 @PrepareForTest({CatalogDatabase.class})
68 @PowerMockIgnore("javax.net.ssl.*")
69 public class CatalogDbAdapterRestHttpTest {
71 private static CatalogDatabase dbMock;
72 private static TJWSEmbeddedJaxrsServer server;
73 private static final int PORT = 3099;
74 private static Registry registry;
75 private static ResteasyProviderFactory factory;
78 public static void beforeClass() throws Exception {
79 server = new TJWSEmbeddedJaxrsServer();
82 registry = server.getDeployment().getRegistry();
83 factory = server.getDeployment().getDispatcher().getProviderFactory();
84 registry.addPerRequestResource(CatalogDbAdapterRest.class);
85 factory.registerProvider(CatalogDbAdapterRest.class);
90 PowerMockito.mockStatic(CatalogDatabase.class);
91 dbMock = PowerMockito.mock(CatalogDatabase.class);
92 PowerMockito.when(CatalogDatabase.getInstance()).thenReturn(dbMock);
95 PowerMockito.whenNew(CatalogDatabase.class).withAnyArguments().thenReturn(dbMock);
97 } catch (Exception e) {
103 public void healthCheck_Test(){
104 ResteasyClient client = new ResteasyClientBuilder().build();
105 ResteasyWebTarget target = client.target("http://localhost:3099/v1/healthcheck");
106 Response response = target.request().get();
107 String value = response.readEntity(String.class);
108 assertTrue(value.contains("Application v1 ready"));
112 public void vnfResourcesUrl_Test()
115 List<VnfResourceCustomization> paramList;
116 // set up mock return value
117 paramList = new ArrayList<>();
118 VnfResourceCustomization d1 = new VnfResourceCustomization();
119 d1.setModelCustomizationUuid("16ea3e56-a8ce-4ad7-8edd-4d2eae095391");
120 d1.setModelInstanceName("RG_6-26_mog11 0");
123 PowerMockito.when(dbMock.getAllVnfsByVnfModelCustomizationUuid(Mockito.anyString())).thenReturn (paramList);
127 ResteasyClient client = new ResteasyClientBuilder().build();
128 ResteasyWebTarget target = client.target("http://localhost:3099/v1/vnfResources/16ea3e56-a8ce-4ad7-8edd-4d2eae095391");
129 Response response = target.request().get();
130 String value = response.readEntity(String.class);
132 // prepare to inspect response
133 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
134 JsonObject respObj = reader.readObject();
136 JsonArray jArray = respObj.getJsonArray("serviceVnfs");
137 assertTrue(jArray.size() == 1);
138 if(jArray.size() == 1){
139 JsonObject rec = jArray.getJsonObject(0);
140 String version = rec.getString("version");
141 String uuid = rec.getString("modelCustomizationUuid");
143 assertTrue(version.equals("v1"));
144 assertTrue(uuid.equals("16ea3e56-a8ce-4ad7-8edd-4d2eae095391"));
147 } catch (Exception e) {
153 public void serviceVnfsUrl_smiUuid_smVer_Test(){
155 List<VnfResourceCustomization> paramList;
156 // set up mock return value
157 paramList = new ArrayList<>();
158 VnfResourceCustomization d1 = new VnfResourceCustomization();
159 d1.setVnfResourceModelUuid("16ea3e56-a8ce-4ad7-8edd-4d2eae095391");
160 d1.setModelInstanceName("RG_6-26_mog11 0");
162 d1.setMaxInstances(50);
164 PowerMockito.when(dbMock.getAllVnfsByServiceModelInvariantUuid(Mockito.anyString(),Mockito.anyString())).thenReturn (paramList);
168 ResteasyClient client = new ResteasyClientBuilder().build();
169 ResteasyWebTarget target = client.target("http://localhost:3099/v1/serviceVnfs?serviceModelInvariantUuid=16ea3e56-a8ce-4ad7-8edd-4d2eae095391&serviceModelVersion=ver1");
170 Response response = target.request().get();
171 String value = response.readEntity(String.class);
173 // prepare to inspect response
174 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
175 JsonObject respObj = reader.readObject();
177 JsonArray jArray = respObj.getJsonArray("serviceVnfs");
178 assertTrue(jArray.size() == 1);
179 if(jArray.size() == 1){
180 JsonObject rec = jArray.getJsonObject(0);
181 String version = rec.getString("version");
182 String uuid = rec.getString("vnfResourceModelUuid");
183 int maxInstance = rec.getInt("maxInstances");
185 assertTrue(version.equals("v1"));
186 assertTrue(uuid.equals("16ea3e56-a8ce-4ad7-8edd-4d2eae095391"));
187 assertTrue(maxInstance == 50);
190 } catch (Exception e) {
192 fail(e.getMessage());
197 public void serviceVnfsUrl_vnfUuid_Test(){
199 List<VnfResourceCustomization> paramList;
200 // set up mock return value
201 paramList = new ArrayList<>();
202 VnfResourceCustomization d1 = new VnfResourceCustomization();
203 d1.setModelCustomizationUuid("16ea3e56-a8ce-4ad7-8edd-4d2eae095391");
204 d1.setModelInstanceName("RG_6-26_mog11 0");
207 PowerMockito.when(dbMock.getAllVnfsByVnfModelCustomizationUuid(Mockito.anyString())).thenReturn (paramList);
211 ResteasyClient client = new ResteasyClientBuilder().build();
212 ResteasyWebTarget target = client.target("http://localhost:3099/v1/serviceVnfs?vnfModelCustomizationUuid=16ea3e56-a8ce-4ad7-8edd-4d2eae095391");
213 Response response = target.request().get();
214 String value = response.readEntity(String.class);
216 // System.out.println(value);
218 // prepare to inspect response
219 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
220 JsonObject respObj = reader.readObject();
222 JsonArray jArray = respObj.getJsonArray("serviceVnfs");
223 assertTrue(jArray.size() == 1);
224 if(jArray.size() == 1){
225 JsonObject rec = jArray.getJsonObject(0);
226 String version = rec.getString("version");
227 String uuid = rec.getString("modelCustomizationUuid");
229 assertTrue(version.equals("v1"));
230 assertTrue(uuid.equals("16ea3e56-a8ce-4ad7-8edd-4d2eae095391"));
234 } catch (Exception e) {
236 fail(e.getMessage());
241 public void networkResourcesUrl_nUuid_Ver_Test(){
243 List<NetworkResourceCustomization> paramList;
244 // set up mock return value
245 paramList = new ArrayList<>();
246 NetworkResourceCustomization d1 = new NetworkResourceCustomization();
247 d1.setNetworkResourceModelUuid("0cb9b26a-9820-48a7-86e5-16c510e993d9");
249 PowerMockito.when(dbMock.getAllNetworksByNetworkModelCustomizationUuid(Mockito.anyString())).thenReturn (paramList);
253 ResteasyClient client = new ResteasyClientBuilder().build();
254 ResteasyWebTarget target = client.target("http://localhost:3099/v1/networkResources/0cb9b26a-9820-48a7-86e5-16c510e993d9");
255 Response response = target.request().get();
256 String value = response.readEntity(String.class);
258 // System.out.println(value);
260 // prepare to inspect response
261 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
262 JsonObject respObj = reader.readObject();
264 JsonArray jArray = respObj.getJsonArray("serviceNetworks");
265 assertTrue(jArray.size() == 1);
266 if(jArray.size() == 1){
267 JsonObject rec = jArray.getJsonObject(0);
268 String uuid = rec.getString("networkResourceModelUuid");
270 assertTrue(uuid.equals("0cb9b26a-9820-48a7-86e5-16c510e993d9"));
274 } catch (Exception e) {
276 fail(e.getMessage());
281 public void serviceNetworksUrl_nType_Test(){
283 List<NetworkResourceCustomization> paramList;
284 // set up mock return value
285 paramList = new ArrayList<>();
286 NetworkResourceCustomization d1 = new NetworkResourceCustomization();
287 d1.setNetworkResourceModelUuid("0cb9b26a-9820-48a7-86e5-16c510e993d9");
289 PowerMockito.when(dbMock.getAllNetworksByNetworkType(Mockito.anyString())).thenReturn (paramList);
293 ResteasyClient client = new ResteasyClientBuilder().build();
294 ResteasyWebTarget target = client.target("http://localhost:3099/v1/serviceNetworks?networkModelName=0cb9b26a-9820-48a7-86e5-16c510e993d9");
295 Response response = target.request().get();
296 String value = response.readEntity(String.class);
298 // System.out.println(value);
300 // prepare to inspect response
301 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
302 JsonObject respObj = reader.readObject();
304 JsonArray jArray = respObj.getJsonArray("serviceNetworks");
305 assertTrue(jArray.size() == 1);
306 if(jArray.size() == 1){
307 JsonObject rec = jArray.getJsonObject(0);
308 String uuid = rec.getString("networkResourceModelUuid");
310 assertTrue(uuid.equals("0cb9b26a-9820-48a7-86e5-16c510e993d9"));
314 } catch (Exception e) {
316 fail(e.getMessage());
321 public void serviceResourcesUrl_smiUuid_Ver_Test(){
323 ArrayList<NetworkResourceCustomization> paramList;
324 // set up mock return value
325 paramList = new ArrayList<>();
326 NetworkResourceCustomization d1 = new NetworkResourceCustomization();
327 d1.setNetworkResourceModelUuid("0cb9b26a-9820-48a7-86e5-16c510e993d9");
329 ServiceMacroHolder ret = new ServiceMacroHolder();
330 ret.setNetworkResourceCustomization(paramList);
331 PowerMockito.when(dbMock.getAllResourcesByServiceModelInvariantUuid(Mockito.anyString(),Mockito.anyString())).thenReturn (ret);
335 ResteasyClient client = new ResteasyClientBuilder().build();
336 ResteasyWebTarget target = client.target("http://localhost:3099/v1/serviceResources?serviceModelInvariantUuid=0cb9b26a-9820-48a7-86e5-16c510e993d9&serviceModelVersion=ver1");
337 Response response = target.request().get();
338 String value = response.readEntity(String.class);
340 // System.out.println(value);
342 // prepare to inspect response
343 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
344 JsonObject respObj = reader.readObject();
346 JsonObject obj = respObj.getJsonObject("serviceResources");
347 JsonArray jArray = obj.getJsonArray("networkResourceCustomization");
348 assertTrue(jArray.size() == 1);
350 if(jArray.size() == 1){
351 JsonObject rec = jArray.getJsonObject(0);
352 String uuid = rec.getString("networkResourceModelUuid");
354 assertTrue(uuid.equals("0cb9b26a-9820-48a7-86e5-16c510e993d9"));
358 } catch (Exception e) {
360 fail(e.getMessage());
365 public void allottedResourcesUrl_aUuid_Test()
368 List<AllottedResourceCustomization> paramList;
369 // set up mock return value
370 paramList = new ArrayList<>();
371 AllottedResourceCustomization d1 = new AllottedResourceCustomization();
372 d1.setArModelUuid("0cb9b26a-9820-48a7-86e5-16c510e993d9");
374 PowerMockito.when(dbMock.getAllAllottedResourcesByArModelCustomizationUuid(Mockito.anyString())).thenReturn (paramList);
378 ResteasyClient client = new ResteasyClientBuilder().build();
379 ResteasyWebTarget target = client.target("http://localhost:3099/v1/allottedResources/0cb9b26a-9820-48a7-86e5-16c510e993d9");
380 Response response = target.request().get();
381 String value = response.readEntity(String.class);
383 // System.out.println(value);
385 // prepare to inspect response
386 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
387 JsonObject respObj = reader.readObject();
389 JsonArray jArray = respObj.getJsonArray("serviceAllottedResources");
390 assertTrue(jArray.size() == 1);
391 if(jArray.size() == 1){
392 JsonObject rec = jArray.getJsonObject(0);
393 String uuid = rec.getString("arModelUuid");
395 assertTrue(uuid.equals("0cb9b26a-9820-48a7-86e5-16c510e993d9"));
399 } catch (Exception e) {
401 fail(e.getMessage());
407 public void serviceAllottedResourcesUrl_smiUuid_Test()
410 List<AllottedResourceCustomization> paramList;
411 // set up mock return value
412 paramList = new ArrayList<>();
413 AllottedResourceCustomization d1 = new AllottedResourceCustomization();
414 d1.setArModelUuid("0cb9b26a-9820-48a7-86e5-16c510e993d9");
416 PowerMockito.when(dbMock.getAllAllottedResourcesByServiceModelInvariantUuid(Mockito.anyString(), Mockito.anyString())).thenReturn (paramList);
420 ResteasyClient client = new ResteasyClientBuilder().build();
421 ResteasyWebTarget target = client.target("http://localhost:3099/v1/serviceAllottedResources?serviceModelInvariantUuid=0cb9b26a-9820-48a7-86e5-16c510e993d9&serviceModelVersion=ver1");
422 Response response = target.request().get();
423 String value = response.readEntity(String.class);
425 // System.out.println(value);
427 // prepare to inspect response
428 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
429 JsonObject respObj = reader.readObject();
431 JsonArray jArray = respObj.getJsonArray("serviceAllottedResources");
432 assertTrue(jArray.size() == 1);
433 if(jArray.size() == 1){
434 JsonObject rec = jArray.getJsonObject(0);
435 String uuid = rec.getString("arModelUuid");
437 assertTrue(uuid.equals("0cb9b26a-9820-48a7-86e5-16c510e993d9"));
441 } catch (Exception e) {
443 fail(e.getMessage());
448 public void vfModulesUrl_modelName_Test()
451 // set up mock return value
452 VfModule vfm = new VfModule();
453 vfm.setModelName("test Model");
454 vfm.setModelUUID("0cb9b26a-9820-48a7-86e5-16c510e993d9");
456 VfModuleCustomization ret = new VfModuleCustomization();
457 ret.setVfModule(vfm);
458 PowerMockito.when(dbMock.getVfModuleCustomizationByModelName(Mockito.anyString())).thenReturn (ret);
462 ResteasyClient client = new ResteasyClientBuilder().build();
463 ResteasyWebTarget target = client.target("http://localhost:3099/v1/vfModules?vfModuleModelName=0cb9b26a-9820-48a7-86e5-16c510e993d9");
464 Response response = target.request().get();
465 String value = response.readEntity(String.class);
467 // System.out.println(value);
469 // prepare to inspect response
470 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
471 JsonObject respObj = reader.readObject();
473 JsonObject jObj = respObj.getJsonObject("modelInfo");
474 String uuid = jObj.getString("modelUuid");
475 String name = jObj.getString("modelName");
476 assertTrue(uuid.equals("0cb9b26a-9820-48a7-86e5-16c510e993d9"));
477 assertTrue(name.equals("test Model"));
480 } catch (Exception e) {
482 fail(e.getMessage());
487 public static void afterClass() throws Exception {