Release version 1.13.7
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / datamodel / UiComponentDataConverterTest.java
index ffe3d06..a66b19d 100644 (file)
@@ -20,6 +20,8 @@ package org.openecomp.sdc.be.datamodel;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hibernate.validator.internal.util.CollectionHelper.asSet;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -43,15 +45,23 @@ import org.openecomp.sdc.be.components.utils.ServiceBuilder;
 import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter;
 import org.openecomp.sdc.be.datatypes.elements.CINodeFilterDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.GetPolicyValueDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.PropertyFilterConstraintDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.SubstitutionFilterDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.SubstitutionFilterPropertyDataDefinition;
+import org.openecomp.sdc.be.datatypes.enums.ConstraintType;
+import org.openecomp.sdc.be.datatypes.enums.FilterValueType;
+import org.openecomp.sdc.be.datatypes.enums.PropertyFilterTargetType;
 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
 import org.openecomp.sdc.be.model.GroupDefinition;
 import org.openecomp.sdc.be.model.InputDefinition;
 import org.openecomp.sdc.be.model.InterfaceDefinition;
+import org.openecomp.sdc.be.model.OutputDefinition;
 import org.openecomp.sdc.be.model.PolicyDefinition;
 import org.openecomp.sdc.be.model.PropertyDefinition;
 import org.openecomp.sdc.be.model.Resource;
 import org.openecomp.sdc.be.model.Service;
+import org.openecomp.sdc.be.ui.model.UIConstraint;
 import org.openecomp.sdc.be.ui.model.UiComponentDataTransfer;
 import org.openecomp.sdc.be.ui.model.UiComponentMetadata;
 import org.openecomp.sdc.be.ui.model.UiServiceDataTransfer;
@@ -61,6 +71,7 @@ public class UiComponentDataConverterTest {
     private PolicyDefinition policy1, policy2;
     private GroupDefinition group1, group2;
     private InputDefinition input1;
+    private OutputDefinition output;
     private PropertyDefinition propertyDef;
     private InterfaceDefinition interfaceDef;
 
@@ -149,6 +160,7 @@ public class UiComponentDataConverterTest {
     public void getUiDataTransferFromResourceByParams_All() {
         Resource resourceWithGroups = buildResourceWithGroups();
         Resource resourceWithInputs = buildResourceWithInputs();
+        Resource resourceWithOutputs = buildResourceWithOutputs();
 
         UiComponentDataTransfer componentDTO1 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("PROPERTIES"));
         UiComponentDataTransfer componentDTO2 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("properties"));
@@ -160,6 +172,7 @@ public class UiComponentDataConverterTest {
 
         UiComponentDataTransfer componentDTO8 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("inputs"));
         UiComponentDataTransfer componentDTO81 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithInputs, Collections.singletonList("inputs"));
+        UiComponentDataTransfer componentDTO82 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithOutputs, Collections.singletonList("outputs"));
 
         UiComponentDataTransfer componentDTO9 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("users"));
         UiComponentDataTransfer componentDTO10 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("componentInstances"));
@@ -202,7 +215,7 @@ public class UiComponentDataConverterTest {
     @Test
     public void getUiDataTransferFromServiceByParams_METADATA() {
         UiServiceDataTransfer componentDTO = (UiServiceDataTransfer) uiComponentDataConverter.getUiDataTransferFromServiceByParams(new Service(), Collections.singletonList("metadata"));
-        assertThat(componentDTO.getMetadata().getNamingPolicy()).isEqualTo("");
+        assertThat(componentDTO.getMetadata().getNamingPolicy()).isEmpty();
     }
 
     @Test
@@ -318,7 +331,7 @@ public class UiComponentDataConverterTest {
         UiComponentDataTransfer uiComponentDataTransfer = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resource,
                 Collections.singletonList("substitutionFilter"));
 
-        assertThat(uiComponentDataTransfer.getSubstitutionFilter()).isNull();
+        assertThat(uiComponentDataTransfer.getSubstitutionFilters()).isNull();
     }
 
     @Test
