2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END============================================
20 * ===================================================================
21 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
24 package org.onap.clamp.clds.it;
26 import static org.junit.Assert.assertTrue;
28 import java.util.LinkedList;
29 import java.util.List;
31 import org.apache.commons.io.IOUtils;
32 import org.junit.Test;
33 import org.junit.runner.RunWith;
34 import org.mockito.Mockito;
35 import org.onap.clamp.clds.AbstractIT;
36 import org.onap.clamp.clds.client.SdcCatalogServices;
37 import org.onap.clamp.clds.model.CldsAlarmCondition;
38 import org.onap.clamp.clds.model.CldsSdcResource;
39 import org.onap.clamp.clds.model.CldsSdcResourceBasicInfo;
40 import org.onap.clamp.clds.model.CldsSdcServiceInfo;
41 import org.onap.clamp.clds.model.CldsServiceData;
42 import org.springframework.beans.factory.annotation.Autowired;
43 import org.springframework.boot.test.context.SpringBootTest;
44 import org.springframework.test.context.junit4.SpringRunner;
47 * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE
50 @RunWith(SpringRunner.class)
52 public class SdcCatalogServicesIT extends AbstractIT {
54 private SdcCatalogServices sdcCatalogWired = new SdcCatalogServices();
57 public void removeDuplicateServicesTest() throws Exception {
58 SdcCatalogServices catalogServices = new SdcCatalogServices();
59 List<CldsSdcServiceInfo> rawCldsSdcServiceList = new LinkedList<CldsSdcServiceInfo>();
61 CldsSdcServiceInfo service1a = new CldsSdcServiceInfo();
62 service1a.setName("service1");
63 service1a.setVersion("1.0");
64 service1a.setInvariantUUID("invariantUUID1.0");
65 rawCldsSdcServiceList.add(service1a);
66 rawCldsSdcServiceList.add(service1a);
68 CldsSdcServiceInfo service1b = new CldsSdcServiceInfo();
69 service1b.setName("service1");
70 service1b.setVersion("1.1");
71 service1b.setInvariantUUID("invariantUUID1.1");
72 rawCldsSdcServiceList.add(service1b);
74 CldsSdcServiceInfo service1c = new CldsSdcServiceInfo();
75 service1c.setName("service1");
76 service1c.setVersion("1.2");
77 service1c.setInvariantUUID("invariantUUID1.2");
78 rawCldsSdcServiceList.add(service1c);
80 CldsSdcServiceInfo service2 = new CldsSdcServiceInfo();
81 service2.setName("service2");
82 service2.setVersion("1.0");
83 service2.setInvariantUUID("invariantUUID2.0");
84 rawCldsSdcServiceList.add(service2);
86 List<CldsSdcServiceInfo> resultList = catalogServices.removeDuplicateServices(rawCldsSdcServiceList);
88 assertTrue(resultList.size() == 2);
90 CldsSdcServiceInfo res1, res2;
91 if ("service1".equals(resultList.get(0).getName())) {
92 res1 = resultList.get(0);
93 res2 = resultList.get(1);
95 res1 = resultList.get(1);
96 res2 = resultList.get(0);
99 assertTrue("service1".equals(res1.getName()));
100 assertTrue("1.2".equals(res1.getVersion()));
102 assertTrue("service2".equals(res2.getName()));
103 assertTrue("1.0".equals(res2.getVersion()));
108 public void removeDuplicateSdcResourceInstancesTest() {
109 SdcCatalogServices catalogServices = new SdcCatalogServices();
110 List<CldsSdcResource> rawCldsSdcResourceList = new LinkedList<CldsSdcResource>();
112 CldsSdcResource sdcResource1a = new CldsSdcResource();
113 sdcResource1a.setResourceInstanceName("resource1");
114 sdcResource1a.setResourceVersion("1.0");
115 rawCldsSdcResourceList.add(sdcResource1a);
117 CldsSdcResource sdcResource1b = new CldsSdcResource();
118 sdcResource1b.setResourceInstanceName("resource1");
119 sdcResource1b.setResourceVersion("1.1");
120 rawCldsSdcResourceList.add(sdcResource1b);
122 CldsSdcResource sdcResource1c = new CldsSdcResource();
123 sdcResource1c.setResourceInstanceName("resource1");
124 sdcResource1c.setResourceVersion("1.2");
125 rawCldsSdcResourceList.add(sdcResource1c);
127 CldsSdcResource sdcResource2 = new CldsSdcResource();
128 sdcResource2.setResourceInstanceName("resource2");
129 sdcResource2.setResourceVersion("1.0");
130 rawCldsSdcResourceList.add(sdcResource2);
132 List<CldsSdcResource> resultList = catalogServices.removeDuplicateSdcResourceInstances(rawCldsSdcResourceList);
134 CldsSdcResource res1, res2;
135 if ("resource1".equals(resultList.get(0).getResourceInstanceName())) {
136 res1 = resultList.get(0);
137 res2 = resultList.get(1);
139 res1 = resultList.get(1);
140 res2 = resultList.get(0);
143 assertTrue("resource1".equals(res1.getResourceInstanceName()));
144 assertTrue("1.2".equals(res1.getResourceVersion()));
146 assertTrue("resource2".equals(res2.getResourceInstanceName()));
147 assertTrue("1.0".equals(res2.getResourceVersion()));
152 public void removeDuplicateSdcResourceBasicInfoTest() {
154 SdcCatalogServices catalogServices = new SdcCatalogServices();
155 List<CldsSdcResourceBasicInfo> rawCldsSdcResourceList = new LinkedList<CldsSdcResourceBasicInfo>();
157 CldsSdcResourceBasicInfo sdcResource1a = new CldsSdcResourceBasicInfo();
158 sdcResource1a.setName("resource1");
159 sdcResource1a.setVersion("1.0");
160 rawCldsSdcResourceList.add(sdcResource1a);
162 CldsSdcResourceBasicInfo sdcResource1b = new CldsSdcResourceBasicInfo();
163 sdcResource1b.setName("resource1");
164 sdcResource1b.setVersion("1.1");
165 rawCldsSdcResourceList.add(sdcResource1b);
167 CldsSdcResourceBasicInfo sdcResource1c = new CldsSdcResourceBasicInfo();
168 sdcResource1c.setName("resource1");
169 sdcResource1c.setVersion("1.2");
170 rawCldsSdcResourceList.add(sdcResource1c);
172 CldsSdcResourceBasicInfo sdcResource2 = new CldsSdcResourceBasicInfo();
173 sdcResource2.setName("resource2");
174 sdcResource2.setVersion("1.0");
175 rawCldsSdcResourceList.add(sdcResource2);
177 List<CldsSdcResourceBasicInfo> resultList = catalogServices
178 .removeDuplicateSdcResourceBasicInfo(rawCldsSdcResourceList);
180 CldsSdcResourceBasicInfo res1, res2;
181 if ("resource1".equals(resultList.get(0).getName())) {
182 res1 = resultList.get(0);
183 res2 = resultList.get(1);
185 res1 = resultList.get(1);
186 res2 = resultList.get(0);
189 assertTrue("resource1".equals(res1.getName()));
190 assertTrue("1.2".equals(res1.getVersion()));
192 assertTrue("resource2".equals(res2.getName()));
193 assertTrue("1.0".equals(res2.getVersion()));
198 public void getServiceUuidFromServiceInvariantIdTest() throws Exception {
199 SdcCatalogServices aSpy = Mockito.spy(sdcCatalogWired);
200 Mockito.when(aSpy.getSdcServicesInformation(null)).thenReturn(IOUtils.toString(
201 SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcServicesListExample.json"), "UTF-8"));
203 // Try the vcts4 version 1.0, this one should be replaced by 1.1 so it
204 // should not exist, returning empty string
205 String resUuidVcts4Null = aSpy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d9b");
206 assertTrue("".equals(resUuidVcts4Null));
208 // Try the vcts4 version 1.1, this one should be there as it replaces
210 String resUuidVcts4Latest = aSpy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d9c");
211 assertTrue("29018914-966c-442d-9d08-251b9dc45b8f".equals(resUuidVcts4Latest));
213 // Try the vcts5 version 1.0, this one should be there
214 String resUuidVcts5 = aSpy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d8c");
215 assertTrue("29018914-966c-442d-9d08-251b9dc45b7f".equals(resUuidVcts5));
217 // try one that does not exist at all
218 String resUuidUnknown = aSpy.getServiceUuidFromServiceInvariantId("testuuid");
219 assertTrue("".equals(resUuidUnknown));
224 public void getCldsServiceDataWithAlarmConditionsTest() throws Exception {
225 SdcCatalogServices aSpy = Mockito.spy(sdcCatalogWired);
226 Mockito.when(aSpy.getSdcServicesInformation(null)).thenReturn(IOUtils.toString(
227 SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcServicesListExample.json"), "UTF-8"));
229 // This invariant uuid is the one from vcts4 v1.1
230 String serviceResourceDetailUrl = refProp.getStringValue("sdc.serviceUrl")
231 + "/29018914-966c-442d-9d08-251b9dc45b8f/metadata";
232 Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(serviceResourceDetailUrl, false))
233 .thenReturn(IOUtils.toString(
234 SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcServiceDetailsExample.json"),
237 String resourceDetailUrl = refProp.getStringValue("sdc.catalog.url")
238 + "resources/585822c7-4027-4f84-ba50-e9248606f136/metadata";
239 Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(resourceDetailUrl, false))
240 .thenReturn(IOUtils.toString(
241 SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcResourceDetailsExample.json"),
244 String securityRulesDetailUrl = refProp.getStringValue("sdc.catalog.url")
245 + "resources/d57e57d2-e3c6-470d-8d16-e6ea05f536c5/metadata";
246 Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(securityRulesDetailUrl, false)).thenReturn(
247 IOUtils.toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcSecurityRules.json"),
250 String cinderVolumeDetailUrl = refProp.getStringValue("sdc.catalog.url")
251 + "resources/b4288e07-597a-44a2-aa98-ad36e551a39d/metadata";
252 Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(cinderVolumeDetailUrl, false)).thenReturn(
253 IOUtils.toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcCinderVolume.json"),
256 String vfcGenericDetailUrl = refProp.getStringValue("sdc.catalog.url")
257 + "resources/2c8f1219-8000-4001-aa13-496a0396d40f/metadata";
258 Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(vfcGenericDetailUrl, false)).thenReturn(IOUtils.toString(
259 SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFCGenericWithAlarms.json"), "UTF-8"));
261 String csvDetailUrl = "/sdc/v1/catalog/resources/84855843-5247-4e97-a2bd-5395a510253b/artifacts/d57ac7ec-f3c3-4793-983a-c75ac3a43153";
262 Mockito.when(aSpy.getResponsesFromArtifactUrl(csvDetailUrl)).thenReturn(IOUtils.toString(
263 SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcMeasurementsList.csv"), "UTF-8"));
265 String csvAlarmsDetailUrl = "/sdc/v1/catalog/resources/2c8f1219-8000-4001-aa13-496a0396d40f/resourceInstances/virc_fe_be/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392";
266 Mockito.when(aSpy.getResponsesFromArtifactUrl(csvAlarmsDetailUrl)).thenReturn(IOUtils
267 .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8"));
269 String allVfResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VF";
270 Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(allVfResourcesDetailUrl, false)).thenReturn(IOUtils
271 .toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFResources.json"), "UTF-8"));
273 String allVfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VFC";
274 Mockito.when(aSpy.getCldsServicesOrResourcesBasedOnURL(allVfcResourcesDetailUrl, false)).thenReturn(
275 IOUtils.toString(SdcCatalogServicesIT.class.getResourceAsStream("/example/sdc/sdcVFCResources.json"),
278 CldsServiceData cldsServiceData = aSpy
279 .getCldsServiceDataWithAlarmConditions("a33ed748-3477-4434-b3f3-b5560f5e7d9c");
280 assertTrue("a33ed748-3477-4434-b3f3-b5560f5e7d9c".equals(cldsServiceData.getServiceInvariantUUID()));
281 assertTrue("29018914-966c-442d-9d08-251b9dc45b8f".equals(cldsServiceData.getServiceUUID()));
282 assertTrue(cldsServiceData.getCldsVfs().size() == 1);
284 List<CldsAlarmCondition> alarmsList = aSpy.getAllAlarmConditionsFromCldsServiceData(cldsServiceData);
285 assertTrue(alarmsList.size() == 6);