summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java')
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java156
1 files changed, 156 insertions, 0 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java
new file mode 100644
index 0000000000..ff589d9baa
--- /dev/null
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java
@@ -0,0 +1,156 @@
+package org.openecomp.sdc.be.tosca;
+
+import fj.data.Either;
+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.datatypes.elements.PolicyTargetType;
+import org.openecomp.sdc.be.model.Component;
+import org.openecomp.sdc.be.model.ComponentInstance;
+import org.openecomp.sdc.be.model.GroupDefinition;
+import org.openecomp.sdc.be.model.PolicyDefinition;
+import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
+import org.openecomp.sdc.be.tosca.model.ToscaMetadata;
+import org.openecomp.sdc.be.tosca.model.ToscaPolicyTemplate;
+
+import java.util.*;
+
+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 PolicyExportParserImplTest {
+
+ private static final String[] POLICY_KEYS = {"policy_key_1","policy_key_2"};
+ private static final String[] VERSIONS = {"version_1","version_1"};
+ private static final String[] POLICY_NAMES = {"name_1","name_2"};
+ private static final String[] POLICY_UUIDS = {"policyUUID_1","policyUUID_2"};
+ private static final String[] INVARIANT_UUIDS = {"invariantUUID_1","invariantUUID_2"};
+ private static final String[] POLICY_TYPE_NAMES = {"policyTypeName_1","policyTypeName_2"};
+ private static final String[] POLICY_COMPONENT_INSTANCES = {"policyComponentInstanceId"};
+ private static final String POLICY_COMPONENT_INSTANCES_NAME = "policyComponentInstanceName";
+ private static final String[] POLICY_GROUPS = {"policyGroupId"};
+ private static final String POLICY_GROUP_NAME = "PolicyGroupName";
+
+ private PolicyExportParser policiyExportParser;
+
+ @Mock
+ private ApplicationDataTypeCache dataTypeCache;
+
+ @Mock
+ private Component component;
+
+ @Test
+ public void failToGetAllDataTypes() {
+
+ when(dataTypeCache.getAll()).thenReturn(Either.right(null));
+ assertThatExceptionOfType(SdcResourceNotFoundException.class).isThrownBy(() -> policiyExportParser = new PolicyExportParserImpl(dataTypeCache));
+ }
+
+ @Test
+ public void noPoliciesInComponent() {
+
+ when(dataTypeCache.getAll()).thenReturn(Either.left(null));
+ when(component.getPolicies()).thenReturn(null);
+ policiyExportParser = new PolicyExportParserImpl(dataTypeCache);
+ Map<String, ToscaPolicyTemplate> policies = policiyExportParser.getPolicies(component);
+ assertThat(policies).isEqualTo(null);
+ }
+
+ @Test
+ public void onePoliciesInComponent() {
+
+ List<Integer> constIndexes = Arrays.asList(new Integer[] {0});
+ testPoliciesInComponent(constIndexes);
+ }
+
+ @Test
+ public void twoPoliciesInComponent() {
+
+ List<Integer> constIndexes = Arrays.asList(new Integer[] {0,1});
+ testPoliciesInComponent(constIndexes);
+ }
+
+ private void testPoliciesInComponent(List<Integer> constIndexes) {
+ when(dataTypeCache.getAll()).thenReturn(Either.left(null));
+ Map<String, PolicyDefinition> policiesToAdd = getPolicies(constIndexes);
+
+ when(component.getPolicies()).thenReturn(policiesToAdd);
+ when(component.getComponentInstances()).thenReturn(getComponentInstances());
+ when(component.getGroups()).thenReturn(getGroups());
+ policiyExportParser = new PolicyExportParserImpl(dataTypeCache);
+
+ Map<String, ToscaPolicyTemplate> policies = policiyExportParser.getPolicies(component);
+
+ for(Integer i : constIndexes) {
+
+
+ ToscaPolicyTemplate toscaPolicyTemplate = policies.get(POLICY_NAMES[i]);
+ ToscaMetadata metadata = (ToscaMetadata) toscaPolicyTemplate.getMetadata();
+
+ assertThat(metadata.getInvariantUUID()).isEqualTo(INVARIANT_UUIDS[i]);
+ assertThat(metadata.getUUID()).isEqualTo(POLICY_UUIDS[i]);
+ assertThat(metadata.getName()).isEqualTo(POLICY_NAMES[i]);
+ assertThat(metadata.getVersion()).isEqualTo(VERSIONS[i]);
+
+ String type = toscaPolicyTemplate.getType();
+ assertThat(type).isEqualTo(POLICY_TYPE_NAMES[i]);
+
+ List<String> targets = toscaPolicyTemplate.getTargets();
+ assertThat(targets.get(0)).isEqualTo(POLICY_COMPONENT_INSTANCES_NAME);
+ assertThat(targets.get(1)).isEqualTo(POLICY_GROUP_NAME);
+ }
+ }
+
+ private List<GroupDefinition> getGroups() {
+ List<GroupDefinition> groups = new ArrayList<>();
+ GroupDefinition groupDefinition = new GroupDefinition();
+ groupDefinition.setUniqueId(POLICY_GROUPS[0]);
+ groupDefinition.setName(POLICY_GROUP_NAME);
+ groups.add(groupDefinition);
+ return groups;
+ }
+
+ private List<ComponentInstance> getComponentInstances() {
+ List<ComponentInstance> componentInstances = new ArrayList<>();
+ ComponentInstance componentInstance = new ComponentInstance();
+ componentInstance.setUniqueId(POLICY_COMPONENT_INSTANCES[0]);
+ componentInstance.setName(POLICY_COMPONENT_INSTANCES_NAME);
+ componentInstances.add(componentInstance);
+ return componentInstances;
+ }
+
+ private Map<String, PolicyDefinition> getPolicies(List<Integer> indexes) {
+ Map<String, PolicyDefinition> policies = new HashMap<>();
+
+ for (int index : indexes) {
+
+ PolicyDefinition policyDefinition = new PolicyDefinition();
+
+ // Set type
+ policyDefinition.setPolicyTypeName(POLICY_TYPE_NAMES[index]);
+
+ // Set Metadata
+ policyDefinition.setInvariantUUID(INVARIANT_UUIDS[index]);
+ policyDefinition.setPolicyUUID(POLICY_UUIDS[index]);
+ policyDefinition.setName(POLICY_NAMES[index]);
+ policyDefinition.setVersion(VERSIONS[index]);
+
+ // Set targets
+ policyDefinition.setTargets(getTargers());
+
+ policies.put(POLICY_KEYS[index],policyDefinition);
+ }
+ return policies;
+ }
+
+ private Map<PolicyTargetType, List<String>> getTargers() {
+ Map<PolicyTargetType, List<String>> targets = new HashMap<>();
+ targets.put(PolicyTargetType.COMPONENT_INSTANCES, Arrays.asList(POLICY_COMPONENT_INSTANCES));
+ targets.put(PolicyTargetType.GROUPS, Arrays.asList(POLICY_GROUPS));
+ return targets;
+ }
+}