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