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;
33 import static org.junit.Assert.*;
35 import java.io.StringReader;
36 import java.util.ArrayList;
37 import java.util.List;
39 import org.jboss.resteasy.spi.Registry;
40 import org.jboss.resteasy.spi.ResteasyProviderFactory;
41 import org.junit.AfterClass;
42 import org.junit.Before;
43 import org.junit.BeforeClass;
44 import org.junit.Test;
45 import org.junit.runner.RunWith;
46 import org.mockito.Mock;
47 import org.mockito.Mockito;
48 import org.mockito.runners.MockitoJUnitRunner;
49 import org.openecomp.mso.adapters.catalogdb.CatalogDbAdapterRest;
50 import org.openecomp.mso.db.catalog.CatalogDatabase;
51 import org.openecomp.mso.db.catalog.beans.AllottedResourceCustomization;
52 import org.openecomp.mso.db.catalog.beans.NetworkResourceCustomization;
53 import org.openecomp.mso.db.catalog.beans.ServiceMacroHolder;
54 import org.openecomp.mso.db.catalog.beans.VfModule;
55 import org.openecomp.mso.db.catalog.beans.VfModuleCustomization;
56 import org.openecomp.mso.db.catalog.beans.VnfResourceCustomization;
57 import org.powermock.api.mockito.PowerMockito;
58 import org.powermock.core.classloader.annotations.PowerMockIgnore;
59 import org.powermock.core.classloader.annotations.PrepareForTest;
60 import org.apache.http.HttpStatus;
61 import org.jboss.resteasy.client.jaxrs.ResteasyClient;
62 import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
63 import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
64 import org.powermock.modules.junit4.PowerMockRunner;
67 @RunWith(PowerMockRunner.class)
68 @PrepareForTest({CatalogDatabase.class})
69 @PowerMockIgnore("javax.net.ssl.*")
70 public class CatalogDbAdapterRestHttpTest {
72 private static CatalogDatabase dbMock;
73 private static TJWSEmbeddedJaxrsServer server;
74 private static final int PORT = 3099;
75 private static Registry registry;
76 private static ResteasyProviderFactory factory;
79 public static void beforeClass() throws Exception {
80 server = new TJWSEmbeddedJaxrsServer();
83 registry = server.getDeployment().getRegistry();
84 factory = server.getDeployment().getDispatcher().getProviderFactory();
85 registry.addPerRequestResource(CatalogDbAdapterRest.class);
86 factory.registerProvider(CatalogDbAdapterRest.class);
90 public void before() {
91 PowerMockito.mockStatic(CatalogDatabase.class);
92 dbMock = PowerMockito.mock(CatalogDatabase.class);
93 PowerMockito.when(CatalogDatabase.getInstance()).thenReturn(dbMock);
96 PowerMockito.whenNew(CatalogDatabase.class).withAnyArguments().thenReturn(dbMock);
98 } catch (Exception e) {
104 public void healthCheck_Test() {
105 ResteasyClient client = new ResteasyClientBuilder().build();
106 ResteasyWebTarget target = client.target("http://localhost:3099/v1/healthcheck");
107 Response response = target.request().get();
108 String value = response.readEntity(String.class);
109 assertTrue(value.contains("Application v1 ready"));
113 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() {
367 List<AllottedResourceCustomization> paramList;
368 // set up mock return value
369 paramList = new ArrayList<>();
370 AllottedResourceCustomization d1 = new AllottedResourceCustomization();
371 d1.setArModelUuid("0cb9b26a-9820-48a7-86e5-16c510e993d9");
373 PowerMockito.when(dbMock.getAllAllottedResourcesByArModelCustomizationUuid(Mockito.anyString())).thenReturn(paramList);
377 ResteasyClient client = new ResteasyClientBuilder().build();
378 ResteasyWebTarget target = client.target("http://localhost:3099/v1/allottedResources/0cb9b26a-9820-48a7-86e5-16c510e993d9");
379 Response response = target.request().get();
380 String value = response.readEntity(String.class);
382 // System.out.println(value);
384 // prepare to inspect response
385 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
386 JsonObject respObj = reader.readObject();
388 JsonArray jArray = respObj.getJsonArray("serviceAllottedResources");
389 assertTrue(jArray.size() == 1);
390 if (jArray.size() == 1) {
391 JsonObject rec = jArray.getJsonObject(0);
392 String uuid = rec.getString("arModelUuid");
394 assertTrue(uuid.equals("0cb9b26a-9820-48a7-86e5-16c510e993d9"));
398 } catch (Exception e) {
400 fail(e.getMessage());
406 public void serviceAllottedResourcesUrl_smiUuid_Test() {
408 List<AllottedResourceCustomization> paramList;
409 // set up mock return value
410 paramList = new ArrayList<>();
411 AllottedResourceCustomization d1 = new AllottedResourceCustomization();
412 d1.setArModelUuid("0cb9b26a-9820-48a7-86e5-16c510e993d9");
414 PowerMockito.when(dbMock.getAllAllottedResourcesByServiceModelInvariantUuid(Mockito.anyString(), Mockito.anyString())).thenReturn(paramList);
418 ResteasyClient client = new ResteasyClientBuilder().build();
419 ResteasyWebTarget target = client.target("http://localhost:3099/v1/serviceAllottedResources?serviceModelInvariantUuid=0cb9b26a-9820-48a7-86e5-16c510e993d9&serviceModelVersion=ver1");
420 Response response = target.request().get();
421 String value = response.readEntity(String.class);
423 // System.out.println(value);
425 // prepare to inspect response
426 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
427 JsonObject respObj = reader.readObject();
429 JsonArray jArray = respObj.getJsonArray("serviceAllottedResources");
430 assertTrue(jArray.size() == 1);
431 if (jArray.size() == 1) {
432 JsonObject rec = jArray.getJsonObject(0);
433 String uuid = rec.getString("arModelUuid");
435 assertTrue(uuid.equals("0cb9b26a-9820-48a7-86e5-16c510e993d9"));
439 } catch (Exception e) {
441 fail(e.getMessage());
446 public void vfModulesUrl_modelName_Test() {
448 // set up mock return value
449 VfModule vfm = new VfModule();
450 vfm.setModelName("test Model");
451 vfm.setModelUUID("0cb9b26a-9820-48a7-86e5-16c510e993d9");
453 VfModuleCustomization ret = new VfModuleCustomization();
454 ret.setVfModule(vfm);
455 PowerMockito.when(dbMock.getVfModuleCustomizationByModelName(Mockito.anyString())).thenReturn(ret);
459 ResteasyClient client = new ResteasyClientBuilder().build();
460 ResteasyWebTarget target = client.target("http://localhost:3099/v1/vfModules?vfModuleModelName=0cb9b26a-9820-48a7-86e5-16c510e993d9");
461 Response response = target.request().get();
462 String value = response.readEntity(String.class);
464 // System.out.println(value);
466 // prepare to inspect response
467 JsonReader reader = Json.createReader(new StringReader(value.replaceAll("\r?\n", "")));
468 JsonObject respObj = reader.readObject();
470 JsonObject jObj = respObj.getJsonObject("modelInfo");
471 String uuid = jObj.getString("modelUuid");
472 String name = jObj.getString("modelName");
473 assertTrue(uuid.equals("0cb9b26a-9820-48a7-86e5-16c510e993d9"));
474 assertTrue(name.equals("test Model"));
477 } catch (Exception e) {
479 fail(e.getMessage());
484 public static void afterClass() throws Exception {