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;
9 import org.apache.commons.lang3.tuple.Pair;
10 import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
11 import org.openecomp.sdc.tosca.parser.impl.FilterType;
12 import org.openecomp.sdc.tosca.parser.impl.SdcTypes;
13 import org.openecomp.sdc.toscaparser.api.Group;
14 import org.openecomp.sdc.toscaparser.api.NodeTemplate;
15 import org.openecomp.sdc.toscaparser.api.Property;
16 import org.testng.annotations.Test;
18 import fj.data.fingertrees.Node;
20 public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
22 //region getServiceVfList
24 public void testNumberOfVfSunnyFlow() throws SdcToscaParserException {
25 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
26 assertNotNull(serviceVfList);
27 assertEquals(2, serviceVfList.size());
31 public void testGetNodeTemplateCustomizationUuid(){
32 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
33 boolean found = false;
34 for (NodeTemplate nt : serviceVfList){
35 if (nt.getName().equals("FDNT 1")){
37 assertEquals(fdntCsarHelper.getNodeTemplateCustomizationUuid(nt), "56179cd8-de4a-4c38-919b-bbc4452d2d73");
44 public void testSingleVFWithNotMetadata() throws SdcToscaParserException {
45 //If there is no metadata on VF level - There is no VF's because the type is taken from metadata values.
46 List<NodeTemplate> serviceVfList = rainyCsarHelperSingleVf.getServiceVfList();
47 assertNotNull(serviceVfList);
48 assertEquals(0, serviceVfList.size());
52 //region getNodeTemplatePropertyLeafValue
54 public void testNodeTemplateFlatProperty() throws SdcToscaParserException {
55 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
56 assertEquals("2", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "availability_zone_max_count"));
57 assertEquals("3", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "max_instances"));
58 assertEquals("some code", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_naming_code"));
62 public void testNodeTemplateFlatFunctionProperty() throws SdcToscaParserException {
63 List<NodeTemplate> serviceVfList = fdntCsarHelperWithInputs.getServiceVfList();
64 assertEquals(null, fdntCsarHelperWithInputs.getNodeTemplatePropertyLeafValue(serviceVfList.get(1), "target_network_role"));
68 public void testNodeTemplateNestedFunctionProperty() throws SdcToscaParserException {
69 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
70 assertEquals(null, ipAssignCsarHelper.getNodeTemplatePropertyLeafValue(vfcs.get(0), "port_pd01_port_ip_requirements#ip_count_required#count"));
74 public void testNodeTemplateNestedProperty() throws SdcToscaParserException {
75 List<NodeTemplate> serviceVlList = fdntCsarHelper.getServiceVlList();
76 NodeTemplate nodeTemplate = serviceVlList.get(0);
77 //System.out.println("node template " + nodeTemplate.toString());
78 assertEquals("24", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_assignments#ipv4_subnet_default_assignment#cidr_mask"));
79 assertEquals("7a6520b-9982354-ee82992c-105720", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_flows#vpn_binding"));
83 public void testNodeTemplateNestedPropertyFromInput() throws SdcToscaParserException {
84 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
85 NodeTemplate nodeTemplate = serviceVfList.get(0);
86 //System.out.println("node template " + nodeTemplate.toString());
87 assertEquals("true", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#ecomp_generated_naming"));
88 assertEquals("FDNT_instance_VF_2", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#naming_policy"));
92 public void testNodeTemplateNestedPropertyNotExists() throws SdcToscaParserException {
93 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
94 String nodeTemplatePropertyLeafValue = fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_role#nf_naming#kuku");
95 assertNull(nodeTemplatePropertyLeafValue);
99 public void testNodeTemplateFlatPropertyByNotFoundProperty() throws SdcToscaParserException {
100 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
101 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "XXXX");
102 assertNull(nodeTemplatePropertyLeafValue);
106 public void testNodeTemplateFlatPropertyByNullProperty() throws SdcToscaParserException {
107 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
108 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), null);
109 assertNull(nodeTemplatePropertyLeafValue);
113 public void testNodeTemplateFlatPropertyByNullNodeTemplate() throws SdcToscaParserException {
114 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(null, "availability_zone_max_count");
115 assertNull(nodeTemplatePropertyLeafValue);
119 //region getServiceVlList
121 public void testServiceVl() {
122 List<NodeTemplate> vlList = fdntCsarHelper.getServiceVlList();
123 assertEquals(1, vlList.size());
124 assertEquals("exVL", vlList.get(0).getName());
128 public void testNumberOfVLRainyFlow() throws SdcToscaParserException {
129 List<NodeTemplate> serviceVlList = rainyCsarHelperMultiVfs.getServiceVlList();
130 assertNotNull(serviceVlList);
131 assertEquals(0, serviceVlList.size());
135 //region getServiceNodeTemplatesByType
137 public void testServiceNodeTemplatesByType() throws SdcToscaParserException {
138 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Fdnt");
139 assertNotNull(serviceVfList);
140 assertEquals(1, serviceVfList.size());
144 public void testServiceNodeTemplatesByNull() {
145 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType(null);
146 assertNotNull(nodeTemplates);
147 assertEquals(0, nodeTemplates.size());
151 public void testServiceNodeTemplatesByNotFoundProperty() {
152 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType("XXX");
153 assertNotNull(nodeTemplates);
154 assertEquals(0, nodeTemplates.size());
158 //region getTypeOfNodeTemplate
160 public void testGetTypeOfNodeTemplate() {
161 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
162 String typeOfNodeTemplate = fdntCsarHelper.getTypeOfNodeTemplate(serviceVfList.get(0));
163 assertEquals("org.openecomp.resource.vf.Fdnt", typeOfNodeTemplate);
167 public void testGetTypeOfNullNodeTemplate() {
168 String typeOfNodeTemplate = rainyCsarHelperMultiVfs.getTypeOfNodeTemplate(null);
169 assertNull(typeOfNodeTemplate);
173 //region getAllottedResources
175 public void testGetAllottedResources() {
176 List<NodeTemplate> allottedResources = fdntCsarHelper.getAllottedResources();
177 assertEquals(1, allottedResources.size());
181 public void testGetAllottedResourcesZero() {
182 List<NodeTemplate> allottedResources = rainyCsarHelperMultiVfs.getAllottedResources();
183 assertNotNull(allottedResources);
184 assertEquals(0, allottedResources.size());
188 //region getVfcListByVf
190 public void testGetVfcFromVf() {
191 List<NodeTemplate> vfcListByVf = fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID);
192 assertEquals(2, vfcListByVf.size());
196 public void testVfcListByNull() {
197 List<NodeTemplate> vfcList = rainyCsarHelperMultiVfs.getVfcListByVf(null);
198 assertNotNull(vfcList);
199 assertEquals(0, vfcList.size());
203 public void testVfcListByNotFoundProperty() {
204 List<NodeTemplate> vfcList = rainyCsarHelperMultiVfs.getVfcListByVf("XXX");
205 assertNotNull(vfcList);
206 assertEquals(0, vfcList.size());
210 //region getCpListByVf
212 public void testGetCpFromVf() {
213 List<NodeTemplate> cpListByVf = fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID);
214 assertEquals(1, cpListByVf.size());
215 NodeTemplate nodeTemplate = cpListByVf.get(0);
216 assertEquals("DNT_PORT", nodeTemplate.getName());
220 public void testGetCpFromVfByNullId() {
221 List<NodeTemplate> cpListByVf = rainyCsarHelperMultiVfs.getCpListByVf(null);
222 assertNotNull(cpListByVf);
223 assertEquals(0, cpListByVf.size());
227 public void testGetCpFromVfXxx() {
228 List<NodeTemplate> cpListByVf = rainyCsarHelperMultiVfs.getCpListByVf("XXXXX");
229 assertNotNull(cpListByVf);
230 assertEquals(0, cpListByVf.size());
234 //region getNodeTemplatePairsByReqName
236 public void testGetNodeTemplatePairsByReqName() {
237 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
238 assertNotNull(nodeTemplatePairsByReqName);
239 assertEquals(1, nodeTemplatePairsByReqName.size());
240 Pair<NodeTemplate, NodeTemplate> pair = nodeTemplatePairsByReqName.get(0);
241 NodeTemplate cp = pair.getLeft();
242 NodeTemplate vfc = pair.getRight();
243 assertEquals("DNT_PORT", cp.getName());
244 assertEquals("DNT_FW_RHRG", vfc.getName());
248 public void testGetNodeTemplatePairsByReqNameWithNullVF() {
249 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
250 null, fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
251 assertNotNull(nodeTemplatePairsByReqName);
252 assertEquals(0, nodeTemplatePairsByReqName.size());
256 public void testGetNodeTemplatePairsByReqNameWithEmptyVF() {
257 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
258 new ArrayList<>(), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
259 assertNotNull(nodeTemplatePairsByReqName);
260 assertEquals(0, nodeTemplatePairsByReqName.size());
264 public void testGetNodeTemplatePairsByReqNameWithNullCap() {
265 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
266 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), null, "binding");
267 assertNotNull(nodeTemplatePairsByReqName);
268 assertEquals(0, nodeTemplatePairsByReqName.size());
272 public void testGetNodeTemplatePairsByReqNameWithEmptyCap() {
273 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
274 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), new ArrayList<>(), "binding");
275 assertNotNull(nodeTemplatePairsByReqName);
276 assertEquals(0, nodeTemplatePairsByReqName.size());
280 public void testGetNodeTemplatePairsByReqNameWithNullReq() {
281 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
282 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), null);
283 assertNotNull(nodeTemplatePairsByReqName);
284 assertEquals(0, nodeTemplatePairsByReqName.size());
288 public void testGetNodeTemplatePairsByReqNameWithDummyReq() {
290 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
291 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "XXX");
292 assertNotNull(nodeTemplatePairsByReqName);
293 assertEquals(0, nodeTemplatePairsByReqName.size());
297 //region getMembersOfVfModule
299 public void testGetMembersOfVfModule() {
300 NodeTemplate vf = fdntCsarHelper.getServiceVfList().get(0);
301 List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
302 assertEquals(2, vfModulesByVf.size());
303 for (Group group : vfModulesByVf) {
304 List<NodeTemplate> membersOfVfModule = fdntCsarHelper.getMembersOfVfModule(vf, group);
305 assertNotNull(membersOfVfModule);
306 if (group.getName().equals("fdnt1..Fdnt..base_stsi_dnt_frwl..module-0")) {
307 assertEquals(1, membersOfVfModule.size());
308 NodeTemplate nodeTemplate = membersOfVfModule.get(0);
309 assertEquals("DNT_FW_RSG_SI_1", nodeTemplate.getName());
311 assertEquals("fdnt1..Fdnt..mod_vmsi_dnt_fw_parent..module-1", group.getName());
312 assertEquals(1, membersOfVfModule.size());
313 NodeTemplate nodeTemplate = membersOfVfModule.get(0);
314 assertEquals("DNT_FW_RHRG", nodeTemplate.getName());
320 public void testMembersOfVfModuleByNullVf() {
321 List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
322 List<NodeTemplate> nodeTemplates = fdntCsarHelper.getMembersOfVfModule(null, vfModulesByVf.get(0));
323 assertNotNull(nodeTemplates);
324 assertEquals(0, nodeTemplates.size());
328 public void testMembersOfVfModuleByNullGroup() {
329 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
330 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getMembersOfVfModule(serviceVfList.get(0), null);
331 assertNotNull(nodeTemplates);
332 assertEquals(0, nodeTemplates.size());
336 //region getCpPropertiesFromVfc
338 public void testGetCpPropertiesFromVfc() {
339 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
340 boolean isChecked = false;
342 for (NodeTemplate vfc: vfcs) {
344 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
347 Map<String, Map<String, Object>> cps = ipAssignCsarHelper.getCpPropertiesFromVfcAsObject(vfc);
349 assertEquals(2,cps.size());
350 Map<String, Object> pd01 = cps.get("port_pd01_port");
351 assertEquals(5, pd01.size());
353 Map<String, Object> firstIpRequirements = (Map<String, Object>) ((List<Object>)pd01.get("ip_requirements")).get(0);
354 Map<String, Object> secondIpRequirements = (Map<String, Object>) ((List<Object>)pd01.get("ip_requirements")).get(1);
356 assertEquals("subnet_role_4", firstIpRequirements.get("subnet_role"));
357 assertEquals(4, firstIpRequirements.get("ip_version"));
358 assertEquals(true, ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("is_required"));
359 assertEquals("get_input:node_count", ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("count").toString());
360 assertEquals(false, ((Map<String, Object>)((Map<String, Object>)pd01.get("mac_requirements")).get("mac_count_required")).get("is_required"));
361 assertEquals("test_subnetpoolid", pd01.get("subnetpoolid"));
362 assertEquals("oam", pd01.get("network_role_tag"));
363 assertEquals(6, secondIpRequirements.get("ip_version"));
367 assertTrue(isChecked);
371 public void testGetCpPropertiesFromVfcForNullVFC() {
372 Map<String, Map<String, Object>> cps = ipAssignCsarHelper.getCpPropertiesFromVfcAsObject(null);
374 assertEquals(0, cps.size());
378 //region getNodeTemplatePropertyAsObject
380 public void testGetNodeTemplatePropertyAsObject() {
381 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
382 assertEquals("2", fdntCsarHelper.getNodeTemplatePropertyAsObject(serviceVfList.get(0), "availability_zone_max_count"));
383 assertEquals(3, fdntCsarHelper.getNodeTemplatePropertyAsObject(serviceVfList.get(0), "max_instances"));
384 assertEquals("some code", fdntCsarHelper.getNodeTemplatePropertyAsObject(serviceVfList.get(0), "nf_naming_code"));
388 //region getServiceNodeTemplates
390 public void testServiceNodeTemplates() throws SdcToscaParserException {
391 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplates();
392 assertNotNull(serviceVfList);
393 assertEquals(3, serviceVfList.size());
394 assertEquals(serviceVfList.get(2).getName(), "exVL");
398 //region filterNodeTemplatePropertiesByValue
400 public void testFilterNodeTemplatePropertiesByContains() {
401 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
402 boolean isChecked = false;
403 for (NodeTemplate vfc: vfcs) {
404 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
407 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfc, FilterType.CONTAINS, "get_input");
409 assertEquals(7, filteredInputs.size());
410 assertEquals("get_input:availabilityzone_name", filteredInputs.get("compute_pd_server_availability_zone"));
411 assertEquals("get_input:[pd_server_names, 0]", filteredInputs.get("compute_pd_server_name"));
412 assertEquals("get_input:node_count", filteredInputs.get("port_pd01_port_ip_requirements#ip_count_required#count"));
418 assertTrue(isChecked);
422 public void testFilterNodeTemplatePropertiesByDummyContains() {
423 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
424 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.CONTAINS, "dummy");
425 assertNotNull(filteredInputs);
426 assertEquals(0, filteredInputs.size());
430 public void testFilterNodeTemplatePropertiesByEquals() {
431 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
432 boolean isChecked = false;
433 for (NodeTemplate vfc: vfcs) {
434 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
437 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfc, FilterType.EQUALS, "oam");
439 assertEquals(2, filteredInputs.size());
440 assertEquals("oam", filteredInputs.get("port_pd02_port_network_role_tag"));
441 assertEquals("oam", filteredInputs.get("port_pd01_port_network_role_tag"));
446 assertTrue(isChecked);
450 public void testFilterNodeTemplatePropertiesByDummyEquals() {
451 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
452 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, "dummy");
453 assertNotNull(filteredInputs);
454 assertEquals(0, filteredInputs.size());
458 public void testFilterNodeTemplatePropertiesByNullFilterType() {
459 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
460 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), null, "ddc");
461 assertNotNull(filteredInputs);
462 assertEquals(0, filteredInputs.size());
466 public void testFilterNodeTemplatePropertiesByNullPattern() {
467 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
468 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, null);
469 assertNotNull(filteredInputs);
470 assertEquals(0, filteredInputs.size());
474 public void testFilterNodeTemplatePropertiesByNullVfc() {
475 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(null, FilterType.EQUALS, "ddc");
476 assertNotNull(filteredInputs);
477 assertEquals(0, filteredInputs.size());
481 //region getServiceNodeTemplateBySdcType
483 public void testServiceNodeTemplateBySdcType() {
484 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplateBySdcType(SdcTypes.VF);
485 assertNotNull(serviceVfList);
486 assertEquals(serviceVfList.size(), 2);
487 assertEquals(serviceVfList.get(0).getName(), "FDNT 1");
491 public void testServiceNodeTemplateBySdcTypeServiceProxy() {
492 List<NodeTemplate> serviceProxies = portMirroring.getServiceNodeTemplateBySdcType(SdcTypes.SERVICE_PROXY);
493 assertNotNull(serviceProxies);
494 assertEquals(serviceProxies.size(), 2);
498 public void testServiceNodeTemplateByNullSdcType() {
499 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplateBySdcType(null);
500 assertNotNull(serviceVfList);
501 assertEquals(serviceVfList.size(), 0);
505 //region getNodeTemplateBySdcType
507 public void testNodeTemplateBySdcType() {
508 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
509 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(vfList.get(0), SdcTypes.VFC);
510 assertNotNull(vfcList);
511 assertEquals(2, vfcList.size());
512 assertEquals("DNT_FW_RSG_SI_1", vfcList.get(0).getName());
516 public void testNodeTemplateByNullSdcType() {
517 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
518 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(vfList.get(0), null);
519 assertNotNull(vfcList);
520 assertEquals(0, vfcList.size());
524 public void testNodeTemplateBySdcTypeNullNT() {
525 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(null, SdcTypes.VFC);
526 assertNotNull(vfcList);
527 assertEquals(0, vfcList.size());
531 //region getVnfConfig
533 public void testGetVnfConfig() {
534 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
535 assertNotNull(vnfConfig);
536 assertEquals("vnfConfiguration", vnfConfig.getMetaData().getValue("name"));
540 public void testGetVnfConfigByNonFoundVNF() {
541 NodeTemplate vnfConfig = ipAssignCsarHelper.getVnfConfig("b5190df2-7880-4d6f-836f-56ab17e1b85b");
542 assertNull(vnfConfig);
546 public void testGetVnfConfigByDummyUUID() {
547 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("XXX");
548 assertNull(vnfConfig);
552 public void testGetVnfConfigByNullUUID() {
553 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig(null);
554 assertNull(vnfConfig);
558 public void testGetVfcTypWithoutVnf() {
559 List<NodeTemplate> vfcList = nfodCsarHlper.getVfcListByVf("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
560 assertNotNull(vfcList);
561 assertEquals(2, vfcList.size());
567 public void testNestedVfcByExistCvfc() {
568 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("71389f8b-8671-4a43-a991-59fb621d3615");
569 assertNotNull(vfcList);
570 assertEquals(vfcList.size(), 2);
571 assertEquals("VFC1 DUMMY", vfcList.get(0).getName());
572 assertEquals("VF_VNF", vfcList.get(1).getName());
576 public void testNestedVfcByNullVf() {
577 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf(null);
578 assertNotNull(vfcList);
579 assertEquals(0, vfcList.size());
583 public void testNestedVfcByDummyVf() {
584 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("dummy");
585 assertNotNull(vfcList);
586 assertEquals(0, vfcList.size());
592 public void testHasTopologyByVF() {
593 List<NodeTemplate> vfList = nestedVfcCsarHlper.getServiceVfList();
594 boolean hasTopology = nestedVfcCsarHlper.hasTopology(vfList.get(0));
595 assertEquals(true, hasTopology);
599 public void testHasTopologyByCVFC() {
600 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("71389f8b-8671-4a43-a991-59fb621d3615");
601 boolean hasTopology = nestedVfcCsarHlper.hasTopology(vfcList.get(1));
602 assertEquals(true, hasTopology);
606 public void testHasTopologyByVL() {
607 List<NodeTemplate> serviceVlList = fdntCsarHelper.getServiceVlList();
608 boolean hasTopology = fdntCsarHelper.hasTopology(serviceVlList.get(0));
609 assertEquals(false, hasTopology);
613 public void testHasTopologyByNull() {
614 boolean hasTopology = fdntCsarHelper.hasTopology(null);
615 assertEquals(false, hasTopology);
619 //region getNodeTemplateChildren
621 public void testGetNodeTemplatesListOfNodeTemplateByVF() {
622 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
623 List<NodeTemplate> children = fdntCsarHelper.getNodeTemplateChildren(vfList.get(0));
624 assertNotNull(children);
625 assertEquals(3, children.size());
627 children.sort(Comparator.comparing(NodeTemplate::getName));
629 assertEquals("DNT_FW_RSG_SI_1", children.get(1).getName());
630 assertEquals("VFC", children.get(1).getMetaData().getValue("type"));
631 assertEquals("DNT_PORT", children.get(2).getName());
632 assertEquals("CP", children.get(2).getMetaData().getValue("type"));
636 public void testGetNodeTemplatesListOfNodeTemplateByVFC() {
637 List<NodeTemplate> vfList = nestedVfcCsarHlper.getServiceVfList();
638 List<NodeTemplate> vfChildren = nestedVfcCsarHlper.getNodeTemplateChildren(vfList.get(0));
639 assertNotNull(vfChildren);
640 assertEquals(vfChildren.size(), 2);
641 vfChildren.sort(Comparator.comparing(NodeTemplate::getName));
642 assertEquals("VFC1 DUMMY", vfChildren.get(0).getName());
643 assertEquals("VF_VNF", vfChildren.get(1).getName());
644 assertEquals("CVFC", vfChildren.get(1).getMetaData().getValue("type"));
647 List<NodeTemplate> vfcChildren = nestedVfcCsarHlper.getNodeTemplateChildren(vfChildren.get(1));
648 assertNotNull(vfcChildren);
649 assertEquals(vfcChildren.size(), 3);
650 vfcChildren.sort(Comparator.comparing(NodeTemplate::getName));
651 assertEquals("Test NIC 02_wan_port", vfcChildren.get(0).getName());
652 assertEquals("Test NIC_wan_port", vfcChildren.get(1).getName());
653 assertEquals("VF", vfcChildren.get(2).getName());
657 public void testGetNodeTemplatesListOfNodeTemplateByNull() {
658 List<NodeTemplate> children = fdntCsarHelper.getNodeTemplateChildren(null);
659 assertNotNull(children);
660 assertEquals(0, children.size());
665 // Get specific VNF properties
667 public void testGetVnfConfigGetProperties() {
668 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
669 assertNotNull(vnfConfig);
670 assertEquals("vnfConfiguration", vnfConfig.getMetaData().getValue("name"));
672 String manufacturer_reference_number = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_12345_for_FortiGate-VM00#vendor_info#manufacturer_reference_number");
673 String num_cpus = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_67890_for_FortiGate-VM01#compute_flavor#num_cpus");
674 String sp_part_number = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_67890_for_FortiGate-VM01#sp_part_number");
676 assertEquals("FortiGate-VM00",manufacturer_reference_number);
677 assertEquals("10",num_cpus);
678 assertEquals("ATT_part_67890_for_FortiGate-VM01",sp_part_number);
682 // Check that get vnfconfiguration not return as VFC
684 public void testGetVfcTypWithoutVnfCheckNames() {
685 List<NodeTemplate> vfcList = nfodCsarHlper.getVfcListByVf("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
686 assertNotNull(vfcList);
687 assertEquals(2, vfcList.size());
688 for (int i = 0; i < vfcList.size(); i++) {
690 String Name= vfcList.get(i).getName();
692 assertEquals(false, Name.equals("vFW_VNF_Configuration"));
698 public void testNewGetVnfConfigGetProperties() {
699 NodeTemplate vnfConfig = nfodNEWCsarHlper.getVnfConfig("a6587663-b27f-4e88-8a86-604604302ce6");
700 assertNotNull(vnfConfig);
701 assertEquals("vnfConfiguration", vnfConfig.getMetaData().getValue("name"));
703 //Deployment flavor 1
704 String manufacturer_reference_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#vendor_info#manufacturer_reference_number");
705 String num_cpus = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#compute_flavor#num_cpus");
706 String sp_part_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#sp_part_number");
708 assertEquals("234567",manufacturer_reference_number);
709 assertEquals("2",num_cpus);
710 assertEquals("123456",sp_part_number);
712 //Deployment flavor 2
713 manufacturer_reference_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#vendor_info#manufacturer_reference_number");
714 num_cpus = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#compute_flavor#num_cpus");
715 sp_part_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#sp_part_number");
717 assertEquals("EP_manufacturerReferenceNumberkbAiqZZNzx1",manufacturer_reference_number);
718 assertEquals("1",num_cpus);
719 assertEquals("FG_partNumbereJqQjUkteF1",sp_part_number);
723 // Check that get vnfconfiguration not return as VFC
725 public void testNewGetVfcTypWithoutVnfCheckNames() {
726 List<NodeTemplate> vfcList = nfodNEWCsarHlper.getVfcListByVf("a6587663-b27f-4e88-8a86-604604302ce6");
727 assertNotNull(vfcList);
728 assertEquals(1, vfcList.size());
729 for (int i = 0; i < vfcList.size(); i++) {
731 String Name= vfcList.get(i).getName();
733 assertEquals(false, Name.equals("name_6GkVrOjnGp1_VNF_Configuration"));
737 //region getServiceNodeTemplateByNodeName
739 public void testGetServiceNodeTemplateByRealNodeName() {
740 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName("FDNT 1");
741 assertNotNull(nodeTemplate);
742 assertEquals(nodeTemplate.getName(), "FDNT 1");
743 assertEquals(nodeTemplate.getMetaData().getValue("type"), "VF");
747 public void testGetServiceNodeTemplateByNullNodeName() {
748 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName(null);
749 assertNull(nodeTemplate);
753 public void testGetServiceNodeTemplateByDummyNodeName() {
754 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName("dummy");
755 assertNull(nodeTemplate);
761 //region resolve get_input
763 public void testResolveGetInputForComplexTypeAndList() {
764 //port_pd01_port_ip_requirements is of type list<org.openecomp.datatypes.network.IpRequirements>
766 // 1) "default" resolving
767 // 2) complex type resolving
768 // 3) List access resolving
769 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
770 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
771 assertTrue(propertyAsObject instanceof ArrayList);
772 assertEquals(2, ((ArrayList) propertyAsObject).size());
773 //port_pd01_port_ip_requirements:
774 //- get_input: [ip_requirements, 0]
775 //- get_input: [ip_requirements, 1]
776 assertEquals("subnet_role_4", ((Map) ((ArrayList) propertyAsObject).get(0)).get("subnet_role"));
777 assertEquals("subnet_role_6", ((Map) ((ArrayList) propertyAsObject).get(1)).get("subnet_role"));
781 public void testResolveGetInputForPrimitiveTypeString() {
782 //This test covers "default" resolving of primitive - as Object
783 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
784 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_network_role_tag");
785 assertEquals("oam", propertyAsObject);
789 public void testResolveGetInputForPrimitiveTypeInteger() {
790 //This test covers "default" resolving of primitive - as String
791 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
792 String propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyLeafValue(vfcs.get(0), "port_pd01_port_order");
793 assertEquals("1", propertyAsObject);
797 public void testResolveGetInputForMap() {
798 //This test covers "default" resolving of primitive - as Map
799 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
800 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd02_port_ip_requirements#ip_count_required");
801 assertTrue(propertyAsObject instanceof Map);
802 assertEquals(false, ((Map)propertyAsObject).get("is_required"));
806 public void testResolveGetInputForAllHierarchy() {
807 //This test covers "default" resolving from service level
808 List<NodeTemplate> vfs = resolveGetInputCsar.getServiceVfList();
809 Object vfPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfs.get(0), "vm_count");
810 assertEquals(2, vfPropertyAsObject);
811 //This test covers property assignment resolving on VFI level (service template), from Vf level
812 List<NodeTemplate> vfcs = resolveGetInputCsar.getNodeTemplateBySdcType(vfs.get(0), SdcTypes.VFC);
813 Object vfcPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfcs.get(0), "my_count");
814 assertEquals(2, vfcPropertyAsObject); //takes it from upper level (VF) property
818 public void testResolveGetInputNoDefValueInnerLevel() {
819 //This test covers resolving when no "default" value is supplied to the input - should be null - VF/VFCI level
820 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
821 String propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyLeafValue(vfcs.get(0), "index_value");
822 assertNull(propertyAsObject);
827 public void testResolveGetInputNoDefValueServiceLevel() {
828 //This test covers resolving when no "default" value is supplied to the input - should be null - Service/VFI level
829 List<NodeTemplate> vfs = resolveGetInputCsar.getServiceVfList();
830 Object vfPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfs.get(0), "port_order");
831 assertNull(vfPropertyAsObject);
836 // region Added by QA - Continue with testings of resolve get_input
839 public void testResolveGetInputForComplexTypeAndListWithFalseValue()
841 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
842 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
843 assertTrue(propertyAsObject instanceof ArrayList);
844 assertEquals(2, ((ArrayList) propertyAsObject).size());
845 assertEquals("get_input:[ip_requirements, 0]", ((ArrayList) propertyAsObject).get(0).toString());
846 assertEquals("get_input:[ip_requirements, 1]", ((ArrayList) propertyAsObject).get(1).toString());
850 public void testResolveGetInputForPrimitiveTypeStringWithFalseValue() {
851 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
852 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_network_role_tag");
853 assertEquals("get_input:role_tag_oam", propertyAsObject.toString());
857 public void testResolveGetInputForPrimitiveTypeListWithFalseValue() {
858 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
859 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyAsObject(vfcs.get(0), "compute_pd_server_name");
860 assertEquals("[get_input:[pd_server_names, 0]]", propertyAsObject.toString());
863 //@Test // Maybe a bug here.... need to check with Esti - Mait was sent.
864 public void testResolveGetInputForPrimitiveTypeList() {
865 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
866 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyAsObject(vfcs.get(0), "compute_pd_server_name");
867 assertEquals("\"ZRDM1MOGX01MPD001\"", propertyAsObject.toString());
871 public void testResolveGetInputForPrimitiveNullValue() {
872 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
873 @SuppressWarnings("unchecked")
874 List<String>propertyAsObject = (List<String>) resolveGetInputCsarQA.getNodeTemplatePropertyAsObject(vfcs.get(0), "compute_pd_server_availability_zone");
875 assertNull(propertyAsObject.get(0));
878 public void testResolveGetInputForPrimitiveIPValue() {
879 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
880 Object propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyAsObject(vfcs.get(0), "vm_image_name");
881 assertEquals("107.239.36.5", propertyAsObject.toString());
884 //QA region getServiceNodeTemplateByNodeName tests
887 public void getServiceNodeTemplateByNodeNameTypeVF() {
888 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("VF_1_V_port_1 0");
889 assertNotNull(nodeTemplate);
890 assertEquals(nodeTemplate.getName(), "VF_1_V_port_1 0");
891 assertEquals(nodeTemplate.getMetaData().getValue("type"), "VF");
895 public void getServiceNodeTemplateByNodeNameTypeVL() {
896 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("ExtVL 0");
897 assertNotNull(nodeTemplate);
898 assertEquals(nodeTemplate.getName(), "ExtVL 0");
899 assertEquals(nodeTemplate.getMetaData().getValue("type"), "VL");
903 public void getServiceNodeTemplateByNodeNameTypeCP() {
904 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("ExtCP 0");
905 assertNotNull(nodeTemplate);
906 assertEquals(nodeTemplate.getName(), "ExtCP 0");
907 assertEquals(nodeTemplate.getMetaData().getValue("type"), "CP");
911 public void getServiceNodeTemplateByNodeNameTypePNF() {
912 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("PNF TEST 0");
913 assertNotNull(nodeTemplate);
914 assertEquals(nodeTemplate.getName(), "PNF TEST 0");
915 assertEquals(nodeTemplate.getMetaData().getValue("type"), "PNF");
918 //QA region getServiceNodeTemplateBySdcType tests
921 public void getServiceNodeTemplateBySdcType_VF() {
922 List<NodeTemplate> vfList = QAServiceForToscaParserTests.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Vf1VPort1");
923 assertEquals(2, vfList.size());
924 assertEquals("VF_1_V_port_1", vfList.get(0).getMetaData().getValue("name"));
926 // endregion Added by QA - Continue with testings of resolve get_input
930 public void testResolveGetInputArrayStructure() {
931 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
932 Object propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyAsObject(vfcs.get(0), "compute_pd_server_name");
933 assertEquals( ((ArrayList)propertyAsObject).get(0).toString(), "\"ZRDM1MOGX01MPD001\"");
934 propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
935 assertEquals( ((ArrayList)propertyAsObject).get(1), null);