Refactoring Consolidation Service
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / property / PropertyDeceleratorTestBase.java
1 package org.openecomp.sdc.be.components.property;
2
3 import static org.assertj.core.api.Assertions.assertThat;
4 import static org.openecomp.sdc.common.api.Constants.GET_INPUT;
5
6 import java.util.List;
7 import java.util.Map;
8 import java.util.stream.Collectors;
9
10 import org.junit.Before;
11 import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder;
12 import org.openecomp.sdc.be.dao.utils.MapUtil;
13 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
14 import org.openecomp.sdc.be.model.ComponentInstancePropInput;
15 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
16 import org.openecomp.sdc.be.model.InputDefinition;
17
18 public class PropertyDeceleratorTestBase {
19
20     static final String INNER_PROP1 = "ecomp_generated_naming";
21     static final String INNER_PROP2 = "naming_policy";
22     PropertyDataDefinition prop1, prop2, complexProperty;
23
24     @Before
25     public void setUp() throws Exception {
26         prop1 = new PropertyDataDefinitionBuilder()
27                 .setUniqueId("prop1")
28                 .setType("string")
29                 .setName("prop1")
30                 .setValue("value1")
31                 .build();
32
33         prop2 = new PropertyDataDefinitionBuilder()
34                 .setUniqueId("prop2")
35                 .setType("string")
36                 .setSchemaType("string")
37                 .setName("prop2")
38                 .setValue("[\"a\", \"b\"]")
39                 .build();
40
41         complexProperty = new PropertyDataDefinitionBuilder()
42                 .setUniqueId("prop3")
43                 .setType("org.openecomp.type1")
44                 .setName("prop3")
45                 .setValue("{\"ecomp_generated_naming\":true\",\"naming_policy\":\"abc\"}")
46                 .build();
47
48     }
49
50     List<ComponentInstancePropInput> createInstancePropInputList(List<PropertyDataDefinition> properties) {
51         return properties.stream().map(prop -> new ComponentInstancePropInput(new ComponentInstanceProperty(prop)))
52                 .collect(Collectors.toList());
53     }
54
55     void verifyInputPropertiesList(List<InputDefinition> createdInputs, List<PropertyDataDefinition> capturedUpdatedProperties) {
56         Map<String, InputDefinition> propertyIdToCreatedInput = MapUtil.toMap(createdInputs, InputDefinition::getPropertyId);
57         capturedUpdatedProperties.forEach(updatedProperty -> verifyInputPropertiesList(updatedProperty, propertyIdToCreatedInput.get(updatedProperty.getUniqueId())));
58     }
59
60     String generateGetInputValue(String value) {
61         return String.format("{\"%s\":\"%s\"}", GET_INPUT, value);
62     }
63
64     private void verifyInputPropertiesList(PropertyDataDefinition updatedProperty, InputDefinition input) {
65         assertThat(input.getProperties()).hasSize(1);
66         assertThat(new ComponentInstanceProperty(updatedProperty)).isEqualTo(input.getProperties().get(0));
67     }
68
69 }