1 package org.openecomp.sdc.impl;
3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertNotNull;
5 import static org.testng.Assert.assertNull;
6 import static org.testng.Assert.assertTrue;
8 import static org.hamcrest.CoreMatchers.is;
10 import com.google.common.collect.ImmutableMap;
11 import org.apache.commons.lang3.tuple.Pair;
12 import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
13 import org.openecomp.sdc.tosca.parser.impl.FilterType;
14 import org.openecomp.sdc.tosca.parser.impl.SdcTypes;
15 import org.openecomp.sdc.toscaparser.api.Group;
16 import org.openecomp.sdc.toscaparser.api.NodeTemplate;
17 import org.openecomp.sdc.toscaparser.api.Property;
18 import org.testng.annotations.Test;
20 import fj.data.fingertrees.Node;
22 public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
24 //region getServiceVfList
26 public void testNumberOfVfSunnyFlow() throws SdcToscaParserException {
27 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
28 assertNotNull(serviceVfList);
29 assertEquals(2, serviceVfList.size());
33 public void testGetNodeTemplateCustomizationUuid(){
34 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
35 boolean found = false;
36 for (NodeTemplate nt : serviceVfList){
37 if (nt.getName().equals("FDNT 1")){
39 assertEquals(fdntCsarHelper.getNodeTemplateCustomizationUuid(nt), "56179cd8-de4a-4c38-919b-bbc4452d2d73");
46 public void testSingleVFWithNotMetadata() throws SdcToscaParserException {
47 //If there is no metadata on VF level - There is no VF's because the type is taken from metadata values.
48 List<NodeTemplate> serviceVfList = rainyCsarHelperSingleVf.getServiceVfList();
49 assertNotNull(serviceVfList);
50 assertEquals(0, serviceVfList.size());
54 //region getNodeTemplatePropertyLeafValue
56 public void testNodeTemplateFlatProperty() throws SdcToscaParserException {
57 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
58 assertEquals("2", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "availability_zone_max_count"));
59 assertEquals("3", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "max_instances"));
60 assertEquals("some code", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_naming_code"));
64 public void testNodeTemplateFlatFunctionProperty() throws SdcToscaParserException {
65 List<NodeTemplate> serviceVfList = fdntCsarHelperWithInputs.getServiceVfList();
66 assertEquals(null, fdntCsarHelperWithInputs.getNodeTemplatePropertyLeafValue(serviceVfList.get(1), "target_network_role"));
70 public void testNodeTemplateNestedFunctionProperty() throws SdcToscaParserException {
71 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
72 assertEquals(null, ipAssignCsarHelper.getNodeTemplatePropertyLeafValue(vfcs.get(0), "port_pd01_port_ip_requirements#ip_count_required#count"));
76 public void testNodeTemplateNestedProperty() throws SdcToscaParserException {
77 List<NodeTemplate> serviceVlList = fdntCsarHelper.getServiceVlList();
78 NodeTemplate nodeTemplate = serviceVlList.get(0);
79 //System.out.println("node template " + nodeTemplate.toString());
80 assertEquals("24", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_assignments#ipv4_subnet_default_assignment#cidr_mask"));
81 assertEquals("7a6520b-9982354-ee82992c-105720", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_flows#vpn_binding"));
85 public void testNodeTemplateNestedPropertyFromInput() throws SdcToscaParserException {
86 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
87 NodeTemplate nodeTemplate = serviceVfList.get(0);
88 //System.out.println("node template " + nodeTemplate.toString());
89 assertEquals("true", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#ecomp_generated_naming"));
90 assertEquals("FDNT_instance_VF_2", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#naming_policy"));
94 public void testNodeTemplateNestedPropertyNotExists() throws SdcToscaParserException {
95 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
96 String nodeTemplatePropertyLeafValue = fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_role#nf_naming#kuku");
97 assertNull(nodeTemplatePropertyLeafValue);
101 public void testNodeTemplateFlatPropertyByNotFoundProperty() throws SdcToscaParserException {
102 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
103 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "XXXX");
104 assertNull(nodeTemplatePropertyLeafValue);
108 public void testNodeTemplateFlatPropertyByNullProperty() throws SdcToscaParserException {
109 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
110 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), null);
111 assertNull(nodeTemplatePropertyLeafValue);
115 public void testNodeTemplateFlatPropertyByNullNodeTemplate() throws SdcToscaParserException {
116 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(null, "availability_zone_max_count");
117 assertNull(nodeTemplatePropertyLeafValue);
121 //region getServiceVlList
123 public void testServiceVl() {
124 List<NodeTemplate> vlList = fdntCsarHelper.getServiceVlList();
125 assertEquals(1, vlList.size());
126 assertEquals("exVL", vlList.get(0).getName());
130 public void testNumberOfVLRainyFlow() throws SdcToscaParserException {
131 List<NodeTemplate> serviceVlList = rainyCsarHelperMultiVfs.getServiceVlList();
132 assertNotNull(serviceVlList);
133 assertEquals(0, serviceVlList.size());
137 //region getServiceNodeTemplatesByType
139 public void testServiceNodeTemplatesByType() throws SdcToscaParserException {
140 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Fdnt");
141 assertNotNull(serviceVfList);
142 assertEquals(1, serviceVfList.size());
146 public void testServiceNodeTemplatesByNull() {
147 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType(null);
148 assertNotNull(nodeTemplates);
149 assertEquals(0, nodeTemplates.size());
153 public void testServiceNodeTemplatesByNotFoundProperty() {
154 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType("XXX");
155 assertNotNull(nodeTemplates);
156 assertEquals(0, nodeTemplates.size());
160 //region getTypeOfNodeTemplate
162 public void testGetTypeOfNodeTemplate() {
163 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
164 String typeOfNodeTemplate = fdntCsarHelper.getTypeOfNodeTemplate(serviceVfList.get(0));
165 assertEquals("org.openecomp.resource.vf.Fdnt", typeOfNodeTemplate);
169 public void testGetTypeOfNullNodeTemplate() {
170 String typeOfNodeTemplate = rainyCsarHelperMultiVfs.getTypeOfNodeTemplate(null);
171 assertNull(typeOfNodeTemplate);
175 //region getAllottedResources
177 public void testGetAllottedResources() {
178 List<NodeTemplate> allottedResources = fdntCsarHelper.getAllottedResources();
179 assertEquals(1, allottedResources.size());
183 public void testGetAllottedResourcesZero() {
184 List<NodeTemplate> allottedResources = rainyCsarHelperMultiVfs.getAllottedResources();
185 assertNotNull(allottedResources);
186 assertEquals(0, allottedResources.size());
190 //region getVfcListByVf
192 public void testGetVfcFromVf() {
193 List<NodeTemplate> vfcListByVf = fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID);
194 assertEquals(2, vfcListByVf.size());
198 public void testVfcListByNull() {
199 List<NodeTemplate> vfcList = rainyCsarHelperMultiVfs.getVfcListByVf(null);
200 assertNotNull(vfcList);
201 assertEquals(0, vfcList.size());
205 public void testVfcListByNotFoundProperty() {
206 List<NodeTemplate> vfcList = rainyCsarHelperMultiVfs.getVfcListByVf("XXX");
207 assertNotNull(vfcList);
208 assertEquals(0, vfcList.size());
212 //region getCpListByVf
214 public void testGetCpFromVf() {
215 List<NodeTemplate> cpListByVf = fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID);
216 assertEquals(1, cpListByVf.size());
217 NodeTemplate nodeTemplate = cpListByVf.get(0);
218 assertEquals("DNT_PORT", nodeTemplate.getName());
222 public void testGetCpFromVfByNullId() {
223 List<NodeTemplate> cpListByVf = rainyCsarHelperMultiVfs.getCpListByVf(null);
224 assertNotNull(cpListByVf);
225 assertEquals(0, cpListByVf.size());
229 public void testGetCpFromVfXxx() {
230 List<NodeTemplate> cpListByVf = rainyCsarHelperMultiVfs.getCpListByVf("XXXXX");
231 assertNotNull(cpListByVf);
232 assertEquals(0, cpListByVf.size());
236 //region getNodeTemplatePairsByReqName
238 public void testGetNodeTemplatePairsByReqName() {
239 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
240 assertNotNull(nodeTemplatePairsByReqName);
241 assertEquals(1, nodeTemplatePairsByReqName.size());
242 Pair<NodeTemplate, NodeTemplate> pair = nodeTemplatePairsByReqName.get(0);
243 NodeTemplate cp = pair.getLeft();
244 NodeTemplate vfc = pair.getRight();
245 assertEquals("DNT_PORT", cp.getName());
246 assertEquals("DNT_FW_RHRG", vfc.getName());
250 public void testGetNodeTemplatePairsByReqNameWithNullVF() {
251 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
252 null, fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
253 assertNotNull(nodeTemplatePairsByReqName);
254 assertEquals(0, nodeTemplatePairsByReqName.size());
258 public void testGetNodeTemplatePairsByReqNameWithEmptyVF() {
259 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
260 new ArrayList<>(), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
261 assertNotNull(nodeTemplatePairsByReqName);
262 assertEquals(0, nodeTemplatePairsByReqName.size());
266 public void testGetNodeTemplatePairsByReqNameWithNullCap() {
267 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
268 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), null, "binding");
269 assertNotNull(nodeTemplatePairsByReqName);
270 assertEquals(0, nodeTemplatePairsByReqName.size());
274 public void testGetNodeTemplatePairsByReqNameWithEmptyCap() {
275 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
276 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), new ArrayList<>(), "binding");
277 assertNotNull(nodeTemplatePairsByReqName);
278 assertEquals(0, nodeTemplatePairsByReqName.size());
282 public void testGetNodeTemplatePairsByReqNameWithNullReq() {
283 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
284 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), null);
285 assertNotNull(nodeTemplatePairsByReqName);
286 assertEquals(0, nodeTemplatePairsByReqName.size());
290 public void testGetNodeTemplatePairsByReqNameWithDummyReq() {
292 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
293 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "XXX");
294 assertNotNull(nodeTemplatePairsByReqName);
295 assertEquals(0, nodeTemplatePairsByReqName.size());
299 //region getMembersOfVfModule
301 public void testGetMembersOfVfModule() {
302 NodeTemplate vf = fdntCsarHelper.getServiceVfList().get(0);
303 List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
304 assertEquals(2, vfModulesByVf.size());
305 for (Group group : vfModulesByVf) {
306 List<NodeTemplate> membersOfVfModule = fdntCsarHelper.getMembersOfVfModule(vf, group);
307 assertNotNull(membersOfVfModule);
308 if (group.getName().equals("fdnt1..Fdnt..base_stsi_dnt_frwl..module-0")) {
309 assertEquals(1, membersOfVfModule.size());
310 NodeTemplate nodeTemplate = membersOfVfModule.get(0);
311 assertEquals("DNT_FW_RSG_SI_1", nodeTemplate.getName());
313 assertEquals("fdnt1..Fdnt..mod_vmsi_dnt_fw_parent..module-1", group.getName());
314 assertEquals(1, membersOfVfModule.size());
315 NodeTemplate nodeTemplate = membersOfVfModule.get(0);
316 assertEquals("DNT_FW_RHRG", nodeTemplate.getName());
322 public void testMembersOfVfModuleByNullVf() {
323 List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
324 List<NodeTemplate> nodeTemplates = fdntCsarHelper.getMembersOfVfModule(null, vfModulesByVf.get(0));
325 assertNotNull(nodeTemplates);
326 assertEquals(0, nodeTemplates.size());
330 public void testMembersOfVfModuleByNullGroup() {
331 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
332 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getMembersOfVfModule(serviceVfList.get(0), null);
333 assertNotNull(nodeTemplates);
334 assertEquals(0, nodeTemplates.size());
338 //region getCpPropertiesFromVfc
340 public void testGetCpPropertiesFromVfc() {
341 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
342 boolean isChecked = false;
344 for (NodeTemplate vfc: vfcs) {
346 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
349 Map<String, Map<String, Object>> cps = ipAssignCsarHelper.getCpPropertiesFromVfcAsObject(vfc);
351 assertEquals(2,cps.size());
352 Map<String, Object> pd01 = cps.get("port_pd01_port");
353 assertEquals(5, pd01.size());
355 Map<String, Object> firstIpRequirements = (Map<String, Object>) ((List<Object>)pd01.get("ip_requirements")).get(0);
356 Map<String, Object> secondIpRequirements = (Map<String, Object>) ((List<Object>)pd01.get("ip_requirements")).get(1);
358 assertEquals("subnet_role_4", firstIpRequirements.get("subnet_role"));
359 assertEquals(4, firstIpRequirements.get("ip_version"));
360 assertEquals(true, ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("is_required"));
361 assertEquals("get_input:node_count", ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("count").toString());
362 assertEquals(false, ((Map<String, Object>)((Map<String, Object>)pd01.get("mac_requirements")).get("mac_count_required")).get("is_required"));
363 assertEquals("test_subnetpoolid", pd01.get("subnetpoolid"));
364 assertEquals("oam", pd01.get("network_role_tag"));
365 assertEquals(6, secondIpRequirements.get("ip_version"));
369 assertTrue(isChecked);
373 public void testGetCpPropertiesFromVfcForNullVFC() {
374 Map<String, Map<String, Object>> cps = ipAssignCsarHelper.getCpPropertiesFromVfcAsObject(null);
376 assertEquals(0, cps.size());
380 //region getNodeTemplatePropertyAsObject
382 public void testGetNodeTemplatePropertyAsObject() {
383 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
384 assertEquals("2", fdntCsarHelper.getNodeTemplatePropertyAsObject(serviceVfList.get(0), "availability_zone_max_count"));
385 assertEquals(3, fdntCsarHelper.getNodeTemplatePropertyAsObject(serviceVfList.get(0), "max_instances"));
386 assertEquals("some code", fdntCsarHelper.getNodeTemplatePropertyAsObject(serviceVfList.get(0), "nf_naming_code"));
390 //region getServiceNodeTemplates
392 public void testServiceNodeTemplates() throws SdcToscaParserException {
393 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplates();
394 assertNotNull(serviceVfList);
395 assertEquals(3, serviceVfList.size());
396 assertEquals(serviceVfList.get(2).getName(), "exVL");
400 //region filterNodeTemplatePropertiesByValue
402 public void testFilterNodeTemplatePropertiesByContains() {
403 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
404 boolean isChecked = false;
405 for (NodeTemplate vfc: vfcs) {
406 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
409 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfc, FilterType.CONTAINS, "get_input");
411 assertEquals(7, filteredInputs.size());
412 assertEquals("get_input:availabilityzone_name", filteredInputs.get("compute_pd_server_availability_zone"));
413 assertEquals("get_input:[pd_server_names, 0]", filteredInputs.get("compute_pd_server_name"));
414 assertEquals("get_input:node_count", filteredInputs.get("port_pd01_port_ip_requirements#ip_count_required#count"));
420 assertTrue(isChecked);
424 public void testFilterNodeTemplatePropertiesByDummyContains() {
425 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
426 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.CONTAINS, "dummy");
427 assertNotNull(filteredInputs);
428 assertEquals(0, filteredInputs.size());
432 public void testFilterNodeTemplatePropertiesByEquals() {
433 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
434 boolean isChecked = false;
435 for (NodeTemplate vfc: vfcs) {
436 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
439 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfc, FilterType.EQUALS, "oam");
441 assertEquals(2, filteredInputs.size());
442 assertEquals("oam", filteredInputs.get("port_pd02_port_network_role_tag"));
443 assertEquals("oam", filteredInputs.get("port_pd01_port_network_role_tag"));
448 assertTrue(isChecked);
452 public void testFilterNodeTemplatePropertiesByDummyEquals() {
453 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
454 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, "dummy");
455 assertNotNull(filteredInputs);
456 assertEquals(0, filteredInputs.size());
460 public void testFilterNodeTemplatePropertiesByNullFilterType() {
461 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
462 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), null, "ddc");
463 assertNotNull(filteredInputs);
464 assertEquals(0, filteredInputs.size());
468 public void testFilterNodeTemplatePropertiesByNullPattern() {
469 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
470 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, null);
471 assertNotNull(filteredInputs);
472 assertEquals(0, filteredInputs.size());
476 public void testFilterNodeTemplatePropertiesByNullVfc() {
477 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(null, FilterType.EQUALS, "ddc");
478 assertNotNull(filteredInputs);
479 assertEquals(0, filteredInputs.size());
483 //region getServiceNodeTemplateBySdcType
485 public void testServiceNodeTemplateBySdcType() {
486 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplateBySdcType(SdcTypes.VF);
487 assertNotNull(serviceVfList);
488 assertEquals(serviceVfList.size(), 2);
489 assertEquals(serviceVfList.get(0).getName(), "FDNT 1");
493 public void testServiceNodeTemplateBySdcTypeServiceProxy() {
494 List<NodeTemplate> serviceProxies = portMirroring.getServiceNodeTemplateBySdcType(SdcTypes.SERVICE_PROXY);
495 assertNotNull(serviceProxies);
496 assertEquals(serviceProxies.size(), 2);
500 public void testServiceNodeTemplateByNullSdcType() {
501 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplateBySdcType(null);
502 assertNotNull(serviceVfList);
503 assertEquals(serviceVfList.size(), 0);
507 //region getNodeTemplateBySdcType
509 public void testNodeTemplateBySdcType() {
510 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
511 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(vfList.get(0), SdcTypes.VFC);
512 assertNotNull(vfcList);
513 assertEquals(2, vfcList.size());
514 assertEquals("DNT_FW_RSG_SI_1", vfcList.get(0).getName());
518 public void testNodeTemplateByNullSdcType() {
519 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
520 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(vfList.get(0), null);
521 assertNotNull(vfcList);
522 assertEquals(0, vfcList.size());
526 public void testNodeTemplateBySdcTypeNullNT() {
527 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(null, SdcTypes.VFC);
528 assertNotNull(vfcList);
529 assertEquals(0, vfcList.size());
533 //region getVnfConfig
535 public void testGetVnfConfig() {
536 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
537 assertNotNull(vnfConfig);
538 assertEquals("vnfConfiguration", vnfConfig.getMetaData().getValue("name"));
542 public void testGetVnfConfigByNonFoundVNF() {
543 NodeTemplate vnfConfig = ipAssignCsarHelper.getVnfConfig("b5190df2-7880-4d6f-836f-56ab17e1b85b");
544 assertNull(vnfConfig);
548 public void testGetVnfConfigByDummyUUID() {
549 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("XXX");
550 assertNull(vnfConfig);
554 public void testGetVnfConfigByNullUUID() {
555 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig(null);
556 assertNull(vnfConfig);
560 public void testGetVfcTypWithoutVnf() {
561 List<NodeTemplate> vfcList = nfodCsarHlper.getVfcListByVf("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
562 assertNotNull(vfcList);
563 assertEquals(2, vfcList.size());
569 public void testNestedVfcByExistCvfc() {
570 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("71389f8b-8671-4a43-a991-59fb621d3615");
571 assertNotNull(vfcList);
572 assertEquals(vfcList.size(), 2);
573 assertEquals("VFC1 DUMMY", vfcList.get(0).getName());
574 assertEquals("VF_VNF", vfcList.get(1).getName());
578 public void testNestedVfcByNullVf() {
579 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf(null);
580 assertNotNull(vfcList);
581 assertEquals(0, vfcList.size());
585 public void testNestedVfcByDummyVf() {
586 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("dummy");
587 assertNotNull(vfcList);
588 assertEquals(0, vfcList.size());
594 public void testHasTopologyByVF() {
595 List<NodeTemplate> vfList = nestedVfcCsarHlper.getServiceVfList();
596 boolean hasTopology = nestedVfcCsarHlper.hasTopology(vfList.get(0));
597 assertEquals(true, hasTopology);
601 public void testHasTopologyByCVFC() {
602 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("71389f8b-8671-4a43-a991-59fb621d3615");
603 boolean hasTopology = nestedVfcCsarHlper.hasTopology(vfcList.get(1));
604 assertEquals(true, hasTopology);
608 public void testHasTopologyByVL() {
609 List<NodeTemplate> serviceVlList = fdntCsarHelper.getServiceVlList();
610 boolean hasTopology = fdntCsarHelper.hasTopology(serviceVlList.get(0));
611 assertEquals(false, hasTopology);
615 public void testHasTopologyByNull() {
616 boolean hasTopology = fdntCsarHelper.hasTopology(null);
617 assertEquals(false, hasTopology);
621 //region getNodeTemplateChildren
623 public void testGetNodeTemplatesListOfNodeTemplateByVF() {
624 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
625 List<NodeTemplate> children = fdntCsarHelper.getNodeTemplateChildren(vfList.get(0));
626 assertNotNull(children);
627 assertEquals(3, children.size());
629 children.sort(Comparator.comparing(NodeTemplate::getName));
631 assertEquals("DNT_FW_RSG_SI_1", children.get(1).getName());
632 assertEquals("VFC", children.get(1).getMetaData().getValue("type"));
633 assertEquals("DNT_PORT", children.get(2).getName());
634 assertEquals("CP", children.get(2).getMetaData().getValue("type"));
638 public void testGetNodeTemplatesListOfNodeTemplateByVFC() {
639 List<NodeTemplate> vfList = nestedVfcCsarHlper.getServiceVfList();
640 List<NodeTemplate> vfChildren = nestedVfcCsarHlper.getNodeTemplateChildren(vfList.get(0));
641 assertNotNull(vfChildren);
642 assertEquals(vfChildren.size(), 2);
643 vfChildren.sort(Comparator.comparing(NodeTemplate::getName));
644 assertEquals("VFC1 DUMMY", vfChildren.get(0).getName());
645 assertEquals("VF_VNF", vfChildren.get(1).getName());
646 assertEquals("CVFC", vfChildren.get(1).getMetaData().getValue("type"));
649 List<NodeTemplate> vfcChildren = nestedVfcCsarHlper.getNodeTemplateChildren(vfChildren.get(1));
650 assertNotNull(vfcChildren);
651 assertEquals(vfcChildren.size(), 3);
652 vfcChildren.sort(Comparator.comparing(NodeTemplate::getName));
653 assertEquals("Test NIC 02_wan_port", vfcChildren.get(0).getName());
654 assertEquals("Test NIC_wan_port", vfcChildren.get(1).getName());
655 assertEquals("VF", vfcChildren.get(2).getName());
659 public void testGetNodeTemplatesListOfNodeTemplateByNull() {
660 List<NodeTemplate> children = fdntCsarHelper.getNodeTemplateChildren(null);
661 assertNotNull(children);
662 assertEquals(0, children.size());
667 // Get specific VNF properties
669 public void testGetVnfConfigGetProperties() {
670 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
671 assertNotNull(vnfConfig);
672 assertEquals("vnfConfiguration", vnfConfig.getMetaData().getValue("name"));
674 String manufacturer_reference_number = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_12345_for_FortiGate-VM00#vendor_info#manufacturer_reference_number");
675 String num_cpus = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_67890_for_FortiGate-VM01#compute_flavor#num_cpus");
676 String sp_part_number = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_67890_for_FortiGate-VM01#sp_part_number");
678 assertEquals("FortiGate-VM00",manufacturer_reference_number);
679 assertEquals("10",num_cpus);
680 assertEquals("ATT_part_67890_for_FortiGate-VM01",sp_part_number);
684 // Check that get vnfconfiguration not return as VFC
686 public void testGetVfcTypWithoutVnfCheckNames() {
687 List<NodeTemplate> vfcList = nfodCsarHlper.getVfcListByVf("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
688 assertNotNull(vfcList);
689 assertEquals(2, vfcList.size());
690 for (int i = 0; i < vfcList.size(); i++) {
692 String Name= vfcList.get(i).getName();
694 assertEquals(false, Name.equals("vFW_VNF_Configuration"));
700 public void testNewGetVnfConfigGetProperties() {
701 NodeTemplate vnfConfig = nfodNEWCsarHlper.getVnfConfig("a6587663-b27f-4e88-8a86-604604302ce6");
702 assertNotNull(vnfConfig);
703 assertEquals("vnfConfiguration", vnfConfig.getMetaData().getValue("name"));
705 //Deployment flavor 1
706 String manufacturer_reference_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#vendor_info#manufacturer_reference_number");
707 String num_cpus = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#compute_flavor#num_cpus");
708 String sp_part_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#sp_part_number");
710 assertEquals("234567",manufacturer_reference_number);
711 assertEquals("2",num_cpus);
712 assertEquals("123456",sp_part_number);
714 //Deployment flavor 2
715 manufacturer_reference_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#vendor_info#manufacturer_reference_number");
716 num_cpus = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#compute_flavor#num_cpus");
717 sp_part_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#sp_part_number");
719 assertEquals("EP_manufacturerReferenceNumberkbAiqZZNzx1",manufacturer_reference_number);
720 assertEquals("1",num_cpus);
721 assertEquals("FG_partNumbereJqQjUkteF1",sp_part_number);
725 // Check that get vnfconfiguration not return as VFC
727 public void testNewGetVfcTypWithoutVnfCheckNames() {
728 List<NodeTemplate> vfcList = nfodNEWCsarHlper.getVfcListByVf("a6587663-b27f-4e88-8a86-604604302ce6");
729 assertNotNull(vfcList);
730 assertEquals(1, vfcList.size());
731 for (int i = 0; i < vfcList.size(); i++) {
733 String Name= vfcList.get(i).getName();
735 assertEquals(false, Name.equals("name_6GkVrOjnGp1_VNF_Configuration"));
739 //region getServiceNodeTemplateByNodeName
741 public void testGetServiceNodeTemplateByRealNodeName() {
742 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName("FDNT 1");
743 assertNotNull(nodeTemplate);
744 assertEquals(nodeTemplate.getName(), "FDNT 1");
745 assertEquals(nodeTemplate.getMetaData().getValue("type"), "VF");
749 public void testGetServiceNodeTemplateByNullNodeName() {
750 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName(null);
751 assertNull(nodeTemplate);
755 public void testGetServiceNodeTemplateByDummyNodeName() {
756 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName("dummy");
757 assertNull(nodeTemplate);
763 //region resolve get_input
765 public void testResolveGetInputForComplexTypeAndList() {
766 //port_pd01_port_ip_requirements is of type list<org.openecomp.datatypes.network.IpRequirements>
768 // 1) "default" resolving
769 // 2) complex type resolving
770 // 3) List access resolving
771 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
772 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
773 assertTrue(propertyAsObject instanceof ArrayList);
774 assertEquals(2, ((ArrayList) propertyAsObject).size());
775 //port_pd01_port_ip_requirements:
776 //- get_input: [ip_requirements, 0]
777 //- get_input: [ip_requirements, 1]
778 assertEquals("subnet_role_4", ((Map) ((ArrayList) propertyAsObject).get(0)).get("subnet_role"));
779 assertEquals("subnet_role_6", ((Map) ((ArrayList) propertyAsObject).get(1)).get("subnet_role"));
783 public void testResolveGetInputForPrimitiveTypeString() {
784 //This test covers "default" resolving of primitive - as Object
785 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
786 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_network_role_tag");
787 assertEquals("oam", propertyAsObject);
791 public void testResolveGetInputForPrimitiveTypeInteger() {
792 //This test covers "default" resolving of primitive - as String
793 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
794 String propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyLeafValue(vfcs.get(0), "port_pd01_port_order");
795 assertEquals("1", propertyAsObject);
799 public void testResolveGetInputForMap() {
800 //This test covers "default" resolving of primitive - as Map
801 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
802 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd02_port_ip_requirements#ip_count_required");
803 assertTrue(propertyAsObject instanceof Map);
804 assertEquals(false, ((Map)propertyAsObject).get("is_required"));
808 public void testResolveGetInputForAllHierarchy() {
809 //This test covers "default" resolving from service level
810 List<NodeTemplate> vfs = resolveGetInputCsar.getServiceVfList();
811 Object vfPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfs.get(0), "vm_count");
812 assertEquals(2, vfPropertyAsObject);
813 //This test covers property assignment resolving on VFI level (service template), from Vf level
814 List<NodeTemplate> vfcs = resolveGetInputCsar.getNodeTemplateBySdcType(vfs.get(0), SdcTypes.VFC);
815 Object vfcPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfcs.get(0), "my_count");
816 assertEquals(2, vfcPropertyAsObject); //takes it from upper level (VF) property
820 public void testResolveGetInputNoDefValueInnerLevel() {
821 //This test covers resolving when no "default" value is supplied to the input - should be null - VF/VFCI level
822 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
823 String propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyLeafValue(vfcs.get(0), "index_value");
824 assertNull(propertyAsObject);
829 public void testResolveGetInputNoDefValueServiceLevel() {
830 //This test covers resolving when no "default" value is supplied to the input - should be null - Service/VFI level
831 List<NodeTemplate> vfs = resolveGetInputCsar.getServiceVfList();
832 Object vfPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfs.get(0), "port_order");
833 assertNull(vfPropertyAsObject);
838 // region Added by QA - Continue with testings of resolve get_input
841 public void testResolveGetInputForComplexTypeAndListWithFalseValue()
843 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
844 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
845 assertTrue(propertyAsObject instanceof ArrayList);
846 assertEquals(2, ((ArrayList) propertyAsObject).size());
847 assertEquals("get_input:[ip_requirements, 0]", ((ArrayList) propertyAsObject).get(0).toString());
848 assertEquals("get_input:[ip_requirements, 1]", ((ArrayList) propertyAsObject).get(1).toString());
852 public void testResolveGetInputForPrimitiveTypeStringWithFalseValue() {
853 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
854 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_network_role_tag");
855 assertEquals("get_input:role_tag_oam", propertyAsObject.toString());
859 public void testResolveGetInputForPrimitiveTypeListWithFalseValue() {
860 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
861 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyAsObject(vfcs.get(0), "compute_pd_server_name");
862 assertEquals("[get_input:[pd_server_names, 0]]", propertyAsObject.toString());
865 //@Test // Maybe a bug here.... need to check with Esti - Mait was sent.
866 public void testResolveGetInputForPrimitiveTypeList() {
867 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
868 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfcs.get(0), "compute_pd_server_name");
869 assertEquals("\"ZRDM1MOGX01MPD001\"", propertyAsObject.toString());
873 public void testResolveGetInputForPrimitiveNullValue() {
874 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
875 @SuppressWarnings("unchecked")
876 List<String>propertyAsObject = (List<String>) resolveGetInputCsarQA.getNodeTemplatePropertyAsObject(vfcs.get(0), "compute_pd_server_availability_zone");
877 assertNull(propertyAsObject.get(0));
880 public void testResolveGetInputForPrimitiveIPValue() {
881 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
882 Object propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyAsObject(vfcs.get(0), "vm_image_name");
883 assertEquals("107.239.36.5", propertyAsObject.toString());
886 //QA region getServiceNodeTemplateByNodeName tests
889 public void getServiceNodeTemplateByNodeNameTypeVF() {
890 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("VF_1_V_port_1 0");
891 assertNotNull(nodeTemplate);
892 assertEquals(nodeTemplate.getName(), "VF_1_V_port_1 0");
893 assertEquals(nodeTemplate.getMetaData().getValue("type"), "VF");
897 public void getServiceNodeTemplateByNodeNameTypeVL() {
898 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("ExtVL 0");
899 assertNotNull(nodeTemplate);
900 assertEquals(nodeTemplate.getName(), "ExtVL 0");
901 assertEquals(nodeTemplate.getMetaData().getValue("type"), "VL");
905 public void getServiceNodeTemplateByNodeNameTypeCP() {
906 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("ExtCP 0");
907 assertNotNull(nodeTemplate);
908 assertEquals(nodeTemplate.getName(), "ExtCP 0");
909 assertEquals(nodeTemplate.getMetaData().getValue("type"), "CP");
913 public void getServiceNodeTemplateByNodeNameTypePNF() {
914 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("PNF TEST 0");
915 assertNotNull(nodeTemplate);
916 assertEquals(nodeTemplate.getName(), "PNF TEST 0");
917 assertEquals(nodeTemplate.getMetaData().getValue("type"), "PNF");
920 //QA region getServiceNodeTemplateBySdcType tests
923 public void getServiceNodeTemplateBySdcType_VF() {
924 List<NodeTemplate> vfList = QAServiceForToscaParserTests.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Vf1VPort1");
925 assertEquals(2, vfList.size());
926 assertEquals("VF_1_V_port_1", vfList.get(0).getMetaData().getValue("name"));
928 // endregion Added by QA - Continue with testings of resolve get_input
932 public void testResolveGetInputArrayStructure() {
933 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
934 Object propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyAsObject(vfcs.get(0), "compute_pd_server_name");
935 assertEquals( ((ArrayList)propertyAsObject).get(0).toString(), "\"ZRDM1MOGX01MPD001\"");
936 propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
937 assertEquals( ((ArrayList)propertyAsObject).get(1), null);
941 public void testServiceNodeTemplateByCRType() {
942 List<NodeTemplate> serviceCRList = csarHelperServiceWithCrs.getServiceNodeTemplateBySdcType(SdcTypes.CR);
943 assertNotNull(serviceCRList);
944 assertEquals(serviceCRList.size(), 2);
945 assertEquals(serviceCRList.get(0).getName(), "chaya best cr 1");
946 assertEquals(serviceCRList.get(0).getType(), "org.openecomp.resource.cr.ChayaBestCr");
947 assertEquals(serviceCRList.get(1).getName(), "chaya best cr 0");
948 assertEquals(serviceCRList.get(1).getType(), "org.openecomp.resource.cr.ChayaBestCr");
952 public void testGetCPOfCRNodeTemplate() {
953 NodeTemplate nodeTemplate = csarHelperServiceWithCrs.getServiceNodeTemplateByNodeName("chaya best cr 0");
954 List<NodeTemplate> crCpChildren = csarHelperServiceWithCrs.getNodeTemplateBySdcType(nodeTemplate, SdcTypes.CP);
955 assertEquals(crCpChildren.get(0).getName(), "ContrailPort 0");
956 assertEquals(crCpChildren.get(0).getMetaData().getValue("type"), SdcTypes.CP.name());
960 public void testServiceCRInstanceProps() {
961 List<NodeTemplate> serviceCrList = csarHelperServiceWithCrs.getServiceNodeTemplateBySdcType(SdcTypes.CR);
962 assertNotNull(serviceCrList);
963 NodeTemplate crTemplate = serviceCrList.get(0);
964 assertNotNull(crTemplate);
965 assertEquals(crTemplate.getPropertyValue("nf_naming").toString(), ImmutableMap.of("ecomp_generated_naming", "true").toString());
966 assertEquals(crTemplate.getPropertyValue("contrailport0_virtual_network"), "chaya");