2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2019 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.onap.sdc.impl;
23 import static org.junit.jupiter.api.Assertions.assertEquals;
24 import static org.junit.jupiter.api.Assertions.assertFalse;
25 import static org.junit.jupiter.api.Assertions.assertNotNull;
26 import static org.junit.jupiter.api.Assertions.assertNull;
27 import static org.junit.jupiter.api.Assertions.assertTrue;
30 import java.util.stream.Collectors;
32 import com.google.common.collect.ImmutableMap;
33 import org.apache.commons.lang3.tuple.Pair;
34 import org.junit.jupiter.api.Test;
35 import org.junit.jupiter.api.extension.ExtendWith;
36 import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;
37 import org.onap.sdc.tosca.parser.enums.FilterType;
38 import org.onap.sdc.tosca.parser.enums.SdcTypes;
39 import org.onap.sdc.toscaparser.api.CapabilityAssignment;
40 import org.onap.sdc.toscaparser.api.CapabilityAssignments;
41 import org.onap.sdc.toscaparser.api.Group;
42 import org.onap.sdc.toscaparser.api.NodeTemplate;
43 import org.onap.sdc.toscaparser.api.Policy;
44 import org.onap.sdc.toscaparser.api.Property;
45 import org.onap.sdc.toscaparser.api.parameters.Annotation;
46 import org.onap.sdc.toscaparser.api.parameters.Input;
48 @ExtendWith({SdcToscaParserBasicTest.class})
49 class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
51 //region getServiceVfList
53 public void testNumberOfVfSunnyFlow() throws SdcToscaParserException {
54 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
55 assertNotNull(serviceVfList);
56 assertEquals(2, serviceVfList.size());
60 public void testGetNodeTemplateCustomizationUuid(){
61 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
62 boolean found = false;
63 for (NodeTemplate nt : serviceVfList){
64 if (nt.getName().equals("FDNT 1")){
66 assertEquals(fdntCsarHelper.getNodeTemplateCustomizationUuid(nt), "56179cd8-de4a-4c38-919b-bbc4452d2d73");
73 public void testSingleVFWithNotMetadata() throws SdcToscaParserException {
74 //If there is no metadata on VF level - There is no VF's because the type is taken from metadata values.
75 List<NodeTemplate> serviceVfList = rainyCsarHelperSingleVf.getServiceVfList();
76 assertNotNull(serviceVfList);
77 assertEquals(0, serviceVfList.size());
81 //region getNodeTemplatePropertyLeafValue
83 public void testNodeTemplateFlatProperty() throws SdcToscaParserException {
84 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
85 assertEquals("2", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "availability_zone_max_count"));
86 assertEquals("3", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "max_instances"));
87 assertEquals("some code", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_naming_code"));
91 public void testNodeTemplateFlatFunctionProperty() throws SdcToscaParserException {
92 List<NodeTemplate> serviceVfList = fdntCsarHelperWithInputs.getServiceVfList();
93 assertEquals(null, fdntCsarHelperWithInputs.getNodeTemplatePropertyLeafValue(serviceVfList.get(1), "target_network_role"));
97 public void testNodeTemplateNestedFunctionProperty() throws SdcToscaParserException {
98 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
99 assertEquals(null, ipAssignCsarHelper.getNodeTemplatePropertyLeafValue(vfcs.get(0), "port_pd01_port_ip_requirements#ip_count_required#count"));
103 public void testNodeTemplateNestedProperty() throws SdcToscaParserException {
104 List<NodeTemplate> serviceVlList = fdntCsarHelper.getServiceVlList();
105 NodeTemplate nodeTemplate = serviceVlList.get(0);
106 //System.out.println("node template " + nodeTemplate.toString());
107 assertEquals("24", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_assignments#ipv4_subnet_default_assignment#cidr_mask"));
108 assertEquals("7a6520b-9982354-ee82992c-105720", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_flows#vpn_binding"));
112 public void testNodeTemplateNestedPropertyFromInput() throws SdcToscaParserException {
113 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
114 NodeTemplate nodeTemplate = serviceVfList.get(0);
115 //System.out.println("node template " + nodeTemplate.toString());
116 assertEquals("true", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#ecomp_generated_naming"));
117 assertEquals("FDNT_instance_VF_2", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#naming_policy"));
121 public void testNodeTemplateNestedPropertyNotExists() throws SdcToscaParserException {
122 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
123 String nodeTemplatePropertyLeafValue = fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_role#nf_naming#kuku");
124 assertNull(nodeTemplatePropertyLeafValue);
128 public void testNodeTemplateFlatPropertyByNotFoundProperty() throws SdcToscaParserException {
129 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
130 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "XXXX");
131 assertNull(nodeTemplatePropertyLeafValue);
135 public void testNodeTemplateFlatPropertyByNullProperty() throws SdcToscaParserException {
136 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
137 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), null);
138 assertNull(nodeTemplatePropertyLeafValue);
142 public void testNodeTemplateFlatPropertyByNullNodeTemplate() throws SdcToscaParserException {
143 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(null, "availability_zone_max_count");
144 assertNull(nodeTemplatePropertyLeafValue);
148 //region getServiceVlList
150 public void testServiceVl() {
151 List<NodeTemplate> vlList = fdntCsarHelper.getServiceVlList();
152 assertEquals(1, vlList.size());
153 assertEquals("exVL", vlList.get(0).getName());
157 public void testNumberOfVLRainyFlow() throws SdcToscaParserException {
158 List<NodeTemplate> serviceVlList = rainyCsarHelperMultiVfs.getServiceVlList();
159 assertNotNull(serviceVlList);
160 assertEquals(0, serviceVlList.size());
164 //region getServiceNodeTemplatesByType
166 public void testServiceNodeTemplatesByType() throws SdcToscaParserException {
167 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Fdnt");
168 assertNotNull(serviceVfList);
169 assertEquals(1, serviceVfList.size());
173 public void testServiceNodeTemplatesByNull() {
174 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType(null);
175 assertNotNull(nodeTemplates);
176 assertEquals(0, nodeTemplates.size());
180 public void testServiceNodeTemplatesByNotFoundProperty() {
181 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType("XXX");
182 assertNotNull(nodeTemplates);
183 assertEquals(0, nodeTemplates.size());
187 //region getTypeOfNodeTemplate
189 public void testGetTypeOfNodeTemplate() {
190 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
191 String typeOfNodeTemplate = fdntCsarHelper.getTypeOfNodeTemplate(serviceVfList.get(0));
192 assertEquals("org.openecomp.resource.vf.Fdnt", typeOfNodeTemplate);
196 public void testGetTypeOfNullNodeTemplate() {
197 String typeOfNodeTemplate = rainyCsarHelperMultiVfs.getTypeOfNodeTemplate(null);
198 assertNull(typeOfNodeTemplate);
202 //region getAllottedResources
204 public void testGetAllottedResources() {
205 List<NodeTemplate> allottedResources = fdntCsarHelper.getAllottedResources();
206 assertEquals(1, allottedResources.size());
210 public void testGetAllottedResourcesZero() {
211 List<NodeTemplate> allottedResources = rainyCsarHelperMultiVfs.getAllottedResources();
212 assertNotNull(allottedResources);
213 assertEquals(0, allottedResources.size());
217 //region getVfcListByVf
219 public void testGetVfcFromVf() {
220 List<NodeTemplate> vfcListByVf = fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID);
221 assertEquals(2, vfcListByVf.size());
225 public void testVfcListByNull() {
226 List<NodeTemplate> vfcList = rainyCsarHelperMultiVfs.getVfcListByVf(null);
227 assertNotNull(vfcList);
228 assertEquals(0, vfcList.size());
232 public void testVfcListByNotFoundProperty() {
233 List<NodeTemplate> vfcList = rainyCsarHelperMultiVfs.getVfcListByVf("XXX");
234 assertNotNull(vfcList);
235 assertEquals(0, vfcList.size());
239 //region getCpListByVf
241 public void testGetCpFromVf() {
242 List<NodeTemplate> cpListByVf = fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID);
243 assertEquals(1, cpListByVf.size());
244 NodeTemplate nodeTemplate = cpListByVf.get(0);
245 assertEquals("DNT_PORT", nodeTemplate.getName());
249 public void testGetCpFromVfByNullId() {
250 List<NodeTemplate> cpListByVf = rainyCsarHelperMultiVfs.getCpListByVf(null);
251 assertNotNull(cpListByVf);
252 assertEquals(0, cpListByVf.size());
256 public void testGetCpFromVfXxx() {
257 List<NodeTemplate> cpListByVf = rainyCsarHelperMultiVfs.getCpListByVf("XXXXX");
258 assertNotNull(cpListByVf);
259 assertEquals(0, cpListByVf.size());
263 //region getNodeTemplatePairsByReqName
265 public void testGetNodeTemplatePairsByReqName() {
266 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
267 assertNotNull(nodeTemplatePairsByReqName);
268 assertEquals(1, nodeTemplatePairsByReqName.size());
269 Pair<NodeTemplate, NodeTemplate> pair = nodeTemplatePairsByReqName.get(0);
270 NodeTemplate cp = pair.getLeft();
271 NodeTemplate vfc = pair.getRight();
272 assertEquals("DNT_PORT", cp.getName());
273 assertEquals("DNT_FW_RHRG", vfc.getName());
277 public void testGetNodeTemplatePairsByReqNameWithNullVF() {
278 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
279 null, fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
280 assertNotNull(nodeTemplatePairsByReqName);
281 assertEquals(0, nodeTemplatePairsByReqName.size());
285 public void testGetNodeTemplatePairsByReqNameWithEmptyVF() {
286 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
287 new ArrayList<>(), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
288 assertNotNull(nodeTemplatePairsByReqName);
289 assertEquals(0, nodeTemplatePairsByReqName.size());
293 public void testGetNodeTemplatePairsByReqNameWithNullCap() {
294 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
295 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), null, "binding");
296 assertNotNull(nodeTemplatePairsByReqName);
297 assertEquals(0, nodeTemplatePairsByReqName.size());
301 public void testGetNodeTemplatePairsByReqNameWithEmptyCap() {
302 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
303 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), new ArrayList<>(), "binding");
304 assertNotNull(nodeTemplatePairsByReqName);
305 assertEquals(0, nodeTemplatePairsByReqName.size());
309 public void testGetNodeTemplatePairsByReqNameWithNullReq() {
310 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
311 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), null);
312 assertNotNull(nodeTemplatePairsByReqName);
313 assertEquals(0, nodeTemplatePairsByReqName.size());
317 public void testGetNodeTemplatePairsByReqNameWithDummyReq() {
319 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
320 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "XXX");
321 assertNotNull(nodeTemplatePairsByReqName);
322 assertEquals(0, nodeTemplatePairsByReqName.size());
326 //region getMembersOfVfModule
328 public void testGetMembersOfVfModule() {
329 NodeTemplate vf = fdntCsarHelper.getServiceVfList().get(0);
330 List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
331 assertEquals(2, vfModulesByVf.size());
332 for (Group group : vfModulesByVf) {
333 List<NodeTemplate> membersOfVfModule = fdntCsarHelper.getMembersOfVfModule(vf, group);
334 assertNotNull(membersOfVfModule);
335 if (group.getName().equals("fdnt1..Fdnt..base_stsi_dnt_frwl..module-0")) {
336 assertEquals(1, membersOfVfModule.size());
337 NodeTemplate nodeTemplate = membersOfVfModule.get(0);
338 assertEquals("DNT_FW_RSG_SI_1", nodeTemplate.getName());
340 assertEquals("fdnt1..Fdnt..mod_vmsi_dnt_fw_parent..module-1", group.getName());
341 assertEquals(1, membersOfVfModule.size());
342 NodeTemplate nodeTemplate = membersOfVfModule.get(0);
343 assertEquals("DNT_FW_RHRG", nodeTemplate.getName());
349 public void testMembersOfVfModuleByNullVf() {
350 List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
351 List<NodeTemplate> nodeTemplates = fdntCsarHelper.getMembersOfVfModule(null, vfModulesByVf.get(0));
352 assertNotNull(nodeTemplates);
353 assertEquals(0, nodeTemplates.size());
357 public void testMembersOfVfModuleByNullGroup() {
358 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
359 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getMembersOfVfModule(serviceVfList.get(0), null);
360 assertNotNull(nodeTemplates);
361 assertEquals(0, nodeTemplates.size());
365 //region getCpPropertiesFromVfc
366 @SuppressWarnings("unchecked")
368 public void testGetCpPropertiesFromVfc() {
369 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
370 boolean isChecked = false;
372 for (NodeTemplate vfc: vfcs) {
374 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
377 Map<String, Map<String, Object>> cps = ipAssignCsarHelper.getCpPropertiesFromVfcAsObject(vfc);
379 assertEquals(2,cps.size());
380 Map<String, Object> pd01 = cps.get("port_pd01_port");
381 assertEquals(5, pd01.size());
383 Map<String, Object> firstIpRequirements = (Map<String, Object>) ((List<Object>)pd01.get("ip_requirements")).get(0);
384 Map<String, Object> secondIpRequirements = (Map<String, Object>) ((List<Object>)pd01.get("ip_requirements")).get(1);
386 assertEquals("subnet_role_4", firstIpRequirements.get("subnet_role"));
387 assertEquals(4, firstIpRequirements.get("ip_version"));
388 assertEquals(true, ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("is_required"));
389 assertEquals("get_input:node_count", ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("count").toString());
390 assertEquals(false, ((Map<String, Object>)((Map<String, Object>)pd01.get("mac_requirements")).get("mac_count_required")).get("is_required"));
391 assertEquals("test_subnetpoolid", pd01.get("subnetpoolid"));
392 assertEquals("oam", pd01.get("network_role_tag"));
393 assertEquals(6, secondIpRequirements.get("ip_version"));
397 assertTrue(isChecked);
401 public void testGetCpPropertiesFromVfcForNullVFC() {
402 Map<String, Map<String, Object>> cps = ipAssignCsarHelper.getCpPropertiesFromVfcAsObject(null);
404 assertEquals(0, cps.size());
408 //region getNodeTemplatePropertyValueAsObject
410 public void testGetNodeTemplatePropertyAsObject() {
411 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
412 assertEquals("2", fdntCsarHelper.getNodeTemplatePropertyValueAsObject(serviceVfList.get(0), "availability_zone_max_count"));
413 assertEquals(3, fdntCsarHelper.getNodeTemplatePropertyValueAsObject(serviceVfList.get(0), "max_instances"));
414 assertEquals("some code", fdntCsarHelper.getNodeTemplatePropertyValueAsObject(serviceVfList.get(0), "nf_naming_code"));
418 //region getServiceNodeTemplates
420 public void testServiceNodeTemplates() throws SdcToscaParserException {
421 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplates();
422 assertNotNull(serviceVfList);
423 assertEquals(3, serviceVfList.size());
424 assertEquals(serviceVfList.get(2).getName(), "exVL");
428 //region filterNodeTemplatePropertiesByValue
430 public void testFilterNodeTemplatePropertiesByContains() {
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.CONTAINS, "get_input");
439 assertEquals(7, filteredInputs.size());
440 assertEquals("get_input:availabilityzone_name", filteredInputs.get("compute_pd_server_availability_zone"));
441 assertEquals("get_input:[pd_server_names, 0]", filteredInputs.get("compute_pd_server_name"));
442 assertEquals("get_input:node_count", filteredInputs.get("port_pd01_port_ip_requirements#ip_count_required#count"));
448 assertTrue(isChecked);
452 public void testFilterNodeTemplatePropertiesByDummyContains() {
453 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
454 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.CONTAINS, "dummy");
455 assertNotNull(filteredInputs);
456 assertEquals(0, filteredInputs.size());
460 public void testFilterNodeTemplatePropertiesByEquals() {
461 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
462 boolean isChecked = false;
463 for (NodeTemplate vfc: vfcs) {
464 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
467 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfc, FilterType.EQUALS, "oam");
469 assertEquals(2, filteredInputs.size());
470 assertEquals("oam", filteredInputs.get("port_pd02_port_network_role_tag"));
471 assertEquals("oam", filteredInputs.get("port_pd01_port_network_role_tag"));
476 assertTrue(isChecked);
480 public void testFilterNodeTemplatePropertiesByDummyEquals() {
481 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
482 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, "dummy");
483 assertNotNull(filteredInputs);
484 assertEquals(0, filteredInputs.size());
488 public void testFilterNodeTemplatePropertiesByNullFilterType() {
489 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
490 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), null, "ddc");
491 assertNotNull(filteredInputs);
492 assertEquals(0, filteredInputs.size());
496 public void testFilterNodeTemplatePropertiesByNullPattern() {
497 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
498 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, null);
499 assertNotNull(filteredInputs);
500 assertEquals(0, filteredInputs.size());
504 public void testFilterNodeTemplatePropertiesByNullVfc() {
505 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(null, FilterType.EQUALS, "ddc");
506 assertNotNull(filteredInputs);
507 assertEquals(0, filteredInputs.size());
511 //region getServiceNodeTemplateBySdcType
513 public void testServiceNodeTemplateBySdcType() {
514 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplateBySdcType(SdcTypes.VF);
515 assertNotNull(serviceVfList);
516 assertEquals(serviceVfList.size(), 2);
517 assertEquals(serviceVfList.get(0).getName(), "FDNT 1");
521 public void testServiceNodeTemplateBySdcTypeServiceProxy() {
522 List<NodeTemplate> serviceProxies = portMirroring.getServiceNodeTemplateBySdcType(SdcTypes.SERVICE_PROXY);
523 assertNotNull(serviceProxies);
524 assertEquals(serviceProxies.size(), 2);
528 public void testServiceNodeTemplateByNullSdcType() {
529 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplateBySdcType(null);
530 assertNotNull(serviceVfList);
531 assertEquals(serviceVfList.size(), 0);
535 //region getNodeTemplateBySdcType
537 public void testNodeTemplateBySdcType() {
538 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
539 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(vfList.get(0), SdcTypes.VFC);
540 assertNotNull(vfcList);
541 assertEquals(2, vfcList.size());
542 assertEquals("DNT_FW_RSG_SI_1", vfcList.get(0).getName());
546 public void testNodeTemplateByNullSdcType() {
547 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
548 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(vfList.get(0), null);
549 assertNotNull(vfcList);
550 assertEquals(0, vfcList.size());
554 public void testNodeTemplateBySdcTypeNullNT() {
555 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(null, SdcTypes.VFC);
556 assertNotNull(vfcList);
557 assertEquals(0, vfcList.size());
561 //region getVnfConfig
563 public void testGetVnfConfig() {
564 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
565 assertNotNull(vnfConfig);
566 assertEquals("vnfConfiguration", vnfConfig.getMetadata().getValue("name"));
570 public void testGetVnfConfigByNonFoundVNF() {
571 NodeTemplate vnfConfig = ipAssignCsarHelper.getVnfConfig("b5190df2-7880-4d6f-836f-56ab17e1b85b");
572 assertNull(vnfConfig);
576 public void testGetVnfConfigByDummyUUID() {
577 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("XXX");
578 assertNull(vnfConfig);
582 public void testGetVnfConfigByNullUUID() {
583 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig(null);
584 assertNull(vnfConfig);
588 public void testGetVfcTypWithoutVnf() {
589 List<NodeTemplate> vfcList = nfodCsarHlper.getVfcListByVf("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
590 assertNotNull(vfcList);
591 assertEquals(2, vfcList.size());
597 public void testNestedVfcByExistCvfc() {
598 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("71389f8b-8671-4a43-a991-59fb621d3615");
599 assertNotNull(vfcList);
600 assertEquals(vfcList.size(), 2);
601 assertEquals("VFC1 DUMMY", vfcList.get(0).getName());
602 assertEquals("VF_VNF", vfcList.get(1).getName());
606 public void testNestedVfcByNullVf() {
607 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf(null);
608 assertNotNull(vfcList);
609 assertEquals(0, vfcList.size());
613 public void testNestedVfcByDummyVf() {
614 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("dummy");
615 assertNotNull(vfcList);
616 assertEquals(0, vfcList.size());
622 public void testHasTopologyByVF() {
623 List<NodeTemplate> vfList = nestedVfcCsarHlper.getServiceVfList();
624 boolean hasTopology = nestedVfcCsarHlper.hasTopology(vfList.get(0));
625 assertEquals(true, hasTopology);
629 public void testHasTopologyByCVFC() {
630 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("71389f8b-8671-4a43-a991-59fb621d3615");
631 boolean hasTopology = nestedVfcCsarHlper.hasTopology(vfcList.get(1));
632 assertEquals(true, hasTopology);
636 public void testHasTopologyByVL() {
637 List<NodeTemplate> serviceVlList = fdntCsarHelper.getServiceVlList();
638 boolean hasTopology = fdntCsarHelper.hasTopology(serviceVlList.get(0));
639 assertEquals(false, hasTopology);
643 public void testHasTopologyByNull() {
644 boolean hasTopology = fdntCsarHelper.hasTopology(null);
645 assertEquals(false, hasTopology);
649 //region getNodeTemplateChildren
651 public void testGetNodeTemplatesListOfNodeTemplateByVF() {
652 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
653 List<NodeTemplate> children = fdntCsarHelper.getNodeTemplateChildren(vfList.get(0));
654 assertNotNull(children);
655 assertEquals(3, children.size());
657 children.sort(Comparator.comparing(NodeTemplate::getName));
659 assertEquals("DNT_FW_RSG_SI_1", children.get(1).getName());
660 assertEquals("VFC", children.get(1).getMetadata().getValue("type"));
661 assertEquals("DNT_PORT", children.get(2).getName());
662 assertEquals("CP", children.get(2).getMetadata().getValue("type"));
666 public void testGetNodeTemplatesListOfNodeTemplateByVFC() {
667 List<NodeTemplate> vfList = nestedVfcCsarHlper.getServiceVfList();
668 List<NodeTemplate> vfChildren = nestedVfcCsarHlper.getNodeTemplateChildren(vfList.get(0));
669 assertNotNull(vfChildren);
670 assertEquals(vfChildren.size(), 2);
671 vfChildren.sort(Comparator.comparing(NodeTemplate::getName));
672 assertEquals("VFC1 DUMMY", vfChildren.get(0).getName());
673 assertEquals("VF_VNF", vfChildren.get(1).getName());
674 assertEquals("CVFC", vfChildren.get(1).getMetadata().getValue("type"));
677 List<NodeTemplate> vfcChildren = nestedVfcCsarHlper.getNodeTemplateChildren(vfChildren.get(1));
678 assertNotNull(vfcChildren);
679 assertEquals(vfcChildren.size(), 3);
680 vfcChildren.sort(Comparator.comparing(NodeTemplate::getName));
681 assertEquals("Test NIC 02_wan_port", vfcChildren.get(0).getName());
682 assertEquals("Test NIC_wan_port", vfcChildren.get(1).getName());
683 assertEquals("VF", vfcChildren.get(2).getName());
687 public void testGetNodeTemplatesListOfNodeTemplateByNull() {
688 List<NodeTemplate> children = fdntCsarHelper.getNodeTemplateChildren(null);
689 assertNotNull(children);
690 assertEquals(0, children.size());
695 // Get specific VNF properties
697 public void testGetVnfConfigGetProperties() {
698 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
699 assertNotNull(vnfConfig);
700 assertEquals("vnfConfiguration", vnfConfig.getMetadata().getValue("name"));
702 String manufacturer_reference_number = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_12345_for_FortiGate-VM00#vendor_info#manufacturer_reference_number");
703 String num_cpus = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_67890_for_FortiGate-VM01#compute_flavor#num_cpus");
704 String sp_part_number = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_67890_for_FortiGate-VM01#sp_part_number");
706 assertEquals("FortiGate-VM00",manufacturer_reference_number);
707 assertEquals("10",num_cpus);
708 assertEquals("ATT_part_67890_for_FortiGate-VM01",sp_part_number);
712 // Check that get vnfconfiguration not return as VFC
714 public void testGetVfcTypWithoutVnfCheckNames() {
715 List<NodeTemplate> vfcList = nfodCsarHlper.getVfcListByVf("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
716 assertNotNull(vfcList);
717 assertEquals(2, vfcList.size());
718 for (int i = 0; i < vfcList.size(); i++) {
720 String Name= vfcList.get(i).getName();
722 assertEquals(false, Name.equals("vFW_VNF_Configuration"));
728 public void testNewGetVnfConfigGetProperties() {
729 NodeTemplate vnfConfig = nfodNEWCsarHlper.getVnfConfig("a6587663-b27f-4e88-8a86-604604302ce6");
730 assertNotNull(vnfConfig);
731 assertEquals("vnfConfiguration", vnfConfig.getMetadata().getValue("name"));
733 //Deployment flavor 1
734 String manufacturer_reference_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#vendor_info#manufacturer_reference_number");
735 String num_cpus = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#compute_flavor#num_cpus");
736 String sp_part_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#sp_part_number");
738 assertEquals("234567",manufacturer_reference_number);
739 assertEquals("2",num_cpus);
740 assertEquals("123456",sp_part_number);
742 //Deployment flavor 2
743 manufacturer_reference_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#vendor_info#manufacturer_reference_number");
744 num_cpus = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#compute_flavor#num_cpus");
745 sp_part_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#sp_part_number");
747 assertEquals("EP_manufacturerReferenceNumberkbAiqZZNzx1",manufacturer_reference_number);
748 assertEquals("1",num_cpus);
749 assertEquals("FG_partNumbereJqQjUkteF1",sp_part_number);
753 // Check that get vnfconfiguration not return as VFC
755 public void testNewGetVfcTypWithoutVnfCheckNames() {
756 List<NodeTemplate> vfcList = nfodNEWCsarHlper.getVfcListByVf("a6587663-b27f-4e88-8a86-604604302ce6");
757 assertNotNull(vfcList);
758 assertEquals(1, vfcList.size());
759 for (int i = 0; i < vfcList.size(); i++) {
761 String Name= vfcList.get(i).getName();
763 assertEquals(false, Name.equals("name_6GkVrOjnGp1_VNF_Configuration"));
767 //region getServiceNodeTemplateByNodeName
769 public void testGetServiceNodeTemplateByRealNodeName() {
770 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName("FDNT 1");
771 assertNotNull(nodeTemplate);
772 assertEquals(nodeTemplate.getName(), "FDNT 1");
773 assertEquals(nodeTemplate.getMetadata().getValue("type"), "VF");
777 public void testGetServiceNodeTemplateByNullNodeName() {
778 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName(null);
779 assertNull(nodeTemplate);
783 public void testGetServiceNodeTemplateByDummyNodeName() {
784 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName("dummy");
785 assertNull(nodeTemplate);
791 //region resolve get_input
792 @SuppressWarnings("rawtypes")
794 public void testResolveGetInputForComplexTypeAndList() {
795 //port_pd01_port_ip_requirements is of type list<org.openecomp.datatypes.network.IpRequirements>
797 // 1) "default" resolving
798 // 2) complex type resolving
799 // 3) List access resolving
800 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
801 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
802 assertTrue(propertyAsObject instanceof ArrayList);
803 assertEquals(2, ((ArrayList) propertyAsObject).size());
804 //port_pd01_port_ip_requirements:
805 //- get_input: [ip_requirements, 0]
806 //- get_input: [ip_requirements, 1]
807 assertEquals("subnet_role_4", ((Map) ((ArrayList) propertyAsObject).get(0)).get("subnet_role"));
808 assertEquals("subnet_role_6", ((Map) ((ArrayList) propertyAsObject).get(1)).get("subnet_role"));
812 public void testResolveGetInputForListOnNetworkCloud() {
813 final String related_network_role = "related_network_role";
814 List<NodeTemplate> serviceVfList = csarHelperServiceNetworkCloud.getServiceVfList();
815 assertNotNull(serviceVfList);
816 assertFalse(serviceVfList.isEmpty());
817 List<NodeTemplate> vfcListByVf = csarHelperServiceNetworkCloud.getVfcListByVf(csarHelperServiceNetworkCloud.getNodeTemplateCustomizationUuid(serviceVfList.get(0)));
818 assertNotNull(vfcListByVf);
819 assertFalse(vfcListByVf.isEmpty());
820 List<NodeTemplate> cpList = csarHelperServiceNetworkCloud.getNodeTemplateChildren(vfcListByVf.get(0));
821 assertNotNull(cpList);
822 assertFalse(cpList.isEmpty());
823 final Object propertyValue = cpList.get(0).getPropertyValue("related_networks");
824 assertNotNull(propertyValue);
825 ArrayList<Map<String, String>> relatedNetworkList = (ArrayList)propertyValue;
826 assertEquals(3, relatedNetworkList.size());
827 assertEquals("cor_direct_2", relatedNetworkList.get(0).get(related_network_role));
828 assertEquals("sgi_direct_2", relatedNetworkList.get(1).get(related_network_role));
829 assertEquals("int_imbl_2", relatedNetworkList.get(2).get(related_network_role));
833 public void testResolveGetInputForPrimitiveTypeString() {
834 //This test covers "default" resolving of primitive - as Object
835 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
836 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd01_port_network_role_tag");
837 assertEquals("oam", propertyAsObject);
841 public void testResolveGetInputForPrimitiveTypeInteger() {
842 //This test covers "default" resolving of primitive - as String
843 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
844 String propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyLeafValue(vfcs.get(0), "port_pd01_port_order");
845 assertEquals("1", propertyAsObject);
848 @SuppressWarnings("rawtypes")
850 public void testResolveGetInputForMap() {
851 //This test covers "default" resolving of primitive - as Map
852 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
853 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd02_port_ip_requirements#ip_count_required");
854 assertTrue(propertyAsObject instanceof Map);
855 assertEquals(false, ((Map)propertyAsObject).get("is_required"));
859 public void testResolveGetInputForAllHierarchy() {
860 //This test covers "default" resolving from service level
861 List<NodeTemplate> vfs = resolveGetInputCsar.getServiceVfList();
862 Object vfPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfs.get(0), "vm_count");
863 assertEquals(2, vfPropertyAsObject);
864 //This test covers property assignment resolving on VFI level (service template), from Vf level
865 List<NodeTemplate> vfcs = resolveGetInputCsar.getNodeTemplateBySdcType(vfs.get(0), SdcTypes.VFC);
866 Object vfcPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "my_count");
867 assertEquals(2, vfcPropertyAsObject); //takes it from upper level (VF) property
871 public void testResolveGetInputNoDefValueInnerLevel() {
872 //This test covers resolving when no "default" value is supplied to the input - should be null - VF/VFCI level
873 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
874 String propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyLeafValue(vfcs.get(0), "index_value");
875 assertNull(propertyAsObject);
880 public void testResolveGetInputNoDefValueServiceLevel() {
881 //This test covers resolving when no "default" value is supplied to the input - should be null - Service/VFI level
882 List<NodeTemplate> vfs = resolveGetInputCsar.getServiceVfList();
883 Object vfPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfs.get(0), "port_order");
884 assertNull(vfPropertyAsObject);
889 // region Added by QA - Continue with testings of resolve get_input
891 @SuppressWarnings("rawtypes")
893 public void testResolveGetInputForComplexTypeAndListWithFalseValue()
895 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
896 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
897 assertTrue(propertyAsObject instanceof ArrayList);
898 assertEquals(2, ((ArrayList) propertyAsObject).size());
899 assertEquals("get_input:[ip_requirements, 0]", ((ArrayList) propertyAsObject).get(0).toString());
900 assertEquals("get_input:[ip_requirements, 1]", ((ArrayList) propertyAsObject).get(1).toString());
904 public void testResolveGetInputForPrimitiveTypeStringWithFalseValue() {
905 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
906 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd01_port_network_role_tag");
907 assertEquals("get_input:role_tag_oam", propertyAsObject.toString());
911 public void testResolveGetInputForPrimitiveTypeListWithFalseValue() {
912 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
913 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "compute_pd_server_name");
914 assertEquals("[get_input:[pd_server_names, 0]]", propertyAsObject.toString());
917 //@Test // Maybe a bug here.... need to check with Esti - Mait was sent.
918 public void testResolveGetInputForPrimitiveTypeList() {
919 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
920 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "compute_pd_server_name");
921 assertEquals("\"ZRDM1MOGX01MPD001\"", propertyAsObject.toString());
925 public void testResolveGetInputForPrimitiveNullValue() {
926 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
927 @SuppressWarnings("unchecked")
928 List<String>propertyAsObject = (List<String>) resolveGetInputCsarQA.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "compute_pd_server_availability_zone");
929 assertNull(propertyAsObject.get(0));
932 public void testResolveGetInputForPrimitiveIPValue() {
933 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
934 Object propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "vm_image_name");
935 assertEquals("107.239.36.5", propertyAsObject.toString());
938 //QA region getServiceNodeTemplateByNodeName tests
941 public void getServiceNodeTemplateByNodeNameTypeVF() {
942 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("VF_1_V_port_1 0");
943 assertNotNull(nodeTemplate);
944 assertEquals(nodeTemplate.getName(), "VF_1_V_port_1 0");
945 assertEquals(nodeTemplate.getMetadata().getValue("type"), "VF");
949 public void getServiceNodeTemplateByNodeNameTypeVL() {
950 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("ExtVL 0");
951 assertNotNull(nodeTemplate);
952 assertEquals(nodeTemplate.getName(), "ExtVL 0");
953 assertEquals(nodeTemplate.getMetadata().getValue("type"), "VL");
957 public void getServiceNodeTemplateByNodeNameTypeCP() {
958 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("ExtCP 0");
959 assertNotNull(nodeTemplate);
960 assertEquals(nodeTemplate.getName(), "ExtCP 0");
961 assertEquals(nodeTemplate.getMetadata().getValue("type"), "CP");
965 public void getServiceNodeTemplateByNodeNameTypePNF() {
966 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("PNF TEST 0");
967 assertNotNull(nodeTemplate);
968 assertEquals(nodeTemplate.getName(), "PNF TEST 0");
969 assertEquals(nodeTemplate.getMetadata().getValue("type"), "PNF");
972 //QA region getServiceNodeTemplateBySdcType tests
975 public void getServiceNodeTemplateBySdcType_VF() {
976 List<NodeTemplate> vfList = QAServiceForToscaParserTests.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Vf1VPort1");
977 assertEquals(2, vfList.size());
978 assertEquals("VF_1_V_port_1", vfList.get(0).getMetadata().getValue("name"));
980 // endregion Added by QA - Continue with testings of resolve get_input
983 @SuppressWarnings("rawtypes")
985 public void testResolveGetInputArrayStructure() {
986 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
987 Object propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "compute_pd_server_name");
988 assertEquals( ((ArrayList)propertyAsObject).get(0).toString(), "\"ZRDM1MOGX01MPD001\"");
989 propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
990 assertEquals(2, ((ArrayList)propertyAsObject).size());
994 public void testServiceNodeTemplateByCRType() {
995 List<NodeTemplate> serviceCRList = csarHelperServiceWithCrs.getServiceNodeTemplateBySdcType(SdcTypes.CR);
996 assertNotNull(serviceCRList);
997 assertEquals(serviceCRList.size(), 2);
998 assertEquals(serviceCRList.get(0).getName(), "chaya best cr 1");
999 assertEquals(serviceCRList.get(0).getType(), "org.openecomp.resource.cr.ChayaBestCr");
1000 assertEquals(serviceCRList.get(1).getName(), "chaya best cr 0");
1001 assertEquals(serviceCRList.get(1).getType(), "org.openecomp.resource.cr.ChayaBestCr");
1005 public void testGetCPOfCRNodeTemplate() {
1006 NodeTemplate nodeTemplate = csarHelperServiceWithCrs.getServiceNodeTemplateByNodeName("chaya best cr 0");
1007 List<NodeTemplate> crCpChildren = csarHelperServiceWithCrs.getNodeTemplateBySdcType(nodeTemplate, SdcTypes.CP);
1008 assertEquals(crCpChildren.get(0).getName(), "ContrailPort 0");
1009 assertEquals(crCpChildren.get(0).getMetadata().getValue("type"), SdcTypes.CP.name());
1013 public void testServiceCRInstanceProps() {
1014 List<NodeTemplate> serviceCrList = csarHelperServiceWithCrs.getServiceNodeTemplateBySdcType(SdcTypes.CR);
1015 assertNotNull(serviceCrList);
1016 NodeTemplate crTemplate = serviceCrList.get(0);
1017 assertNotNull(crTemplate);
1018 assertEquals(crTemplate.getPropertyValue("nf_naming").toString(), ImmutableMap.of("ecomp_generated_naming", "true").toString());
1019 assertEquals(crTemplate.getPropertyValue("contrailport0_virtual_network"), "chaya");
1023 public void testGetPoliciesOfOriginOfNodeTemplate() {
1024 NodeTemplate nt0 = csarHelperServicePolicy.getNodeTemplateByName("al_vf 0");
1025 NodeTemplate nt1 = csarHelperServicePolicy.getNodeTemplateByName("al_vf 1");
1026 List<Policy> policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplate(nt0);
1027 assertNotNull(policies);
1028 assertEquals(policies.size(), 3);
1029 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplate(nt1);
1030 assertNotNull(policies);
1031 assertEquals(policies.size(), 3);
1035 public void testGetPoliciesOfOriginOfNodeTemplateByToscaPolicyType() {
1036 NodeTemplate nt0 = csarHelperServicePolicy.getNodeTemplateByName("al_vf 0");
1037 NodeTemplate nt1 = csarHelperServicePolicy.getNodeTemplateByName("al_vf 1");
1038 List<Policy> policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt0, "org.openecomp.policies.placement.Colocate");
1039 assertNotNull(policies);
1040 assertEquals(policies.size(), 1);
1042 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt0, "org.openecomp.policies.placement.Antilocate");
1043 assertNotNull(policies);
1044 assertEquals(policies.size(), 1);
1046 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt0, "org.openecomp.policies.placement.valet.Diversity");
1047 assertNotNull(policies);
1048 assertEquals(policies.size(), 1);
1050 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt1, "org.openecomp.policies.placement.Colocate");
1051 assertNotNull(policies);
1052 assertEquals(policies.size(), 1);
1054 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt1, "org.openecomp.policies.placement.Antilocate");
1055 assertNotNull(policies);
1056 assertEquals(policies.size(), 1);
1058 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt1, "org.openecomp.policies.placement.valet.Diversity");
1059 assertNotNull(policies);
1060 assertEquals(policies.size(), 1);
1064 public void testGetPolicyTargetNodeTemplatesFromOrigin() {
1065 List<NodeTemplate> nodeTemplates = csarHelperServicePolicy.getPolicyTargetsFromOrigin(csarHelperServicePolicy.getNodeTemplateByName("al_vf 1"),"policy..Colocate..0");
1066 assertNotNull(nodeTemplates);
1067 assertEquals(nodeTemplates.size(), 2);
1071 public void testGetPoliciesOfNodeTemplate() {
1072 NodeTemplate nt0 = csarHelperVfPolicy.getNodeTemplateByName("al_vfc 1");
1073 List<Policy> policies = csarHelperVfPolicy.getPoliciesOfTarget(nt0);
1074 assertNotNull(policies);
1075 assertEquals(policies.size(), 1);
1079 public void testGetPoliciesOfNodeTemplateByToscaPolicyType() {
1080 NodeTemplate nt0 = csarHelperVfPolicy.getNodeTemplateByName("al_vfc 1");
1081 List<Policy> policies = csarHelperVfPolicy.getPoliciesOfTargetByToscaPolicyType(nt0, "org.openecomp.policies.placement.Colocate");
1082 assertNotNull(policies);
1083 assertEquals(policies.size(), 1);
1087 public void testGetPoliciesOfTopologyTemplate() {
1088 List<Policy> policies = csarHelperVfPolicy.getPoliciesOfTopologyTemplate();
1089 assertNotNull(policies);
1090 assertEquals(policies.size(), 1);
1094 public void testGetPolicyTargetNodeTemplates() {
1095 List<NodeTemplate> nodeTemplates = csarHelperVfPolicy.getPolicyTargetsFromTopologyTemplate("policy..Colocate..0");
1096 assertNotNull(nodeTemplates);
1097 assertEquals(nodeTemplates.size(), 2);
1101 public void testGetGroups() {
1102 NodeTemplate groupsVf = csarHelperServiceGroups.getNodeTemplateByName("GroupsVf 0");
1103 NodeTemplate vlanGroups = csarHelperServiceGroups.getNodeTemplateByName("VlanGroups 0");
1105 ArrayList<Group> groups = csarHelperServiceGroups.getGroupsOfOriginOfNodeTemplate(groupsVf);
1106 assertNotNull(groups);
1107 assertEquals(groups.size(), 5);
1109 groups = csarHelperServiceGroups.getGroupsOfOriginOfNodeTemplate(vlanGroups);
1110 assertNotNull(groups);
1111 assertEquals(groups.size(), 4);
1113 groups = csarHelperServiceGroups.getGroupsOfOriginOfNodeTemplateByToscaGroupType(groupsVf, "org.openecomp.groups.VfcInstanceGroup");
1114 assertNotNull(groups);
1115 assertEquals(groups.size(), 1);
1117 groups = csarHelperServiceGroups.getGroupsOfOriginOfNodeTemplateByToscaGroupType(vlanGroups, "org.openecomp.groups.VfcInstanceGroup");
1118 assertNotNull(groups);
1119 assertEquals(groups.size(), 2);
1121 List<NodeTemplate> members = csarHelperServiceGroups.getGroupMembersOfOriginOfNodeTemplate(groupsVf, "x_group");
1123 assertNotNull(members);
1124 assertEquals(members.size(), 3);
1125 Optional<NodeTemplate> memberOpt = (members.stream().filter(m -> m.getName().equals("lb_1"))).findFirst();
1126 assertTrue(memberOpt.isPresent());
1127 memberOpt = (members.stream().filter(m -> m.getName().equals("lb_2"))).findFirst();
1128 assertTrue(memberOpt.isPresent());
1129 memberOpt = (members.stream().filter(m -> m.getName().equals("mg_4"))).findFirst();
1130 assertTrue(memberOpt.isPresent());
1132 members = csarHelperServiceGroups.getGroupMembersOfOriginOfNodeTemplate(vlanGroups, "oam_group");
1133 assertNotNull(members);
1134 assertEquals(members.size(), 1);
1135 memberOpt = (members.stream().filter(m -> m.getName().equals("abstract_vdbe_1"))).findFirst();
1136 assertTrue(memberOpt.isPresent());
1138 members = csarHelperServiceGroups.getGroupMembersOfOriginOfNodeTemplate(vlanGroups, "untr_group");
1139 assertNotNull(members);
1140 assertEquals(members.size(), 1);
1141 memberOpt = (members.stream().filter(m -> m.getName().equals("abstract_vdbe"))).findFirst();
1142 assertTrue(memberOpt.isPresent());
1146 public void testGetGroupsInputsProperties() {
1147 NodeTemplate vdbe0 = csarHelperServiceGroupsInputs.getNodeTemplateByName("vDBE 0");
1148 ArrayList<Group> groups = csarHelperServiceGroupsInputs.getGroupsOfOriginOfNodeTemplate(vdbe0);
1149 assertNotNull(groups);
1150 assertEquals(groups.size(), 4);
1152 Optional<Group> groupOpt = (groups.stream().filter(g -> g.getName().equals("oam_group"))).findFirst();
1153 assertTrue(groupOpt.isPresent());
1154 Group group = groupOpt.get();
1155 validateInputsProperties(vdbe0, group);
1157 groupOpt = (groups.stream().filter(g -> g.getName().equals("untr_group"))).findFirst();
1158 assertTrue(groupOpt.isPresent());
1159 group = groupOpt.get();
1160 validateInputsProperties(vdbe0, group);
1164 public void testGetGroupsInputsCapabilities() {
1165 NodeTemplate vdbe = csarHelperServiceGroupsCapabilities.getNodeTemplateByName("vdbe_srv_proxy 0");
1166 CapabilityAssignments capabilities = csarHelperServiceGroupsCapabilities.getCapabilitiesOf(vdbe);
1167 CapabilityAssignment capability = capabilities.getCapabilityByName("vdbe0.oam_group.vlan_assignment");
1168 assertNotNull(capability);
1172 public void testGetVfGroupsPolicies() {
1173 List<Policy> policies = csarHelperVfGroupsPolicies.getPoliciesOfTopologyTemplate();
1174 assertNotNull(policies);
1175 List<Group> groups = csarHelperVfGroupsPolicies.getGroupsOfTopologyTemplate();
1176 assertNotNull(groups);
1180 public void testGetServiceGroupsPolicies() {
1181 NodeTemplate nt = csarHelperServiceGroupsPolicies.getNodeTemplateByName("vDBE 0");
1182 List<Policy> policies = csarHelperServiceGroupsPolicies.getPoliciesOfOriginOfNodeTemplate(nt);
1183 assertNotNull(policies);
1184 List<Group> groups = csarHelperServiceGroupsPolicies.getGroupsOfOriginOfNodeTemplate(nt);
1185 assertNotNull(groups);
1189 public void testGetResourceInputsWithAnnotations() {
1190 List<Input> inputs = csarHelperServiceAnnotations.getServiceInputs();
1191 assertNotNull(inputs);
1192 assertEquals(inputs.size(), 19);
1193 assertTrue(inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList()).isEmpty());
1195 inputs = csarHelperServiceAnnotations.getInputsWithAnnotations();
1196 assertNotNull(inputs);
1197 assertEquals(inputs.size(), 19);
1198 validateInputsAnnotations(inputs);
1202 public void testGetServiceInputsWithAnnotations() {
1203 List<Input> inputs = csarHelperServiceAdiodAnnotations.getServiceInputs();
1204 assertNotNull(inputs);
1205 assertTrue(inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList()).isEmpty());
1207 inputs = csarHelperServiceAdiodAnnotations.getInputsWithAnnotations();
1208 assertNotNull(inputs);
1209 validateInputsAnnotations(inputs);
1213 public void getPropertyValueByNamePathAndNodeTypePathWhenPropertyValueIncludesGetInputAndPropertyHasDataType() {
1214 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("exCP_naming",
1215 "vDBE 0#abstract_vdbe_1#vdbe_vdbe_untr_port");
1216 assertEquals(0, propertyValues.size());
1220 public void getPropertyValueByNamePathAndNodeTypePathWhenPropertyPathIsComplex() {
1221 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("exCP_naming#ecomp_generated_naming",
1222 "vDBE 0#abstract_vdbe_1#vdbe_vdbe_untr_port");
1223 assertEquals(1, propertyValues.size());
1224 assertEquals("true", propertyValues.get(0));
1228 public void getPropertyValueByNamePathAndNodeTypePathWhenNoValueFoundForGetInputProperty() {
1229 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("virtual_machine_interface_allowed_address_pairs#allowed_address_pair#address_mode",
1230 "vDBE 0#abstract_vdbe_1#vdbe_vdbe_untr_port_nested2#vdbe_0_subint_oam_vmi_0");
1231 assertEquals(0, propertyValues.size());
1235 public void getPropertyValueByNamePathAndNodeTemplatePathSuccess() {
1236 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("is_default",
1237 "vDBE 0#abstract_vdbe_1#vdbe_vdbe_untr_port_nested2#vdbe_0_subint_oam_vmi_0");
1238 assertEquals(1, propertyValues.size());
1239 assertEquals("false", propertyValues.get(0));
1243 public void getPropertyValueByNamePathAndEmptyNodeTypePath() {
1244 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath(null, "");
1245 assertEquals(0, propertyValues.size());
1249 public void getPropertyValueByNamePathAndNullNodeTypePath() {
1250 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath(null, null);
1251 assertTrue(propertyValues.isEmpty());
1255 public void getPropertyValueByNamePathAndNodeTypePathForListOfGetInputs() {
1256 List<String> propertyValues = resolveGetInputCsar.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("port_pd01_port_ip_requirements#subnet_role",
1257 "ipAssign4 0#abstract_pd_server");
1258 assertEquals(2, propertyValues.size());
1259 assertTrue(propertyValues.get(0).equals("subnet_role_4") || propertyValues.get(0).equals("subnet_role_6"));
1260 assertTrue(propertyValues.get(1).equals("subnet_role_4") || propertyValues.get(1).equals("subnet_role_6"));
1264 public void getPropertyValueByNamePathAndNodeTypePathForNetworkCloud() {
1265 List<String> propertyValues = csarHelperServiceNetworkCloud.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("related_networks#related_network_role",
1266 "Network Cloud VNF MOCK 0#abstract_testVM#testVM_testVM_SRIOVtrunk1_port");
1267 assertEquals(3, propertyValues.size());
1268 assertTrue(propertyValues.contains("cor_direct_2"));
1269 assertTrue(propertyValues.contains("sgi_direct_2"));
1270 assertTrue(propertyValues.contains("int_imbl_2"));
1274 public void getPropertyValueByNamePathAndSingleNodeTypeNameForNetworkCloud() {
1275 List<String> propertyValues = csarHelperServiceNetworkCloud.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("nf_naming#ecomp_generated_naming",
1276 "Network Cloud VNF MOCK 0");
1277 assertEquals(1, propertyValues.size());
1278 assertEquals("true", propertyValues.get(0));
1282 //todo test for port_order on resolveGetInputCsar
1283 public void getPropertyValueByNamePathAndNodeTypePathWithGetInputNotSet() {
1284 List<String> propertyValues = csarHelperServiceNetworkCloud.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath(
1285 "name", "Network Cloud VNF MOCK 0#abstract_testVM#testVM");
1286 assertTrue(propertyValues.isEmpty());
1290 @SuppressWarnings("unchecked")
1291 private void validateInputsProperties(NodeTemplate vdbe0, Group group) {
1292 assertNotNull(group.getPropertiesObjects());
1293 ArrayList<Property> properties = group.getPropertiesObjects();
1295 List<String> inputs = properties.stream()
1296 .filter(p -> p.getValue() instanceof Map)
1297 .map(p -> ((Map<String, String>)p.getValue()).get("get_input"))
1298 .collect(Collectors.toList());
1300 assertEquals(inputs.size(), 2);
1302 inputs.forEach(i -> assertTrue(vdbe0.getProperties().containsKey(i)));
1304 List<Object> list = vdbe0.getProperties().entrySet().stream()
1305 .filter(e -> inputs.contains(e.getKey()))
1306 .map(e -> e.getValue().getValue())
1307 .collect(Collectors.toList());
1308 assertEquals(list.size(), 2);
1311 private void validateInputsAnnotations(List<Input> inputs) {
1312 List<Input> inputsWithAnnotations = inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList());
1313 assertTrue(!inputs.isEmpty());
1314 inputsWithAnnotations.stream().forEach(i -> validateAnnotations(i));
1317 private void validateAnnotations(Input input) {
1318 assertNotNull(input.getAnnotations());
1319 assertEquals(input.getAnnotations().size(), 1);
1320 Annotation annotation = input.getAnnotations().get("source");
1321 assertEquals(annotation.getName(), "source");
1322 assertEquals(annotation.getType().toLowerCase(), "org.openecomp.annotations.source");
1323 assertNotNull(annotation.getProperties());
1324 Optional<Property> source_type = annotation.getProperties()
1326 .filter(p->p.getName().equals("source_type"))
1328 assertTrue(source_type.isPresent());
1329 assertEquals(source_type.get().getValue(), "HEAT");