diff options
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java')
-rw-r--r-- | catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java | 200 |
1 files changed, 127 insertions, 73 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java index b63e6ffeb8..1d7a1c5eed 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java @@ -35,6 +35,7 @@ import org.openecomp.sdc.be.components.csar.CsarInfo; import org.openecomp.sdc.be.components.csar.YamlTemplateParsingHandler; import org.openecomp.sdc.be.components.impl.AnnotationBusinessLogic; import org.openecomp.sdc.be.components.impl.GroupTypeBusinessLogic; +import org.openecomp.sdc.be.components.impl.PolicyTypeBusinessLogic; import org.openecomp.sdc.be.components.validation.AnnotationValidator; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; @@ -43,6 +44,8 @@ import org.openecomp.sdc.be.model.ComponentInstanceProperty; import org.openecomp.sdc.be.model.GroupProperty; import org.openecomp.sdc.be.model.GroupTypeDefinition; import org.openecomp.sdc.be.model.ParsedToscaYamlInfo; +import org.openecomp.sdc.be.model.PolicyDefinition; +import org.openecomp.sdc.be.model.PolicyTypeDefinition; import org.openecomp.sdc.be.model.UploadArtifactInfo; import org.openecomp.sdc.be.model.UploadComponentInstanceInfo; import org.openecomp.sdc.be.model.User; @@ -58,6 +61,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; +import org.springframework.test.util.ReflectionTestUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertNotNull; @@ -78,6 +82,8 @@ public class YamlTemplateParsingHandlerTest { private JanusGraphDao janusGraphDao; @Mock private User user; + @Mock + private PolicyTypeBusinessLogic policyTypeBusinessLogic; private YamlTemplateParsingHandler handler; @@ -87,9 +93,13 @@ public class YamlTemplateParsingHandlerTest { private final static String VFC_GROUP_TYPE = "org.openecomp.groups.VfcInstanceGroup"; private final static String HEAT_GROUP_TYPE = "org.openecomp.groups.heat.HeatStack"; private final static String ROOT_GROUP_TYPE = "tosca.groups.Root"; + private final static String OPENECOMP_ANTILOCATE_POLICY_TYPE = "org.openecomp.policies.placement.Antilocate"; + private final static String ROOT_POLICIES_TYPE = "tosca.policies.Root"; private final static GroupTypeDefinition VfcInstanceGroupType = buildVfcInstanceGroupType(); private final static GroupTypeDefinition heatGroupType = buildHeatStackGroupType(); private final static GroupTypeDefinition rootGroupType = buildRootGroupType(); + private static final PolicyTypeDefinition OPENECOMP_POLICY_TYPE = buildOpenecompPolicyType(); + private final static String OPENECOMP_POLICY_NAME = "vepdg_server_group_policy"; private final static String CAPABILITY_TYPE = "org.openecomp.capabilities.VLANAssignment"; private final static String CAPABILITY_NAME = "vlan_assignment"; private static final String CSAR_FILE_PATH = "csars/with_groups.csar"; @@ -122,8 +132,10 @@ public class YamlTemplateParsingHandlerTest { AnnotationBusinessLogic annotationBusinessLogic = new AnnotationBusinessLogic(annotationTypeOperations, annotationValidator); - handler = new YamlTemplateParsingHandler(janusGraphDao, groupTypeBusinessLogic, annotationBusinessLogic); + handler = new YamlTemplateParsingHandler(janusGraphDao, groupTypeBusinessLogic, annotationBusinessLogic, policyTypeBusinessLogic); + ReflectionTestUtils.setField(handler, "policyTypeBusinessLogic", policyTypeBusinessLogic); stubGetGroupType(); + stubGetPolicyType(); } @Test @@ -148,6 +160,79 @@ public class YamlTemplateParsingHandlerTest { validateParsedYamlWithCapability(parsedYaml); } + @Test + public void testSetArtifacts() { + UploadComponentInstanceInfo nodeTemplateInfo = new UploadComponentInstanceInfo(); + Map<String, Object> nodeTemplateJsonMap = new HashMap<>(); + Map<String, String> nodeMap = new HashMap<>(); + nodeMap.put("name","test_name"); + nodeMap.put("type","test_type"); + nodeTemplateJsonMap.put(ARTIFACTS.getElementName(), nodeMap); + Deencapsulation.invoke(testSubject, "setArtifacts", nodeTemplateInfo, nodeTemplateJsonMap); + assertNotNull(nodeTemplateInfo.getArtifacts()); + } + + @Test + public void testCreateArtifactsModuleFromYaml() { + Map<String, Map<String, Map<String, String>>> nodeTemplateJsonMap = new HashMap<>(); + Map<String, Map<String,String>> map0 = new HashMap<>(); + Map<String, String> map1 = new HashMap<>(); + map1.put("file", "test_file"); + map1.put("type", "test_type"); + map0.put("test_art", map1); + nodeTemplateJsonMap.put(ARTIFACTS.getElementName(), map0); + Map<String, Map<String, UploadArtifactInfo>> result; + result = Deencapsulation.invoke(testSubject, "createArtifactsModuleFromYaml", nodeTemplateJsonMap); + Assert.assertTrue(MapUtils.isNotEmpty(result)); + Assert.assertTrue(MapUtils.isNotEmpty(result.get(ARTIFACTS.getElementName()))); + Assert.assertEquals("test_file", result.get(ARTIFACTS.getElementName()).get("test_art").getFile()); + Assert.assertEquals("test_type", result.get(ARTIFACTS.getElementName()).get("test_art").getType()); + } + + @Test + public void testAddModuleNodeTemplateArtifacts() { + Map<String, Map<String, UploadArtifactInfo>> result = new HashMap<>(); + Map<String, String> map1 = new HashMap<>(); + map1.put("file", "test_file"); + map1.put("type", "test_type"); + Deencapsulation.invoke(testSubject, "addModuleNodeTemplateArtifacts", result, map1, "test_art"); + Assert.assertTrue(MapUtils.isNotEmpty(result)); + Assert.assertTrue(MapUtils.isNotEmpty(result.get(ARTIFACTS.getElementName()))); + Assert.assertEquals("test_file", result.get(ARTIFACTS.getElementName()).get("test_art").getFile()); + Assert.assertEquals("test_type", result.get(ARTIFACTS.getElementName()).get("test_art").getType()); + } + + @Test + public void testBuildModuleNodeTemplateArtifact() { + Map<String, String> map1 = new HashMap<>(); + map1.put("file", "test_file"); + map1.put("type", "test_type"); + UploadArtifactInfo result; + result = Deencapsulation.invoke(testSubject, "buildModuleNodeTemplateArtifact", map1); + assertNotNull(result); + Assert.assertEquals("test_file", result.getFile()); + Assert.assertEquals("test_type", result.getType()); + } + + @Test + public void testFillArtifact() { + Map<String, String> map1 = new HashMap<>(); + map1.put("file", "test_file"); + map1.put("type", "test_type"); + UploadArtifactInfo result = new UploadArtifactInfo(); + Deencapsulation.invoke(testSubject, "fillArtifact", result, map1); + assertNotNull(result); + Assert.assertEquals("test_file", result.getFile()); + Assert.assertEquals("test_type", result.getType()); + } + + @Test + public void parseResourceWithPoliciesDefined() { + ParsedToscaYamlInfo parsedYaml = handler.parseResourceInfoFromYAML(FILE_NAME, resourceYml, new HashMap<>(), + new HashMap<>(), ""); + validateParsedYamlWithPolicies(parsedYaml); + } + private void validateParsedYaml(ParsedToscaYamlInfo parsedYaml, String group, List<String> expectedProp) { assertThat(parsedYaml).isNotNull(); assertThat(parsedYaml.getGroups()).isNotNull().containsKey(group); @@ -155,15 +240,15 @@ public class YamlTemplateParsingHandlerTest { assertThat(parsedYaml.getGroups().get(group).getProperties()).isNotNull(); assertThat(parsedYaml.getGroups().get(group).getProperties() - .stream() - .map(PropertyDataDefinition::getName) - .collect(Collectors.toList())) + .stream() + .map(PropertyDataDefinition::getName) + .collect(Collectors.toList())) .containsAll(expectedProp); assertThat(parsedYaml.getGroups().get(group).getMembers()).isNotNull(); } - private void validateParsedYamlWithCapability(ParsedToscaYamlInfo parsedYaml) { + private void validateParsedYamlWithCapability(ParsedToscaYamlInfo parsedYaml) { final List<String> expectedProp = Lists.newArrayList("vfc_parent_port_role", "network_collection_function", "vfc_instance_group_function", "subinterface_role"); @@ -171,23 +256,23 @@ public class YamlTemplateParsingHandlerTest { validateParsedYaml(parsedYaml, MAIN_GROUP_NAME, expectedProp); assertThat(parsedYaml.getGroups().get(MAIN_GROUP_NAME).getCapabilities() - .get(CAPABILITY_TYPE) - .get(0).getProperties().get(0).getValue()).isEqualTo("success"); + .get(CAPABILITY_TYPE) + .get(0).getProperties().get(0).getValue()).isEqualTo("success"); assertThat(parsedYaml.getGroups().get(MAIN_GROUP_NAME).getCapabilities()).isNotNull(); - } + } - private void stubGetGroupType() { - when(groupTypeBusinessLogic.getLatestGroupTypeByType(eq(VFC_GROUP_TYPE))).thenReturn(VfcInstanceGroupType); - when(groupTypeBusinessLogic.getLatestGroupTypeByType(eq(HEAT_GROUP_TYPE))).thenReturn(heatGroupType); + private void stubGetGroupType() { + when(groupTypeBusinessLogic.getLatestGroupTypeByType(eq(VFC_GROUP_TYPE))).thenReturn(VfcInstanceGroupType); + when(groupTypeBusinessLogic.getLatestGroupTypeByType(eq(HEAT_GROUP_TYPE))).thenReturn(heatGroupType); when(groupTypeBusinessLogic.getLatestGroupTypeByType(eq(ROOT_GROUP_TYPE))).thenReturn(rootGroupType); } private static GroupTypeDefinition buildRootGroupType() { return createGroupTypeDefinition(ROOT_GROUP_TYPE, null, "The TOSCA Group Type all other TOSCA Group Types derive from"); - } + } - private static GroupTypeDefinition buildHeatStackGroupType() { + private static GroupTypeDefinition buildHeatStackGroupType() { GroupTypeDefinition groupType = createGroupTypeDefinition(HEAT_GROUP_TYPE, "tosca.groups.Root", "Grouped all heat resources which are in the same heat stack"); @@ -199,9 +284,9 @@ public class YamlTemplateParsingHandlerTest { groupType.setProperties(Lists.newArrayList(property1, property2)); return groupType; - } + } - private static GroupTypeDefinition buildVfcInstanceGroupType() { + private static GroupTypeDefinition buildVfcInstanceGroupType() { GroupTypeDefinition groupType = createGroupTypeDefinition(VFC_GROUP_TYPE, "tosca.groups.Root", "Groups of VFCs with same parent port role"); @@ -250,7 +335,7 @@ public class YamlTemplateParsingHandlerTest { return property; } private static GroupProperty createGroupProperty(String name, String description, - String status){ + String status){ GroupProperty property = new GroupProperty(); if (name != null) property.setName(name); @@ -268,69 +353,38 @@ public class YamlTemplateParsingHandlerTest { return property; } - @Test - public void testSetArtifacts() { - UploadComponentInstanceInfo nodeTemplateInfo = new UploadComponentInstanceInfo(); - Map<String, Object> nodeTemplateJsonMap = new HashMap<>(); - Map<String, String> nodeMap = new HashMap<>(); - nodeMap.put("name","test_name"); - nodeMap.put("type","test_type"); - nodeTemplateJsonMap.put(ARTIFACTS.getElementName(), nodeMap); - Deencapsulation.invoke(testSubject, "setArtifacts", nodeTemplateInfo, nodeTemplateJsonMap); - assertNotNull(nodeTemplateInfo.getArtifacts()); - } - @Test - public void testCreateArtifactsModuleFromYaml() { - Map<String, Map<String, Map<String, String>>> nodeTemplateJsonMap = new HashMap<>(); - Map<String, Map<String,String>> map0 = new HashMap<>(); - Map<String, String> map1 = new HashMap<>(); - map1.put("file", "test_file"); - map1.put("type", "test_type"); - map0.put("test_art", map1); - nodeTemplateJsonMap.put(ARTIFACTS.getElementName(), map0); - Map<String, Map<String, UploadArtifactInfo>> result; - result = Deencapsulation.invoke(testSubject, "createArtifactsModuleFromYaml", nodeTemplateJsonMap); - Assert.assertTrue(MapUtils.isNotEmpty(result)); - Assert.assertTrue(MapUtils.isNotEmpty(result.get(ARTIFACTS.getElementName()))); - Assert.assertEquals("test_file", result.get(ARTIFACTS.getElementName()).get("test_art").getFile()); - Assert.assertEquals("test_type", result.get(ARTIFACTS.getElementName()).get("test_art").getType()); + private void validateParsedYamlWithPolicies(ParsedToscaYamlInfo parsedYaml) { + // validate policies + assertThat(parsedYaml.getPolicies()).isNotNull(); + assertThat(parsedYaml.getPolicies()).containsKey(OPENECOMP_POLICY_NAME); + assertThat(parsedYaml.getPolicies().get(OPENECOMP_POLICY_NAME)).isInstanceOf(PolicyDefinition.class); } - @Test - public void testAddModuleNodeTemplateArtifacts() { - Map<String, Map<String, UploadArtifactInfo>> result = new HashMap<>(); - Map<String, String> map1 = new HashMap<>(); - map1.put("file", "test_file"); - map1.put("type", "test_type"); - Deencapsulation.invoke(testSubject, "addModuleNodeTemplateArtifacts", result, map1, "test_art"); - Assert.assertTrue(MapUtils.isNotEmpty(result)); - Assert.assertTrue(MapUtils.isNotEmpty(result.get(ARTIFACTS.getElementName()))); - Assert.assertEquals("test_file", result.get(ARTIFACTS.getElementName()).get("test_art").getFile()); - Assert.assertEquals("test_type", result.get(ARTIFACTS.getElementName()).get("test_art").getType()); + private void stubGetPolicyType () { + when(policyTypeBusinessLogic.getLatestPolicyTypeByType(eq(OPENECOMP_ANTILOCATE_POLICY_TYPE))).thenReturn( + OPENECOMP_POLICY_TYPE); } - @Test - public void testBuildModuleNodeTemplateArtifact() { - Map<String, String> map1 = new HashMap<>(); - map1.put("file", "test_file"); - map1.put("type", "test_type"); - UploadArtifactInfo result; - result = Deencapsulation.invoke(testSubject, "buildModuleNodeTemplateArtifact", map1); - assertNotNull(result); - Assert.assertEquals("test_file", result.getFile()); - Assert.assertEquals("test_type", result.getType()); + private static PolicyTypeDefinition buildOpenecompPolicyType() { + return createPolicyTypeDefinition(OPENECOMP_POLICY_NAME, OPENECOMP_ANTILOCATE_POLICY_TYPE, ROOT_POLICIES_TYPE, + "The Openecomp Antilocate policy"); } - @Test - public void testFillArtifact() { - Map<String, String> map1 = new HashMap<>(); - map1.put("file", "test_file"); - map1.put("type", "test_type"); - UploadArtifactInfo result = new UploadArtifactInfo(); - Deencapsulation.invoke(testSubject, "fillArtifact", result, map1); - assertNotNull(result); - Assert.assertEquals("test_file", result.getFile()); - Assert.assertEquals("test_type", result.getType()); + private static PolicyTypeDefinition createPolicyTypeDefinition(String policyName, String policyType, String derivedFrom, String description) { + PolicyTypeDefinition policyTypeDefinition = new PolicyTypeDefinition(); + if (policyName != null && !policyName.isEmpty()) { + policyTypeDefinition.setName(policyName); + } + if (policyType != null) { + policyTypeDefinition.setType(policyType); + } + if (derivedFrom != null) { + policyTypeDefinition.setDerivedFrom(derivedFrom); + } + if (description != null) { + policyTypeDefinition.setDescription(description); + } + return policyTypeDefinition; } } |