aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/GroupExportParserImplTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/tosca/GroupExportParserImplTest.java')
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/tosca/GroupExportParserImplTest.java151
1 files changed, 151 insertions, 0 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/GroupExportParserImplTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/GroupExportParserImplTest.java
new file mode 100644
index 0000000000..f439b4d31f
--- /dev/null
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/GroupExportParserImplTest.java
@@ -0,0 +1,151 @@
+package org.openecomp.sdc.be.tosca;
+
+import fj.data.Either;
+import org.apache.commons.lang3.tuple.Pair;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.openecomp.sdc.be.components.impl.exceptions.SdcResourceNotFoundException;
+import org.openecomp.sdc.be.components.utils.GroupDefinitionBuilder;
+import org.openecomp.sdc.be.components.utils.ResourceBuilder;
+import org.openecomp.sdc.be.model.*;
+import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
+import org.openecomp.sdc.be.tosca.model.ToscaGroupTemplate;
+import org.openecomp.sdc.be.tosca.model.ToscaTemplateCapability;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Stream;
+
+import static java.util.Collections.singletonList;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class GroupExportParserImplTest {
+
+ private static final String GROUP_DEFINITION_NAME = "groupDefinitionName";
+ private static final String GROUP_DEFINITION_INVARIANT_UUID = "groupDefinitionInvariantUUID";
+ private static final String GROUP_DEFINITION_GROUP_UUID = "groupDefinitionGroupUUID";
+ private static final String GROUP_DEFINITION_VERSION = "groupDefinitionVersion";
+ private static final String GROUP_DEFINITION_TYPE = "groupDefinitionType";
+
+ private static final String CAPABILITIE_NAME = "capabilitieName";
+ private static final String COMPONENT_INSTANCE_PROPERTY_NAME = "componentInstancePropertyName";
+ private static final String COMPONENT_INSTANCE_PROPERTY_VALUE = "componentInstancePropertyValue";
+
+
+ private GroupExportParser groupExportParser;
+
+ @Mock
+ private ApplicationDataTypeCache dataTypeCache;
+
+ @Mock
+ private Component component;
+
+ @Before
+ public void setUp() throws Exception {
+ initGroupExportParser();
+ }
+
+ private void initGroupExportParser() {
+ when(dataTypeCache.getAll()).thenReturn(Either.left(null));
+ groupExportParser = new GroupExportParserImpl(dataTypeCache);
+ }
+
+ @Test
+ public void failToGetAllDataTypes() {
+ when(dataTypeCache.getAll()).thenReturn(Either.right(null));
+ assertThatExceptionOfType(SdcResourceNotFoundException.class).isThrownBy(() -> groupExportParser = new GroupExportParserImpl(dataTypeCache));
+ }
+
+ @Test
+ public void noGroupsInComponent() {
+ when(component.getGroups()).thenReturn(null);
+ Map<String, ToscaGroupTemplate> groups = groupExportParser.getGroups(component);
+ assertThat(groups).isNull();
+ }
+
+ @Test
+ public void oneGroupInComponent() {
+ when(component.getGroups()).thenReturn(genOneGroup());
+ Map<String, ToscaGroupTemplate> groups = groupExportParser.getGroups(component);
+ assertThat(groups).isNotNull();
+ assertThat(groups.size()).isOne();
+ ToscaGroupTemplate toscaGroupTemplate = groups.get(GROUP_DEFINITION_NAME);
+ Map<String, ToscaTemplateCapability> capabilities = toscaGroupTemplate.getCapabilities();
+ ToscaTemplateCapability toscaTemplateCapability = capabilities.get(CAPABILITIE_NAME);
+ Map<String, Object> properties = toscaTemplateCapability.getProperties();
+ assertThat(properties).containsEntry(COMPONENT_INSTANCE_PROPERTY_NAME, COMPONENT_INSTANCE_PROPERTY_VALUE);
+
+ }
+
+ @Test
+ public void whenExportingGroupMembers_takeNamesFromTheMembersAndNotFromTheGroupMembersMap() {
+ GroupDefinition group1 = getGroup("group1", "type1", Pair.of("instance1Name", "inst1"));
+ GroupDefinition group2 = getGroup("group2", "type2", Pair.of("instance2Name", "inst2"));
+ Resource resource = new ResourceBuilder()
+ .addComponentInstance("inst1")
+ .addComponentInstance("inst2")
+ .addGroup(group1)
+ .addGroup(group2)
+ .build();
+ Map<String, ToscaGroupTemplate> groups = groupExportParser.getGroups(resource);
+ assertThat(groups.values())
+ .extracting("members")
+ .containsExactlyInAnyOrder(singletonList("inst1"), singletonList("inst2"));
+ }
+
+ @SafeVarargs
+ private final GroupDefinition getGroup(String name, String type, Pair<String, String>... members) {
+ GroupDefinitionBuilder groupBuilder = GroupDefinitionBuilder.create()
+ .setName(name)
+ .setType(type);
+ Stream.of(members).forEach(member -> groupBuilder.addMember(member.getKey(), member.getValue()));
+ return groupBuilder.build();
+ }
+
+ private List<GroupDefinition> genOneGroup() {
+ List<GroupDefinition> group = new ArrayList<>();
+ GroupDefinitionBuilder groupBuilder = GroupDefinitionBuilder.create()
+ .setName(GROUP_DEFINITION_NAME)
+ .setInvariantUUID(GROUP_DEFINITION_INVARIANT_UUID)
+ .setGroupUUID(GROUP_DEFINITION_GROUP_UUID)
+ .setVersion(GROUP_DEFINITION_VERSION)
+ .setType(GROUP_DEFINITION_TYPE);
+
+ GroupDefinition groupDefinition = groupBuilder.build();
+
+ Map<String, List<CapabilityDefinition>> capabilities = genCapabilities();
+ groupDefinition.setCapabilities(capabilities);
+
+ group.add(groupDefinition);
+ return group;
+ }
+
+ private Map<String, List<CapabilityDefinition>> genCapabilities() {
+
+ Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
+ List<CapabilityDefinition> capabilityDefinitions = new ArrayList<>();
+ CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
+
+ List<ComponentInstanceProperty> capabilityProperties = new ArrayList<>();
+ ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
+ componentInstanceProperty.setName(COMPONENT_INSTANCE_PROPERTY_NAME);
+ componentInstanceProperty.setValue(COMPONENT_INSTANCE_PROPERTY_VALUE);
+
+ capabilityProperties.add(componentInstanceProperty);
+ capabilityDefinition.setProperties(capabilityProperties);
+ capabilityDefinition.setName(CAPABILITIE_NAME);
+
+ capabilityDefinitions.add(capabilityDefinition);
+ capabilities.put("JustSoneName", capabilityDefinitions);
+ return capabilities;
+ }
+
+}