/*
* Copyright © 2016-2019 European Support Limited
+ * Modifications © 2020 AT&T
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.openecomp.sdc.be.datamodel;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.MapUtils;
+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;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
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;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.hibernate.validator.internal.util.CollectionHelper.asSet;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
public class UiComponentDataConverterTest {
private PolicyDefinition policy1, policy2;
private GroupDefinition group1, group2;
private InputDefinition input1;
+ private OutputDefinition output;
private PropertyDefinition propertyDef;
private InterfaceDefinition interfaceDef;
private static final String PROPERTY_UID = "propertyUid";
private static final String NODE_FILTER_UID = "nodeFilterUid";
+ private static final String SUBSTITUTION_FILTER_UID = "substitutionFilterUid";
private static final String COMPONENT_UID = "componentUid";
@BeforeClass
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"));
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"));
@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
UiComponentDataTransfer uiComponentDataTransfer = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resource,
Collections.singletonList("policies"));
- assertThat(CollectionUtils.isNotEmpty(uiComponentDataTransfer.getPolicies()));
+ assertThat(uiComponentDataTransfer.getPolicies()).isNotEmpty();
}
@Test
UiComponentDataTransfer uiComponentDataTransfer = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resource,
Collections.singletonList("nodeFilter"));
- assertThat(MapUtils.isEmpty(uiComponentDataTransfer.getNodeFilter()));
+ assertThat(uiComponentDataTransfer.getNodeFilter()).isNull();
}
@Test
UiComponentDataTransfer uiComponentDataTransfer = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resource,
Collections.singletonList("nodeFilter"));
- assertThat(MapUtils.isNotEmpty(uiComponentDataTransfer.getNodeFilter()));
+ assertThat(uiComponentDataTransfer.getNodeFilterforNode()).isNotEmpty();
+ }
+
+ @Test
+ public void testGetSubstitutionFilterEmptyList() {
+ Resource resource = new ResourceBuilder().build();
+ UiComponentDataTransfer uiComponentDataTransfer = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resource,
+ Collections.singletonList("substitutionFilter"));
+
+ assertThat(uiComponentDataTransfer.getSubstitutionFilters()).isNull();
+ }
+
+ @Test
+ public void testGetSubstitutionFilter() {
+ 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");
+ }
+
+ 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() {
.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();
}