re base code
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / merge / input / InputsValuesMergingBusinessLogicTest.java
1 package org.openecomp.sdc.be.components.merge.input;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNull;
5
6 import java.util.Arrays;
7 import java.util.Collections;
8 import java.util.List;
9 import java.util.Map;
10
11 import org.junit.Before;
12 import org.junit.Test;
13 import org.openecomp.sdc.be.dao.utils.MapUtil;
14 import org.openecomp.sdc.be.model.InputDefinition;
15 public class InputsValuesMergingBusinessLogicTest {
16
17     private static final String INPUT_DEFUALT_TYPE = "string";
18     private static final String INPUT1_ID = "input1";
19     private static final String INPUT2_ID = "input2";
20     private static final String INPUT3_ID = "input3";
21     private static final String INPUT4_ID = "input4";
22     private InputsValuesMergingBusinessLogic testInstance;
23
24     @Before
25     public void setUp() throws Exception {
26         testInstance = new InputsValuesMergingBusinessLogic();
27     }
28
29     @Test
30     public void testMergeInputs_inputsOfDifferentType_dontCopyOldValue() {
31         InputDefinition oldInput = createUserDefinedInputDefinition(INPUT1_ID, "oldVal1");
32
33         InputDefinition newInput = createInputDefinition(INPUT1_ID, null);
34         newInput.setType("int");
35
36
37         Map<String, InputDefinition> updatedInputs = Collections.singletonMap(newInput.getName(), newInput);
38         Map<String, InputDefinition> oldInputs = Collections.singletonMap(oldInput.getName(), oldInput);
39         testInstance.mergeComponentInputs(oldInputs, updatedInputs);
40
41         assertNull(updatedInputs.get(INPUT1_ID).getDefaultValue());
42     }
43
44     @Test
45     public void testMergeInputs_newInputsHaveNoValue_copyOldValues() {
46         InputDefinition oldInputWithCsarDefaultValue = createInputDefinition(INPUT1_ID, "oldVal1");
47         InputDefinition oldInputWithUserDefinedValue = createUserDefinedInputDefinition(INPUT2_ID, "oldVal2");
48         InputDefinition oldInputNotExistOnNew = createUserDefinedInputDefinition(INPUT3_ID, null);
49
50         InputDefinition newInput1 = createInputDefinition(INPUT1_ID, "");
51         InputDefinition newInput2 = createUserDefinedInputDefinition(INPUT2_ID, null);
52
53         Map<String, InputDefinition> updatedInputs = mapInputsByName(Arrays.asList(newInput1, newInput2));
54         Map<String, InputDefinition> oldInputs = mapInputsByName(Arrays.asList(oldInputWithCsarDefaultValue, oldInputWithUserDefinedValue, oldInputNotExistOnNew));
55         testInstance.mergeComponentInputs(oldInputs, updatedInputs);
56
57         assertEquals(oldInputWithCsarDefaultValue.getDefaultValue(), updatedInputs.get(INPUT1_ID).getDefaultValue());
58         assertEquals(oldInputWithUserDefinedValue.getDefaultValue(), updatedInputs.get(INPUT2_ID).getDefaultValue());
59         assertNull(updatedInputs.get(INPUT3_ID));
60     }
61
62     @Test
63     public void testMergeInputs_newInputsHaveValue_dontOverrideNewValue() {
64         InputDefinition oldInputWithCsarDefaultValue = createInputDefinition(INPUT1_ID, "oldVal1");
65         InputDefinition oldInputWithUserDefinedValue = createUserDefinedInputDefinition(INPUT2_ID, "oldVal2");
66         InputDefinition oldInputWithNoValue = createUserDefinedInputDefinition(INPUT3_ID, null);
67
68         InputDefinition newInput1 = createInputDefinition(INPUT1_ID, "newVal1");
69         InputDefinition newInput2 = createUserDefinedInputDefinition(INPUT2_ID, "newVal2");
70         InputDefinition newInput3 = createUserDefinedInputDefinition(INPUT3_ID, "newVal3");
71         InputDefinition newInput4 = createUserDefinedInputDefinition(INPUT4_ID, "newVal4");
72
73         Map<String, InputDefinition> updatedInputs = mapInputsByName(Arrays.asList(newInput1, newInput2, newInput3, newInput4));
74         Map<String, InputDefinition> oldInputs = mapInputsByName(Arrays.asList(oldInputWithCsarDefaultValue, oldInputWithUserDefinedValue, oldInputWithNoValue));
75         testInstance.mergeComponentInputs(oldInputs, updatedInputs);
76
77         assertEquals(updatedInputs.get(INPUT1_ID).getDefaultValue(), newInput1.getDefaultValue());
78         assertEquals(updatedInputs.get(INPUT2_ID).getDefaultValue(), newInput2.getDefaultValue());
79         assertEquals(updatedInputs.get(INPUT3_ID).getDefaultValue(), newInput3.getDefaultValue());
80         assertEquals(updatedInputs.get(INPUT4_ID).getDefaultValue(), newInput4.getDefaultValue());
81     }
82
83
84     private Map<String, InputDefinition> mapInputsByName(List<InputDefinition> inputs) {
85         return MapUtil.toMap(inputs, InputDefinition::getName);
86     }
87
88     private InputDefinition createInputDefinition(String name, String value) {
89         InputDefinition inputDef = new InputDefinition();
90         inputDef.setName(name);
91         inputDef.setDefaultValue(value);
92         inputDef.setType(INPUT_DEFUALT_TYPE);
93         return inputDef;
94     }
95
96     private InputDefinition createUserDefinedInputDefinition(String name, String value) {
97         InputDefinition inputDef = createInputDefinition(name, value);
98         inputDef.setOwnerId("owner");
99         return inputDef;
100     }
101 }