eab3bd25b1d6667b3e17a31b68cc5ac5bdb48c76
[sdc.git] /
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
18
19 import java.util.Collection;
20 import java.util.HashSet;
21 import java.util.Set;
22
23 import org.junit.Assert;
24 import org.junit.Test;
25
26 public class FileComputeConsolidationDataTest {
27
28     private static final String COMPUTE_NODE_TEMPLATE_ID_1 = "computeNodeTemplateId1";
29     private static final String COMPUTE_NODE_TEMPLATE_ID_2 = "computeNodeTemplateId2";
30     private static final String COMPUTE_NODE_TYPE_1 = "computeNodeType1";
31     private static final String COMPUTE_NODE_TYPE_2 = "computeNodeType2";
32
33     @Test
34     public void testAddComputeTemplateConsolidationData() {
35         FileComputeConsolidationData consolidationData = new FileComputeConsolidationData();
36         consolidationData.addComputeTemplateConsolidationData(COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
37
38         Set<String> expectedComputeNodeTypes = new HashSet<>();
39         expectedComputeNodeTypes.add(COMPUTE_NODE_TYPE_1);
40         checkComputeConsolidationData(consolidationData, COMPUTE_NODE_TYPE_1, expectedComputeNodeTypes);
41     }
42
43     @Test
44     public void testAddSameConsolidationDataTwice_noNewCreated() {
45         FileComputeConsolidationData consolidationData = new FileComputeConsolidationData();
46         consolidationData.addComputeTemplateConsolidationData(COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
47         TypeComputeConsolidationData firstTypeComputeConsolidationData =
48                 consolidationData.getTypeComputeConsolidationData(COMPUTE_NODE_TYPE_1);
49
50         consolidationData.addComputeTemplateConsolidationData(COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
51         TypeComputeConsolidationData secondTypeComputeConsolidationData =
52                 consolidationData.getTypeComputeConsolidationData(COMPUTE_NODE_TYPE_1);
53         Assert.assertEquals(firstTypeComputeConsolidationData, secondTypeComputeConsolidationData);
54     }
55
56     @Test
57     public void testAddDiffConsolidationData_DiffNodeType() {
58         FileComputeConsolidationData consolidationData = new FileComputeConsolidationData();
59
60         consolidationData.addComputeTemplateConsolidationData(COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
61         Set<String> expectedComputeNodeTypes =  new HashSet<>();
62         expectedComputeNodeTypes.add(COMPUTE_NODE_TYPE_1);
63         checkComputeConsolidationData(consolidationData, COMPUTE_NODE_TYPE_1, expectedComputeNodeTypes);
64
65         consolidationData.addComputeTemplateConsolidationData(COMPUTE_NODE_TYPE_2, COMPUTE_NODE_TEMPLATE_ID_2);
66         expectedComputeNodeTypes.add(COMPUTE_NODE_TYPE_2);
67         checkComputeConsolidationData(consolidationData, COMPUTE_NODE_TYPE_2, expectedComputeNodeTypes);
68     }
69
70     @Test
71     public void testAddDiffConsolidationData_SameNodeType_MultiNodeTemplateId() {
72         FileComputeConsolidationData consolidationData = new FileComputeConsolidationData();
73
74         consolidationData.addComputeTemplateConsolidationData(COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
75         Set<String> expectedComputeNodeTypes = new HashSet<>();
76         expectedComputeNodeTypes.add(COMPUTE_NODE_TYPE_1);
77         checkComputeConsolidationData(consolidationData, COMPUTE_NODE_TYPE_1, expectedComputeNodeTypes);
78
79         consolidationData.addComputeTemplateConsolidationData(COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_2);
80         checkComputeConsolidationData(consolidationData, COMPUTE_NODE_TYPE_1, expectedComputeNodeTypes);
81     }
82
83     private void checkComputeConsolidationData(FileComputeConsolidationData fileComputeConsolidationData,
84             String computeNodeType, Set<String> expectedComputeNodeTypes) {
85         TypeComputeConsolidationData typeComputeConsolidationData =
86                 fileComputeConsolidationData.getTypeComputeConsolidationData(computeNodeType);
87         Assert.assertNotNull(typeComputeConsolidationData);
88         checkGetAllComputeTypes(fileComputeConsolidationData, expectedComputeNodeTypes);
89     }
90
91     private void checkGetAllComputeTypes(FileComputeConsolidationData fileComputeConsolidationData,
92                                                        Set<String> expectedComputeNodeTypes) {
93         Collection<String> allComputeTypes = fileComputeConsolidationData.getAllComputeTypes();
94         Assert.assertNotNull(allComputeTypes);
95         Assert.assertEquals(allComputeTypes.size(), expectedComputeNodeTypes.size());
96         Assert.assertTrue(allComputeTypes.containsAll(expectedComputeNodeTypes));
97     }
98 }