@@ -326,13 +339,51 @@ public class UiComponentDataConverterTest {
         SubstitutionFilterDataDefinition substitutionFilter = new SubstitutionFilterDataDefinition();
         substitutionFilter.setID(SUBSTITUTION_FILTER_UID);
 
+        final ListDataDefinition<SubstitutionFilterPropertyDataDefinition> expectedPropertyFilters = new ListDataDefinition<>();
+        var filter1 = new SubstitutionFilterPropertyDataDefinition();
+        filter1.setName("filter1");
+        var propertyFilter1 = new PropertyFilterConstraintDataDefinition();
+        propertyFilter1.setPropertyName("constraint1");
+        propertyFilter1.setOperator(ConstraintType.EQUAL);
+        propertyFilter1.setValueType(FilterValueType.STATIC);
+        propertyFilter1.setTargetType(PropertyFilterTargetType.PROPERTY);
+        propertyFilter1.setValue("testvalue1");
+        filter1.setConstraints(List.of(propertyFilter1));
+        expectedPropertyFilters.add(filter1);
+
+        var filter2 = new SubstitutionFilterPropertyDataDefinition();
+        filter2.setName("filter2");
+        var propertyFilter2 = new PropertyFilterConstraintDataDefinition();
+        propertyFilter2.setPropertyName("constraint2");
+        propertyFilter2.setOperator(ConstraintType.EQUAL);
+        propertyFilter2.setValueType(FilterValueType.STATIC);
+        propertyFilter2.setTargetType(PropertyFilterTargetType.PROPERTY);
+        propertyFilter2.setValue("testvalue2");
+        filter2.setConstraints(List.of(propertyFilter2));
+        expectedPropertyFilters.add(filter2);
+
+        substitutionFilter.setProperties(expectedPropertyFilters);
+
         Resource resource = new ResourceBuilder().build();
         resource.setSubstitutionFilter(substitutionFilter);
 
         UiComponentDataTransfer uiComponentDataTransfer = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resource,
                 Collections.singletonList("substitutionFilter"));
+        assertThat(uiComponentDataTransfer.getSubstitutionFilters()).isNotNull();
+
+        List<UIConstraint> propertyFilters = uiComponentDataTransfer.getSubstitutionFilters().getProperties();
+        assertFalse(propertyFilters.isEmpty());
+        assertEquals(propertyFilters.size(), substitutionFilter.getProperties().getListToscaDataDefinition().size());
+
+        verifyPropertyFilters(propertyFilters.get(0), "constraint1", "testvalue1", "static", "equal");
+        verifyPropertyFilters(propertyFilters.get(1), "constraint2", "testvalue2", "static", "equal");
+    }
 
-        assertThat(uiComponentDataTransfer.getSubstitutionFilterForTopologyTemplate()).isNotEmpty();
+    private void verifyPropertyFilters(UIConstraint uiConstraint, String propertyName, String value, String sourceType, String operator){
+        assertEquals(propertyName, uiConstraint.getServicePropertyName());
+        assertEquals(value, uiConstraint.getValue());
+        assertEquals(sourceType, uiConstraint.getSourceType());
+        assertEquals(operator, uiConstraint.getConstraintOperator());
     }
 
     private Resource buildResourceWithGroups() {
@@ -348,22 +399,30 @@ public class UiComponentDataConverterTest {
                 .build();
     }
 
-    private Resource buildResourceWithParameter(String field) {
-        ResourceBuilder res =  new ResourceBuilder();
+    private Resource buildResourceWithOutputs() {
+        return new ResourceBuilder()
+                .addOutput(output)
+                .build();
+    }
+
+    private Resource buildResourceWithParameter(final String field) {
+        final ResourceBuilder res =  new ResourceBuilder();
         switch(field){
             case "inputs":
                 res.addInput(input1);
                 break;
+            case "outputs":
+                res.addOutput(output);
+                break;
             case "properties":
                 //res.addProperty(propertyDef);
                 break;
 
 
         }
-
-
         return new ResourceBuilder()
                 .addInput(input1)
+                .addOutput(output)
                 .build();
     }