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.testng.Assert.assertEquals;
24 import static org.testng.Assert.assertFalse;
25 import static org.testng.Assert.assertNotNull;
26 import static org.testng.Assert.assertNull;
27 import static org.testng.Assert.assertTrue;
29 import java.util.stream.Collectors;
31 import com.google.common.collect.ImmutableMap;
32 import org.apache.commons.lang3.tuple.Pair;
33 import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;
34 import org.onap.sdc.tosca.parser.enums.FilterType;
35 import org.onap.sdc.tosca.parser.enums.SdcTypes;
36 import org.onap.sdc.toscaparser.api.CapabilityAssignment;
37 import org.onap.sdc.toscaparser.api.CapabilityAssignments;
38 import org.onap.sdc.toscaparser.api.Group;
39 import org.onap.sdc.toscaparser.api.NodeTemplate;
40 import org.onap.sdc.toscaparser.api.Policy;
41 import org.onap.sdc.toscaparser.api.Property;
42 import org.onap.sdc.toscaparser.api.parameters.Annotation;
43 import org.onap.sdc.toscaparser.api.parameters.Input;
44 import org.testng.annotations.Test;
46 public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
48 //region getServiceVfList
50 public void testNumberOfVfSunnyFlow() throws SdcToscaParserException {
51 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
52 assertNotNull(serviceVfList);
53 assertEquals(2, serviceVfList.size());
57 public void testGetNodeTemplateCustomizationUuid(){
58 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
59 boolean found = false;
60 for (NodeTemplate nt : serviceVfList){
61 if (nt.getName().equals("FDNT 1")){
63 assertEquals(fdntCsarHelper.getNodeTemplateCustomizationUuid(nt), "56179cd8-de4a-4c38-919b-bbc4452d2d73");
70 public void testSingleVFWithNotMetadata() throws SdcToscaParserException {
71 //If there is no metadata on VF level - There is no VF's because the type is taken from metadata values.
72 List<NodeTemplate> serviceVfList = rainyCsarHelperSingleVf.getServiceVfList();
73 assertNotNull(serviceVfList);
74 assertEquals(0, serviceVfList.size());
78 //region getNodeTemplatePropertyLeafValue
80 public void testNodeTemplateFlatProperty() throws SdcToscaParserException {
81 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
82 assertEquals("2", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "availability_zone_max_count"));
83 assertEquals("3", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "max_instances"));
84 assertEquals("some code", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_naming_code"));
88 public void testNodeTemplateFlatFunctionProperty() throws SdcToscaParserException {
89 List<NodeTemplate> serviceVfList = fdntCsarHelperWithInputs.getServiceVfList();
90 assertEquals(null, fdntCsarHelperWithInputs.getNodeTemplatePropertyLeafValue(serviceVfList.get(1), "target_network_role"));
94 public void testNodeTemplateNestedFunctionProperty() throws SdcToscaParserException {
95 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
96 assertEquals(null, ipAssignCsarHelper.getNodeTemplatePropertyLeafValue(vfcs.get(0), "port_pd01_port_ip_requirements#ip_count_required#count"));
100 public void testNodeTemplateNestedProperty() throws SdcToscaParserException {
101 List<NodeTemplate> serviceVlList = fdntCsarHelper.getServiceVlList();
102 NodeTemplate nodeTemplate = serviceVlList.get(0);
103 //System.out.println("node template " + nodeTemplate.toString());
104 assertEquals("24", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_assignments#ipv4_subnet_default_assignment#cidr_mask"));
105 assertEquals("7a6520b-9982354-ee82992c-105720", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_flows#vpn_binding"));
109 public void testNodeTemplateNestedPropertyFromInput() throws SdcToscaParserException {
110 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
111 NodeTemplate nodeTemplate = serviceVfList.get(0);
112 //System.out.println("node template " + nodeTemplate.toString());
113 assertEquals("true", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#ecomp_generated_naming"));
114 assertEquals("FDNT_instance_VF_2", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#naming_policy"));
118 public void testNodeTemplateNestedPropertyNotExists() throws SdcToscaParserException {
119 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
120 String nodeTemplatePropertyLeafValue = fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_role#nf_naming#kuku");
121 assertNull(nodeTemplatePropertyLeafValue);
125 public void testNodeTemplateFlatPropertyByNotFoundProperty() throws SdcToscaParserException {
126 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
127 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "XXXX");
128 assertNull(nodeTemplatePropertyLeafValue);
132 public void testNodeTemplateFlatPropertyByNullProperty() throws SdcToscaParserException {
133 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
134 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), null);
135 assertNull(nodeTemplatePropertyLeafValue);
139 public void testNodeTemplateFlatPropertyByNullNodeTemplate() throws SdcToscaParserException {
140 String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(null, "availability_zone_max_count");
141 assertNull(nodeTemplatePropertyLeafValue);
145 //region getServiceVlList
147 public void testServiceVl() {
148 List<NodeTemplate> vlList = fdntCsarHelper.getServiceVlList();
149 assertEquals(1, vlList.size());
150 assertEquals("exVL", vlList.get(0).getName());
154 public void testNumberOfVLRainyFlow() throws SdcToscaParserException {
155 List<NodeTemplate> serviceVlList = rainyCsarHelperMultiVfs.getServiceVlList();
156 assertNotNull(serviceVlList);
157 assertEquals(0, serviceVlList.size());
161 //region getServiceNodeTemplatesByType
163 public void testServiceNodeTemplatesByType() throws SdcToscaParserException {
164 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Fdnt");
165 assertNotNull(serviceVfList);
166 assertEquals(1, serviceVfList.size());
170 public void testServiceNodeTemplatesByNull() {
171 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType(null);
172 assertNotNull(nodeTemplates);
173 assertEquals(0, nodeTemplates.size());
177 public void testServiceNodeTemplatesByNotFoundProperty() {
178 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType("XXX");
179 assertNotNull(nodeTemplates);
180 assertEquals(0, nodeTemplates.size());
184 //region getTypeOfNodeTemplate
186 public void testGetTypeOfNodeTemplate() {
187 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
188 String typeOfNodeTemplate = fdntCsarHelper.getTypeOfNodeTemplate(serviceVfList.get(0));
189 assertEquals("org.openecomp.resource.vf.Fdnt", typeOfNodeTemplate);
193 public void testGetTypeOfNullNodeTemplate() {
194 String typeOfNodeTemplate = rainyCsarHelperMultiVfs.getTypeOfNodeTemplate(null);
195 assertNull(typeOfNodeTemplate);
199 //region getAllottedResources
201 public void testGetAllottedResources() {
202 List<NodeTemplate> allottedResources = fdntCsarHelper.getAllottedResources();
203 assertEquals(1, allottedResources.size());
207 public void testGetAllottedResourcesZero() {
208 List<NodeTemplate> allottedResources = rainyCsarHelperMultiVfs.getAllottedResources();
209 assertNotNull(allottedResources);
210 assertEquals(0, allottedResources.size());
214 //region getVfcListByVf
216 public void testGetVfcFromVf() {
217 List<NodeTemplate> vfcListByVf = fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID);
218 assertEquals(2, vfcListByVf.size());
222 public void testVfcListByNull() {
223 List<NodeTemplate> vfcList = rainyCsarHelperMultiVfs.getVfcListByVf(null);
224 assertNotNull(vfcList);
225 assertEquals(0, vfcList.size());
229 public void testVfcListByNotFoundProperty() {
230 List<NodeTemplate> vfcList = rainyCsarHelperMultiVfs.getVfcListByVf("XXX");
231 assertNotNull(vfcList);
232 assertEquals(0, vfcList.size());
236 //region getCpListByVf
238 public void testGetCpFromVf() {
239 List<NodeTemplate> cpListByVf = fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID);
240 assertEquals(1, cpListByVf.size());
241 NodeTemplate nodeTemplate = cpListByVf.get(0);
242 assertEquals("DNT_PORT", nodeTemplate.getName());
246 public void testGetCpFromVfByNullId() {
247 List<NodeTemplate> cpListByVf = rainyCsarHelperMultiVfs.getCpListByVf(null);
248 assertNotNull(cpListByVf);
249 assertEquals(0, cpListByVf.size());
253 public void testGetCpFromVfXxx() {
254 List<NodeTemplate> cpListByVf = rainyCsarHelperMultiVfs.getCpListByVf("XXXXX");
255 assertNotNull(cpListByVf);
256 assertEquals(0, cpListByVf.size());
260 //region getNodeTemplatePairsByReqName
262 public void testGetNodeTemplatePairsByReqName() {
263 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
264 assertNotNull(nodeTemplatePairsByReqName);
265 assertEquals(1, nodeTemplatePairsByReqName.size());
266 Pair<NodeTemplate, NodeTemplate> pair = nodeTemplatePairsByReqName.get(0);
267 NodeTemplate cp = pair.getLeft();
268 NodeTemplate vfc = pair.getRight();
269 assertEquals("DNT_PORT", cp.getName());
270 assertEquals("DNT_FW_RHRG", vfc.getName());
274 public void testGetNodeTemplatePairsByReqNameWithNullVF() {
275 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
276 null, fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
277 assertNotNull(nodeTemplatePairsByReqName);
278 assertEquals(0, nodeTemplatePairsByReqName.size());
282 public void testGetNodeTemplatePairsByReqNameWithEmptyVF() {
283 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
284 new ArrayList<>(), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
285 assertNotNull(nodeTemplatePairsByReqName);
286 assertEquals(0, nodeTemplatePairsByReqName.size());
290 public void testGetNodeTemplatePairsByReqNameWithNullCap() {
291 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
292 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), null, "binding");
293 assertNotNull(nodeTemplatePairsByReqName);
294 assertEquals(0, nodeTemplatePairsByReqName.size());
298 public void testGetNodeTemplatePairsByReqNameWithEmptyCap() {
299 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
300 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), new ArrayList<>(), "binding");
301 assertNotNull(nodeTemplatePairsByReqName);
302 assertEquals(0, nodeTemplatePairsByReqName.size());
306 public void testGetNodeTemplatePairsByReqNameWithNullReq() {
307 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
308 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), null);
309 assertNotNull(nodeTemplatePairsByReqName);
310 assertEquals(0, nodeTemplatePairsByReqName.size());
314 public void testGetNodeTemplatePairsByReqNameWithDummyReq() {
316 List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
317 fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "XXX");
318 assertNotNull(nodeTemplatePairsByReqName);
319 assertEquals(0, nodeTemplatePairsByReqName.size());
323 //region getMembersOfVfModule
325 public void testGetMembersOfVfModule() {
326 NodeTemplate vf = fdntCsarHelper.getServiceVfList().get(0);
327 List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
328 assertEquals(2, vfModulesByVf.size());
329 for (Group group : vfModulesByVf) {
330 List<NodeTemplate> membersOfVfModule = fdntCsarHelper.getMembersOfVfModule(vf, group);
331 assertNotNull(membersOfVfModule);
332 if (group.getName().equals("fdnt1..Fdnt..base_stsi_dnt_frwl..module-0")) {
333 assertEquals(1, membersOfVfModule.size());
334 NodeTemplate nodeTemplate = membersOfVfModule.get(0);
335 assertEquals("DNT_FW_RSG_SI_1", nodeTemplate.getName());
337 assertEquals("fdnt1..Fdnt..mod_vmsi_dnt_fw_parent..module-1", group.getName());
338 assertEquals(1, membersOfVfModule.size());
339 NodeTemplate nodeTemplate = membersOfVfModule.get(0);
340 assertEquals("DNT_FW_RHRG", nodeTemplate.getName());
346 public void testMembersOfVfModuleByNullVf() {
347 List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
348 List<NodeTemplate> nodeTemplates = fdntCsarHelper.getMembersOfVfModule(null, vfModulesByVf.get(0));
349 assertNotNull(nodeTemplates);
350 assertEquals(0, nodeTemplates.size());
354 public void testMembersOfVfModuleByNullGroup() {
355 List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
356 List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getMembersOfVfModule(serviceVfList.get(0), null);
357 assertNotNull(nodeTemplates);
358 assertEquals(0, nodeTemplates.size());
362 //region getCpPropertiesFromVfc
363 @SuppressWarnings("unchecked")
365 public void testGetCpPropertiesFromVfc() {
366 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
367 boolean isChecked = false;
369 for (NodeTemplate vfc: vfcs) {
371 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
374 Map<String, Map<String, Object>> cps = ipAssignCsarHelper.getCpPropertiesFromVfcAsObject(vfc);
376 assertEquals(2,cps.size());
377 Map<String, Object> pd01 = cps.get("port_pd01_port");
378 assertEquals(5, pd01.size());
380 Map<String, Object> firstIpRequirements = (Map<String, Object>) ((List<Object>)pd01.get("ip_requirements")).get(0);
381 Map<String, Object> secondIpRequirements = (Map<String, Object>) ((List<Object>)pd01.get("ip_requirements")).get(1);
383 assertEquals("subnet_role_4", firstIpRequirements.get("subnet_role"));
384 assertEquals(4, firstIpRequirements.get("ip_version"));
385 assertEquals(true, ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("is_required"));
386 assertEquals("get_input:node_count", ((Map<String, Object>) firstIpRequirements.get("ip_count_required")).get("count").toString());
387 assertEquals(false, ((Map<String, Object>)((Map<String, Object>)pd01.get("mac_requirements")).get("mac_count_required")).get("is_required"));
388 assertEquals("test_subnetpoolid", pd01.get("subnetpoolid"));
389 assertEquals("oam", pd01.get("network_role_tag"));
390 assertEquals(6, secondIpRequirements.get("ip_version"));
394 assertTrue(isChecked);
398 public void testGetCpPropertiesFromVfcForNullVFC() {
399 Map<String, Map<String, Object>> cps = ipAssignCsarHelper.getCpPropertiesFromVfcAsObject(null);
401 assertEquals(0, cps.size());
405 //region getNodeTemplatePropertyValueAsObject
407 public void testGetNodeTemplatePropertyAsObject() {
408 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
409 assertEquals("2", fdntCsarHelper.getNodeTemplatePropertyValueAsObject(serviceVfList.get(0), "availability_zone_max_count"));
410 assertEquals(3, fdntCsarHelper.getNodeTemplatePropertyValueAsObject(serviceVfList.get(0), "max_instances"));
411 assertEquals("some code", fdntCsarHelper.getNodeTemplatePropertyValueAsObject(serviceVfList.get(0), "nf_naming_code"));
415 //region getServiceNodeTemplates
417 public void testServiceNodeTemplates() throws SdcToscaParserException {
418 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplates();
419 assertNotNull(serviceVfList);
420 assertEquals(3, serviceVfList.size());
421 assertEquals(serviceVfList.get(2).getName(), "exVL");
425 //region filterNodeTemplatePropertiesByValue
427 public void testFilterNodeTemplatePropertiesByContains() {
428 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
429 boolean isChecked = false;
430 for (NodeTemplate vfc: vfcs) {
431 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
434 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfc, FilterType.CONTAINS, "get_input");
436 assertEquals(7, filteredInputs.size());
437 assertEquals("get_input:availabilityzone_name", filteredInputs.get("compute_pd_server_availability_zone"));
438 assertEquals("get_input:[pd_server_names, 0]", filteredInputs.get("compute_pd_server_name"));
439 assertEquals("get_input:node_count", filteredInputs.get("port_pd01_port_ip_requirements#ip_count_required#count"));
445 assertTrue(isChecked);
449 public void testFilterNodeTemplatePropertiesByDummyContains() {
450 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
451 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.CONTAINS, "dummy");
452 assertNotNull(filteredInputs);
453 assertEquals(0, filteredInputs.size());
457 public void testFilterNodeTemplatePropertiesByEquals() {
458 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
459 boolean isChecked = false;
460 for (NodeTemplate vfc: vfcs) {
461 if(vfc.getName().equalsIgnoreCase("abstract_pd_server"))
464 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfc, FilterType.EQUALS, "oam");
466 assertEquals(2, filteredInputs.size());
467 assertEquals("oam", filteredInputs.get("port_pd02_port_network_role_tag"));
468 assertEquals("oam", filteredInputs.get("port_pd01_port_network_role_tag"));
473 assertTrue(isChecked);
477 public void testFilterNodeTemplatePropertiesByDummyEquals() {
478 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
479 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, "dummy");
480 assertNotNull(filteredInputs);
481 assertEquals(0, filteredInputs.size());
485 public void testFilterNodeTemplatePropertiesByNullFilterType() {
486 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
487 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), null, "ddc");
488 assertNotNull(filteredInputs);
489 assertEquals(0, filteredInputs.size());
493 public void testFilterNodeTemplatePropertiesByNullPattern() {
494 List<NodeTemplate> vfcs = ipAssignCsarHelper.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
495 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(vfcs.get(0), FilterType.EQUALS, null);
496 assertNotNull(filteredInputs);
497 assertEquals(0, filteredInputs.size());
501 public void testFilterNodeTemplatePropertiesByNullVfc() {
502 Map<String, String> filteredInputs = ipAssignCsarHelper.filterNodeTemplatePropertiesByValue(null, FilterType.EQUALS, "ddc");
503 assertNotNull(filteredInputs);
504 assertEquals(0, filteredInputs.size());
508 //region getServiceNodeTemplateBySdcType
510 public void testServiceNodeTemplateBySdcType() {
511 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplateBySdcType(SdcTypes.VF);
512 assertNotNull(serviceVfList);
513 assertEquals(serviceVfList.size(), 2);
514 assertEquals(serviceVfList.get(0).getName(), "FDNT 1");
518 public void testServiceNodeTemplateBySdcTypeServiceProxy() {
519 List<NodeTemplate> serviceProxies = portMirroring.getServiceNodeTemplateBySdcType(SdcTypes.SERVICE_PROXY);
520 assertNotNull(serviceProxies);
521 assertEquals(serviceProxies.size(), 2);
525 public void testServiceNodeTemplateByNullSdcType() {
526 List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplateBySdcType(null);
527 assertNotNull(serviceVfList);
528 assertEquals(serviceVfList.size(), 0);
532 //region getNodeTemplateBySdcType
534 public void testNodeTemplateBySdcType() {
535 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
536 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(vfList.get(0), SdcTypes.VFC);
537 assertNotNull(vfcList);
538 assertEquals(2, vfcList.size());
539 assertEquals("DNT_FW_RSG_SI_1", vfcList.get(0).getName());
543 public void testNodeTemplateByNullSdcType() {
544 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
545 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(vfList.get(0), null);
546 assertNotNull(vfcList);
547 assertEquals(0, vfcList.size());
551 public void testNodeTemplateBySdcTypeNullNT() {
552 List<NodeTemplate> vfcList = fdntCsarHelper.getNodeTemplateBySdcType(null, SdcTypes.VFC);
553 assertNotNull(vfcList);
554 assertEquals(0, vfcList.size());
558 //region getVnfConfig
560 public void testGetVnfConfig() {
561 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
562 assertNotNull(vnfConfig);
563 assertEquals("vnfConfiguration", vnfConfig.getMetaData().getValue("name"));
567 public void testGetVnfConfigByNonFoundVNF() {
568 NodeTemplate vnfConfig = ipAssignCsarHelper.getVnfConfig("b5190df2-7880-4d6f-836f-56ab17e1b85b");
569 assertNull(vnfConfig);
573 public void testGetVnfConfigByDummyUUID() {
574 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("XXX");
575 assertNull(vnfConfig);
579 public void testGetVnfConfigByNullUUID() {
580 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig(null);
581 assertNull(vnfConfig);
585 public void testGetVfcTypWithoutVnf() {
586 List<NodeTemplate> vfcList = nfodCsarHlper.getVfcListByVf("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
587 assertNotNull(vfcList);
588 assertEquals(2, vfcList.size());
594 public void testNestedVfcByExistCvfc() {
595 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("71389f8b-8671-4a43-a991-59fb621d3615");
596 assertNotNull(vfcList);
597 assertEquals(vfcList.size(), 2);
598 assertEquals("VFC1 DUMMY", vfcList.get(0).getName());
599 assertEquals("VF_VNF", vfcList.get(1).getName());
603 public void testNestedVfcByNullVf() {
604 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf(null);
605 assertNotNull(vfcList);
606 assertEquals(0, vfcList.size());
610 public void testNestedVfcByDummyVf() {
611 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("dummy");
612 assertNotNull(vfcList);
613 assertEquals(0, vfcList.size());
619 public void testHasTopologyByVF() {
620 List<NodeTemplate> vfList = nestedVfcCsarHlper.getServiceVfList();
621 boolean hasTopology = nestedVfcCsarHlper.hasTopology(vfList.get(0));
622 assertEquals(true, hasTopology);
626 public void testHasTopologyByCVFC() {
627 List<NodeTemplate> vfcList = nestedVfcCsarHlper.getVfcListByVf("71389f8b-8671-4a43-a991-59fb621d3615");
628 boolean hasTopology = nestedVfcCsarHlper.hasTopology(vfcList.get(1));
629 assertEquals(true, hasTopology);
633 public void testHasTopologyByVL() {
634 List<NodeTemplate> serviceVlList = fdntCsarHelper.getServiceVlList();
635 boolean hasTopology = fdntCsarHelper.hasTopology(serviceVlList.get(0));
636 assertEquals(false, hasTopology);
640 public void testHasTopologyByNull() {
641 boolean hasTopology = fdntCsarHelper.hasTopology(null);
642 assertEquals(false, hasTopology);
646 //region getNodeTemplateChildren
648 public void testGetNodeTemplatesListOfNodeTemplateByVF() {
649 List<NodeTemplate> vfList = fdntCsarHelper.getServiceVfList();
650 List<NodeTemplate> children = fdntCsarHelper.getNodeTemplateChildren(vfList.get(0));
651 assertNotNull(children);
652 assertEquals(3, children.size());
654 children.sort(Comparator.comparing(NodeTemplate::getName));
656 assertEquals("DNT_FW_RSG_SI_1", children.get(1).getName());
657 assertEquals("VFC", children.get(1).getMetaData().getValue("type"));
658 assertEquals("DNT_PORT", children.get(2).getName());
659 assertEquals("CP", children.get(2).getMetaData().getValue("type"));
663 public void testGetNodeTemplatesListOfNodeTemplateByVFC() {
664 List<NodeTemplate> vfList = nestedVfcCsarHlper.getServiceVfList();
665 List<NodeTemplate> vfChildren = nestedVfcCsarHlper.getNodeTemplateChildren(vfList.get(0));
666 assertNotNull(vfChildren);
667 assertEquals(vfChildren.size(), 2);
668 vfChildren.sort(Comparator.comparing(NodeTemplate::getName));
669 assertEquals("VFC1 DUMMY", vfChildren.get(0).getName());
670 assertEquals("VF_VNF", vfChildren.get(1).getName());
671 assertEquals("CVFC", vfChildren.get(1).getMetaData().getValue("type"));
674 List<NodeTemplate> vfcChildren = nestedVfcCsarHlper.getNodeTemplateChildren(vfChildren.get(1));
675 assertNotNull(vfcChildren);
676 assertEquals(vfcChildren.size(), 3);
677 vfcChildren.sort(Comparator.comparing(NodeTemplate::getName));
678 assertEquals("Test NIC 02_wan_port", vfcChildren.get(0).getName());
679 assertEquals("Test NIC_wan_port", vfcChildren.get(1).getName());
680 assertEquals("VF", vfcChildren.get(2).getName());
684 public void testGetNodeTemplatesListOfNodeTemplateByNull() {
685 List<NodeTemplate> children = fdntCsarHelper.getNodeTemplateChildren(null);
686 assertNotNull(children);
687 assertEquals(0, children.size());
692 // Get specific VNF properties
694 public void testGetVnfConfigGetProperties() {
695 NodeTemplate vnfConfig = nfodCsarHlper.getVnfConfig("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
696 assertNotNull(vnfConfig);
697 assertEquals("vnfConfiguration", vnfConfig.getMetaData().getValue("name"));
699 String manufacturer_reference_number = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_12345_for_FortiGate-VM00#vendor_info#manufacturer_reference_number");
700 String num_cpus = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_67890_for_FortiGate-VM01#compute_flavor#num_cpus");
701 String sp_part_number = nfodCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#ATT_part_67890_for_FortiGate-VM01#sp_part_number");
703 assertEquals("FortiGate-VM00",manufacturer_reference_number);
704 assertEquals("10",num_cpus);
705 assertEquals("ATT_part_67890_for_FortiGate-VM01",sp_part_number);
709 // Check that get vnfconfiguration not return as VFC
711 public void testGetVfcTypWithoutVnfCheckNames() {
712 List<NodeTemplate> vfcList = nfodCsarHlper.getVfcListByVf("9bb2ef82-f8f6-4391-bc71-db063f15bf57");
713 assertNotNull(vfcList);
714 assertEquals(2, vfcList.size());
715 for (int i = 0; i < vfcList.size(); i++) {
717 String Name= vfcList.get(i).getName();
719 assertEquals(false, Name.equals("vFW_VNF_Configuration"));
725 public void testNewGetVnfConfigGetProperties() {
726 NodeTemplate vnfConfig = nfodNEWCsarHlper.getVnfConfig("a6587663-b27f-4e88-8a86-604604302ce6");
727 assertNotNull(vnfConfig);
728 assertEquals("vnfConfiguration", vnfConfig.getMetaData().getValue("name"));
730 //Deployment flavor 1
731 String manufacturer_reference_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#vendor_info#manufacturer_reference_number");
732 String num_cpus = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#compute_flavor#num_cpus");
733 String sp_part_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#123456#sp_part_number");
735 assertEquals("234567",manufacturer_reference_number);
736 assertEquals("2",num_cpus);
737 assertEquals("123456",sp_part_number);
739 //Deployment flavor 2
740 manufacturer_reference_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#vendor_info#manufacturer_reference_number");
741 num_cpus = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#compute_flavor#num_cpus");
742 sp_part_number = nfodNEWCsarHlper.getNodeTemplatePropertyLeafValue(vnfConfig, "allowed_flavors#FG_partNumbereJqQjUkteF1#sp_part_number");
744 assertEquals("EP_manufacturerReferenceNumberkbAiqZZNzx1",manufacturer_reference_number);
745 assertEquals("1",num_cpus);
746 assertEquals("FG_partNumbereJqQjUkteF1",sp_part_number);
750 // Check that get vnfconfiguration not return as VFC
752 public void testNewGetVfcTypWithoutVnfCheckNames() {
753 List<NodeTemplate> vfcList = nfodNEWCsarHlper.getVfcListByVf("a6587663-b27f-4e88-8a86-604604302ce6");
754 assertNotNull(vfcList);
755 assertEquals(1, vfcList.size());
756 for (int i = 0; i < vfcList.size(); i++) {
758 String Name= vfcList.get(i).getName();
760 assertEquals(false, Name.equals("name_6GkVrOjnGp1_VNF_Configuration"));
764 //region getServiceNodeTemplateByNodeName
766 public void testGetServiceNodeTemplateByRealNodeName() {
767 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName("FDNT 1");
768 assertNotNull(nodeTemplate);
769 assertEquals(nodeTemplate.getName(), "FDNT 1");
770 assertEquals(nodeTemplate.getMetaData().getValue("type"), "VF");
774 public void testGetServiceNodeTemplateByNullNodeName() {
775 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName(null);
776 assertNull(nodeTemplate);
780 public void testGetServiceNodeTemplateByDummyNodeName() {
781 NodeTemplate nodeTemplate = fdntCsarHelper.getServiceNodeTemplateByNodeName("dummy");
782 assertNull(nodeTemplate);
788 //region resolve get_input
789 @SuppressWarnings("rawtypes")
791 public void testResolveGetInputForComplexTypeAndList() {
792 //port_pd01_port_ip_requirements is of type list<org.openecomp.datatypes.network.IpRequirements>
794 // 1) "default" resolving
795 // 2) complex type resolving
796 // 3) List access resolving
797 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
798 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
799 assertTrue(propertyAsObject instanceof ArrayList);
800 assertEquals(2, ((ArrayList) propertyAsObject).size());
801 //port_pd01_port_ip_requirements:
802 //- get_input: [ip_requirements, 0]
803 //- get_input: [ip_requirements, 1]
804 assertEquals("subnet_role_4", ((Map) ((ArrayList) propertyAsObject).get(0)).get("subnet_role"));
805 assertEquals("subnet_role_6", ((Map) ((ArrayList) propertyAsObject).get(1)).get("subnet_role"));
809 public void testResolveGetInputForListOnNetworkCloud() {
810 final String related_network_role = "related_network_role";
811 List<NodeTemplate> serviceVfList = csarHelperServiceNetworkCloud.getServiceVfList();
812 assertNotNull(serviceVfList);
813 assertFalse(serviceVfList.isEmpty());
814 List<NodeTemplate> vfcListByVf = csarHelperServiceNetworkCloud.getVfcListByVf(csarHelperServiceNetworkCloud.getNodeTemplateCustomizationUuid(serviceVfList.get(0)));
815 assertNotNull(vfcListByVf);
816 assertFalse(vfcListByVf.isEmpty());
817 List<NodeTemplate> cpList = csarHelperServiceNetworkCloud.getNodeTemplateChildren(vfcListByVf.get(0));
818 assertNotNull(cpList);
819 assertFalse(cpList.isEmpty());
820 final Object propertyValue = cpList.get(0).getPropertyValue("related_networks");
821 assertNotNull(propertyValue);
822 ArrayList<Map<String, String>> relatedNetworkList = (ArrayList)propertyValue;
823 assertEquals(3, relatedNetworkList.size());
824 assertEquals("cor_direct_2", relatedNetworkList.get(0).get(related_network_role));
825 assertEquals("sgi_direct_2", relatedNetworkList.get(1).get(related_network_role));
826 assertEquals("int_imbl_2", relatedNetworkList.get(2).get(related_network_role));
830 public void testResolveGetInputForPrimitiveTypeString() {
831 //This test covers "default" resolving of primitive - as Object
832 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
833 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd01_port_network_role_tag");
834 assertEquals("oam", propertyAsObject);
838 public void testResolveGetInputForPrimitiveTypeInteger() {
839 //This test covers "default" resolving of primitive - as String
840 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
841 String propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyLeafValue(vfcs.get(0), "port_pd01_port_order");
842 assertEquals("1", propertyAsObject);
845 @SuppressWarnings("rawtypes")
847 public void testResolveGetInputForMap() {
848 //This test covers "default" resolving of primitive - as Map
849 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
850 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd02_port_ip_requirements#ip_count_required");
851 assertTrue(propertyAsObject instanceof Map);
852 assertEquals(false, ((Map)propertyAsObject).get("is_required"));
856 public void testResolveGetInputForAllHierarchy() {
857 //This test covers "default" resolving from service level
858 List<NodeTemplate> vfs = resolveGetInputCsar.getServiceVfList();
859 Object vfPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfs.get(0), "vm_count");
860 assertEquals(2, vfPropertyAsObject);
861 //This test covers property assignment resolving on VFI level (service template), from Vf level
862 List<NodeTemplate> vfcs = resolveGetInputCsar.getNodeTemplateBySdcType(vfs.get(0), SdcTypes.VFC);
863 Object vfcPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "my_count");
864 assertEquals(2, vfcPropertyAsObject); //takes it from upper level (VF) property
868 public void testResolveGetInputNoDefValueInnerLevel() {
869 //This test covers resolving when no "default" value is supplied to the input - should be null - VF/VFCI level
870 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
871 String propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyLeafValue(vfcs.get(0), "index_value");
872 assertNull(propertyAsObject);
877 public void testResolveGetInputNoDefValueServiceLevel() {
878 //This test covers resolving when no "default" value is supplied to the input - should be null - Service/VFI level
879 List<NodeTemplate> vfs = resolveGetInputCsar.getServiceVfList();
880 Object vfPropertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfs.get(0), "port_order");
881 assertNull(vfPropertyAsObject);
886 // region Added by QA - Continue with testings of resolve get_input
888 @SuppressWarnings("rawtypes")
890 public void testResolveGetInputForComplexTypeAndListWithFalseValue()
892 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
893 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
894 assertTrue(propertyAsObject instanceof ArrayList);
895 assertEquals(2, ((ArrayList) propertyAsObject).size());
896 assertEquals("get_input:[ip_requirements, 0]", ((ArrayList) propertyAsObject).get(0).toString());
897 assertEquals("get_input:[ip_requirements, 1]", ((ArrayList) propertyAsObject).get(1).toString());
901 public void testResolveGetInputForPrimitiveTypeStringWithFalseValue() {
902 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
903 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd01_port_network_role_tag");
904 assertEquals("get_input:role_tag_oam", propertyAsObject.toString());
908 public void testResolveGetInputForPrimitiveTypeListWithFalseValue() {
909 List<NodeTemplate> vfcs = resolveGetInputCsarFalse.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
910 Object propertyAsObject = resolveGetInputCsarFalse.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "compute_pd_server_name");
911 assertEquals("[get_input:[pd_server_names, 0]]", propertyAsObject.toString());
914 //@Test // Maybe a bug here.... need to check with Esti - Mait was sent.
915 public void testResolveGetInputForPrimitiveTypeList() {
916 List<NodeTemplate> vfcs = resolveGetInputCsar.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
917 Object propertyAsObject = resolveGetInputCsar.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "compute_pd_server_name");
918 assertEquals("\"ZRDM1MOGX01MPD001\"", propertyAsObject.toString());
922 public void testResolveGetInputForPrimitiveNullValue() {
923 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
924 @SuppressWarnings("unchecked")
925 List<String>propertyAsObject = (List<String>) resolveGetInputCsarQA.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "compute_pd_server_availability_zone");
926 assertNull(propertyAsObject.get(0));
929 public void testResolveGetInputForPrimitiveIPValue() {
930 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
931 Object propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "vm_image_name");
932 assertEquals("107.239.36.5", propertyAsObject.toString());
935 //QA region getServiceNodeTemplateByNodeName tests
938 public void getServiceNodeTemplateByNodeNameTypeVF() {
939 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("VF_1_V_port_1 0");
940 assertNotNull(nodeTemplate);
941 assertEquals(nodeTemplate.getName(), "VF_1_V_port_1 0");
942 assertEquals(nodeTemplate.getMetaData().getValue("type"), "VF");
946 public void getServiceNodeTemplateByNodeNameTypeVL() {
947 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("ExtVL 0");
948 assertNotNull(nodeTemplate);
949 assertEquals(nodeTemplate.getName(), "ExtVL 0");
950 assertEquals(nodeTemplate.getMetaData().getValue("type"), "VL");
954 public void getServiceNodeTemplateByNodeNameTypeCP() {
955 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("ExtCP 0");
956 assertNotNull(nodeTemplate);
957 assertEquals(nodeTemplate.getName(), "ExtCP 0");
958 assertEquals(nodeTemplate.getMetaData().getValue("type"), "CP");
962 public void getServiceNodeTemplateByNodeNameTypePNF() {
963 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("PNF TEST 0");
964 assertNotNull(nodeTemplate);
965 assertEquals(nodeTemplate.getName(), "PNF TEST 0");
966 assertEquals(nodeTemplate.getMetaData().getValue("type"), "PNF");
969 //QA region getServiceNodeTemplateBySdcType tests
972 public void getServiceNodeTemplateBySdcType_VF() {
973 List<NodeTemplate> vfList = QAServiceForToscaParserTests.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Vf1VPort1");
974 assertEquals(2, vfList.size());
975 assertEquals("VF_1_V_port_1", vfList.get(0).getMetaData().getValue("name"));
977 // endregion Added by QA - Continue with testings of resolve get_input
980 @SuppressWarnings("rawtypes")
982 public void testResolveGetInputArrayStructure() {
983 List<NodeTemplate> vfcs = resolveGetInputCsarQA.getVfcListByVf("b5190df2-7880-4d6f-836f-56ab17e1b85b");
984 Object propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "compute_pd_server_name");
985 assertEquals( ((ArrayList)propertyAsObject).get(0).toString(), "\"ZRDM1MOGX01MPD001\"");
986 propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyValueAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
987 assertEquals(2, ((ArrayList)propertyAsObject).size());
991 public void testServiceNodeTemplateByCRType() {
992 List<NodeTemplate> serviceCRList = csarHelperServiceWithCrs.getServiceNodeTemplateBySdcType(SdcTypes.CR);
993 assertNotNull(serviceCRList);
994 assertEquals(serviceCRList.size(), 2);
995 assertEquals(serviceCRList.get(0).getName(), "chaya best cr 1");
996 assertEquals(serviceCRList.get(0).getType(), "org.openecomp.resource.cr.ChayaBestCr");
997 assertEquals(serviceCRList.get(1).getName(), "chaya best cr 0");
998 assertEquals(serviceCRList.get(1).getType(), "org.openecomp.resource.cr.ChayaBestCr");
1002 public void testGetCPOfCRNodeTemplate() {
1003 NodeTemplate nodeTemplate = csarHelperServiceWithCrs.getServiceNodeTemplateByNodeName("chaya best cr 0");
1004 List<NodeTemplate> crCpChildren = csarHelperServiceWithCrs.getNodeTemplateBySdcType(nodeTemplate, SdcTypes.CP);
1005 assertEquals(crCpChildren.get(0).getName(), "ContrailPort 0");
1006 assertEquals(crCpChildren.get(0).getMetaData().getValue("type"), SdcTypes.CP.name());
1010 public void testServiceCRInstanceProps() {
1011 List<NodeTemplate> serviceCrList = csarHelperServiceWithCrs.getServiceNodeTemplateBySdcType(SdcTypes.CR);
1012 assertNotNull(serviceCrList);
1013 NodeTemplate crTemplate = serviceCrList.get(0);
1014 assertNotNull(crTemplate);
1015 assertEquals(crTemplate.getPropertyValue("nf_naming").toString(), ImmutableMap.of("ecomp_generated_naming", "true").toString());
1016 assertEquals(crTemplate.getPropertyValue("contrailport0_virtual_network"), "chaya");
1020 public void testGetPoliciesOfOriginOfNodeTemplate() {
1021 NodeTemplate nt0 = csarHelperServicePolicy.getNodeTemplateByName("al_vf 0");
1022 NodeTemplate nt1 = csarHelperServicePolicy.getNodeTemplateByName("al_vf 1");
1023 List<Policy> policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplate(nt0);
1024 assertNotNull(policies);
1025 assertEquals(policies.size(), 3);
1026 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplate(nt1);
1027 assertNotNull(policies);
1028 assertEquals(policies.size(), 3);
1032 public void testGetPoliciesOfOriginOfNodeTemplateByToscaPolicyType() {
1033 NodeTemplate nt0 = csarHelperServicePolicy.getNodeTemplateByName("al_vf 0");
1034 NodeTemplate nt1 = csarHelperServicePolicy.getNodeTemplateByName("al_vf 1");
1035 List<Policy> policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt0, "org.openecomp.policies.placement.Colocate");
1036 assertNotNull(policies);
1037 assertEquals(policies.size(), 1);
1039 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt0, "org.openecomp.policies.placement.Antilocate");
1040 assertNotNull(policies);
1041 assertEquals(policies.size(), 1);
1043 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt0, "org.openecomp.policies.placement.valet.Diversity");
1044 assertNotNull(policies);
1045 assertEquals(policies.size(), 1);
1047 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt1, "org.openecomp.policies.placement.Colocate");
1048 assertNotNull(policies);
1049 assertEquals(policies.size(), 1);
1051 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt1, "org.openecomp.policies.placement.Antilocate");
1052 assertNotNull(policies);
1053 assertEquals(policies.size(), 1);
1055 policies = csarHelperServicePolicy.getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(nt1, "org.openecomp.policies.placement.valet.Diversity");
1056 assertNotNull(policies);
1057 assertEquals(policies.size(), 1);
1061 public void testGetPolicyTargetNodeTemplatesFromOrigin() {
1062 List<NodeTemplate> nodeTemplates = csarHelperServicePolicy.getPolicyTargetsFromOrigin(csarHelperServicePolicy.getNodeTemplateByName("al_vf 1"),"policy..Colocate..0");
1063 assertNotNull(nodeTemplates);
1064 assertEquals(nodeTemplates.size(), 2);
1068 public void testGetPoliciesOfNodeTemplate() {
1069 NodeTemplate nt0 = csarHelperVfPolicy.getNodeTemplateByName("al_vfc 1");
1070 List<Policy> policies = csarHelperVfPolicy.getPoliciesOfTarget(nt0);
1071 assertNotNull(policies);
1072 assertEquals(policies.size(), 1);
1076 public void testGetPoliciesOfNodeTemplateByToscaPolicyType() {
1077 NodeTemplate nt0 = csarHelperVfPolicy.getNodeTemplateByName("al_vfc 1");
1078 List<Policy> policies = csarHelperVfPolicy.getPoliciesOfTargetByToscaPolicyType(nt0, "org.openecomp.policies.placement.Colocate");
1079 assertNotNull(policies);
1080 assertEquals(policies.size(), 1);
1084 public void testGetPoliciesOfTopologyTemplate() {
1085 List<Policy> policies = csarHelperVfPolicy.getPoliciesOfTopologyTemplate();
1086 assertNotNull(policies);
1087 assertEquals(policies.size(), 1);
1091 public void testGetPolicyTargetNodeTemplates() {
1092 List<NodeTemplate> nodeTemplates = csarHelperVfPolicy.getPolicyTargetsFromTopologyTemplate("policy..Colocate..0");
1093 assertNotNull(nodeTemplates);
1094 assertEquals(nodeTemplates.size(), 2);
1098 public void testGetGroups() {
1099 NodeTemplate groupsVf = csarHelperServiceGroups.getNodeTemplateByName("GroupsVf 0");
1100 NodeTemplate vlanGroups = csarHelperServiceGroups.getNodeTemplateByName("VlanGroups 0");
1102 ArrayList<Group> groups = csarHelperServiceGroups.getGroupsOfOriginOfNodeTemplate(groupsVf);
1103 assertNotNull(groups);
1104 assertEquals(groups.size(), 5);
1106 groups = csarHelperServiceGroups.getGroupsOfOriginOfNodeTemplate(vlanGroups);
1107 assertNotNull(groups);
1108 assertEquals(groups.size(), 4);
1110 groups = csarHelperServiceGroups.getGroupsOfOriginOfNodeTemplateByToscaGroupType(groupsVf, "org.openecomp.groups.VfcInstanceGroup");
1111 assertNotNull(groups);
1112 assertEquals(groups.size(), 1);
1114 groups = csarHelperServiceGroups.getGroupsOfOriginOfNodeTemplateByToscaGroupType(vlanGroups, "org.openecomp.groups.VfcInstanceGroup");
1115 assertNotNull(groups);
1116 assertEquals(groups.size(), 2);
1118 List<NodeTemplate> members = csarHelperServiceGroups.getGroupMembersOfOriginOfNodeTemplate(groupsVf, "x_group");
1120 assertNotNull(members);
1121 assertEquals(members.size(), 3);
1122 Optional<NodeTemplate> memberOpt = (members.stream().filter(m -> m.getName().equals("lb_1"))).findFirst();
1123 assertTrue(memberOpt.isPresent());
1124 memberOpt = (members.stream().filter(m -> m.getName().equals("lb_2"))).findFirst();
1125 assertTrue(memberOpt.isPresent());
1126 memberOpt = (members.stream().filter(m -> m.getName().equals("mg_4"))).findFirst();
1127 assertTrue(memberOpt.isPresent());
1129 members = csarHelperServiceGroups.getGroupMembersOfOriginOfNodeTemplate(vlanGroups, "oam_group");
1130 assertNotNull(members);
1131 assertEquals(members.size(), 1);
1132 memberOpt = (members.stream().filter(m -> m.getName().equals("abstract_vdbe_1"))).findFirst();
1133 assertTrue(memberOpt.isPresent());
1135 members = csarHelperServiceGroups.getGroupMembersOfOriginOfNodeTemplate(vlanGroups, "untr_group");
1136 assertNotNull(members);
1137 assertEquals(members.size(), 1);
1138 memberOpt = (members.stream().filter(m -> m.getName().equals("abstract_vdbe"))).findFirst();
1139 assertTrue(memberOpt.isPresent());
1143 public void testGetGroupsInputsProperties() {
1144 NodeTemplate vdbe0 = csarHelperServiceGroupsInputs.getNodeTemplateByName("vDBE 0");
1145 ArrayList<Group> groups = csarHelperServiceGroupsInputs.getGroupsOfOriginOfNodeTemplate(vdbe0);
1146 assertNotNull(groups);
1147 assertEquals(groups.size(), 4);
1149 Optional<Group> groupOpt = (groups.stream().filter(g -> g.getName().equals("oam_group"))).findFirst();
1150 assertTrue(groupOpt.isPresent());
1151 Group group = groupOpt.get();
1152 validateInputsProperties(vdbe0, group);
1154 groupOpt = (groups.stream().filter(g -> g.getName().equals("untr_group"))).findFirst();
1155 assertTrue(groupOpt.isPresent());
1156 group = groupOpt.get();
1157 validateInputsProperties(vdbe0, group);
1161 public void testGetGroupsInputsCapabilities() {
1162 NodeTemplate vdbe = csarHelperServiceGroupsCapabilities.getNodeTemplateByName("vdbe_srv_proxy 0");
1163 CapabilityAssignments capabilities = csarHelperServiceGroupsCapabilities.getCapabilitiesOf(vdbe);
1164 CapabilityAssignment capability = capabilities.getCapabilityByName("vdbe0.oam_group.vlan_assignment");
1165 assertNotNull(capability);
1169 public void testGetVfGroupsPolicies() {
1170 List<Policy> policies = csarHelperVfGroupsPolicies.getPoliciesOfTopologyTemplate();
1171 assertNotNull(policies);
1172 List<Group> groups = csarHelperVfGroupsPolicies.getGroupsOfTopologyTemplate();
1173 assertNotNull(groups);
1177 public void testGetServiceGroupsPolicies() {
1178 NodeTemplate nt = csarHelperServiceGroupsPolicies.getNodeTemplateByName("vDBE 0");
1179 List<Policy> policies = csarHelperServiceGroupsPolicies.getPoliciesOfOriginOfNodeTemplate(nt);
1180 assertNotNull(policies);
1181 List<Group> groups = csarHelperServiceGroupsPolicies.getGroupsOfOriginOfNodeTemplate(nt);
1182 assertNotNull(groups);
1186 public void testGetResourceInputsWithAnnotations() {
1187 List<Input> inputs = csarHelperServiceAnnotations.getServiceInputs();
1188 assertNotNull(inputs);
1189 assertEquals(inputs.size(), 19);
1190 assertTrue(inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList()).isEmpty());
1192 inputs = csarHelperServiceAnnotations.getInputsWithAnnotations();
1193 assertNotNull(inputs);
1194 assertEquals(inputs.size(), 19);
1195 validateInputsAnnotations(inputs);
1199 public void testGetServiceInputsWithAnnotations() {
1200 List<Input> inputs = csarHelperServiceAdiodAnnotations.getServiceInputs();
1201 assertNotNull(inputs);
1202 assertTrue(inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList()).isEmpty());
1204 inputs = csarHelperServiceAdiodAnnotations.getInputsWithAnnotations();
1205 assertNotNull(inputs);
1206 validateInputsAnnotations(inputs);
1210 public void getPropertyValueByNamePathAndNodeTypePathWhenPropertyValueIncludesGetInputAndPropertyHasDataType() {
1211 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("exCP_naming",
1212 "vDBE 0#abstract_vdbe_1#vdbe_vdbe_untr_port");
1213 assertEquals(0, propertyValues.size());
1217 public void getPropertyValueByNamePathAndNodeTypePathWhenPropertyPathIsComplex() {
1218 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("exCP_naming#ecomp_generated_naming",
1219 "vDBE 0#abstract_vdbe_1#vdbe_vdbe_untr_port");
1220 assertEquals(1, propertyValues.size());
1221 assertEquals("true", propertyValues.get(0));
1225 public void getPropertyValueByNamePathAndNodeTypePathWhenNoValueFoundForGetInputProperty() {
1226 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("virtual_machine_interface_allowed_address_pairs#allowed_address_pair#address_mode",
1227 "vDBE 0#abstract_vdbe_1#vdbe_vdbe_untr_port_nested2#vdbe_0_subint_oam_vmi_0");
1228 assertEquals(0, propertyValues.size());
1232 public void getPropertyValueByNamePathAndNodeTemplatePathSuccess() {
1233 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("is_default",
1234 "vDBE 0#abstract_vdbe_1#vdbe_vdbe_untr_port_nested2#vdbe_0_subint_oam_vmi_0");
1235 assertEquals(1, propertyValues.size());
1236 assertEquals("false", propertyValues.get(0));
1240 public void getPropertyValueByNamePathAndEmptyNodeTypePath() {
1241 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath(null, "");
1242 assertEquals(0, propertyValues.size());
1246 public void getPropertyValueByNamePathAndNullNodeTypePath() {
1247 List<String> propertyValues = csarHelperServiceGroupsInputs.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath(null, null);
1248 assertTrue(propertyValues.isEmpty());
1252 public void getPropertyValueByNamePathAndNodeTypePathForListOfGetInputs() {
1253 List<String> propertyValues = resolveGetInputCsar.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("port_pd01_port_ip_requirements#subnet_role",
1254 "ipAssign4 0#abstract_pd_server");
1255 assertEquals(2, propertyValues.size());
1256 assertTrue(propertyValues.get(0).equals("subnet_role_4") || propertyValues.get(0).equals("subnet_role_6"));
1257 assertTrue(propertyValues.get(1).equals("subnet_role_4") || propertyValues.get(1).equals("subnet_role_6"));
1261 public void getPropertyValueByNamePathAndNodeTypePathForNetworkCloud() {
1262 List<String> propertyValues = csarHelperServiceNetworkCloud.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("related_networks#related_network_role",
1263 "Network Cloud VNF MOCK 0#abstract_testVM#testVM_testVM_SRIOVtrunk1_port");
1264 assertEquals(3, propertyValues.size());
1265 assertTrue(propertyValues.contains("cor_direct_2"));
1266 assertTrue(propertyValues.contains("sgi_direct_2"));
1267 assertTrue(propertyValues.contains("int_imbl_2"));
1271 public void getPropertyValueByNamePathAndSingleNodeTypeNameForNetworkCloud() {
1272 List<String> propertyValues = csarHelperServiceNetworkCloud.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath("nf_naming#ecomp_generated_naming",
1273 "Network Cloud VNF MOCK 0");
1274 assertEquals(1, propertyValues.size());
1275 assertEquals("true", propertyValues.get(0));
1279 //todo test for port_order on resolveGetInputCsar
1280 public void getPropertyValueByNamePathAndNodeTypePathWithGetInputNotSet() {
1281 List<String> propertyValues = csarHelperServiceNetworkCloud.getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath(
1282 "name", "Network Cloud VNF MOCK 0#abstract_testVM#testVM");
1283 assertTrue(propertyValues.isEmpty());
1287 @SuppressWarnings("unchecked")
1288 private void validateInputsProperties(NodeTemplate vdbe0, Group group) {
1289 assertNotNull(group.getPropertiesObjects());
1290 ArrayList<Property> properties = group.getPropertiesObjects();
1292 List<String> inputs = properties.stream()
1293 .filter(p -> p.getValue() instanceof Map)
1294 .map(p -> ((Map<String, String>)p.getValue()).get("get_input"))
1295 .collect(Collectors.toList());
1297 assertEquals(inputs.size(), 2);
1299 inputs.forEach(i -> assertTrue(vdbe0.getProperties().containsKey(i)));
1301 List<Object> list = vdbe0.getProperties().entrySet().stream()
1302 .filter(e -> inputs.contains(e.getKey()))
1303 .map(e -> e.getValue().getValue())
1304 .collect(Collectors.toList());
1305 assertEquals(list.size(), 2);
1308 private void validateInputsAnnotations(List<Input> inputs) {
1309 List<Input> inputsWithAnnotations = inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList());
1310 assertTrue(!inputs.isEmpty());
1311 inputsWithAnnotations.stream().forEach(i -> validateAnnotations(i));
1314 private void validateAnnotations(Input input) {
1315 assertNotNull(input.getAnnotations());
1316 assertEquals(input.getAnnotations().size(), 1);
1317 Annotation annotation = input.getAnnotations().get("source");
1318 assertEquals(annotation.getName(), "source");
1319 assertEquals(annotation.getType().toLowerCase(), "org.openecomp.annotations.source");
1320 assertNotNull(annotation.getProperties());
1321 Optional<Property> source_type = annotation.getProperties()
1323 .filter(p->p.getName().equals("source_type"))
1325 assertTrue(source_type.isPresent());
1326 assertEquals(source_type.get().getValue(), "HEAT");