a92e298c0a93ddca2d42ae3957674ab9f9056c87
[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.HashSet;
20 import java.util.Set;
21 import org.junit.Assert;
22 import org.junit.Test;
23
24 public class ComputeConsolidationDataTest {
25
26     private static final String SERVICE_TEMPLATE_FILE_NAME_1 = "serviceTemplateFileName1";
27     private static final String SERVICE_TEMPLATE_FILE_NAME_2 = "serviceTemplateFileName2";
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         ComputeConsolidationData consolidationData = new ComputeConsolidationData();
36         consolidationData.addComputeTemplateConsolidationData(SERVICE_TEMPLATE_FILE_NAME_1,
37                 COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
38
39         Set<String> expectedServiceTemplateNames = new HashSet<>();
40         expectedServiceTemplateNames.add(SERVICE_TEMPLATE_FILE_NAME_1);
41         checkComputeConsolidationData(consolidationData, SERVICE_TEMPLATE_FILE_NAME_1, expectedServiceTemplateNames);
42     }
43
44     @Test
45     public void testAddSameConsolidationDataTwice_noNewCreated() {
46         ComputeConsolidationData consolidationData = new ComputeConsolidationData();
47         consolidationData.addComputeTemplateConsolidationData(SERVICE_TEMPLATE_FILE_NAME_1,
48                 COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
49         consolidationData.getFileComputeConsolidationData(SERVICE_TEMPLATE_FILE_NAME_1);
50
51         Set<String> expectedServiceTemplateNames = new HashSet<>();
52         expectedServiceTemplateNames.add(SERVICE_TEMPLATE_FILE_NAME_1);
53         checkComputeConsolidationData(consolidationData, SERVICE_TEMPLATE_FILE_NAME_1, expectedServiceTemplateNames);
54
55         consolidationData.addComputeTemplateConsolidationData(SERVICE_TEMPLATE_FILE_NAME_1,
56                 COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
57         consolidationData.getFileComputeConsolidationData(SERVICE_TEMPLATE_FILE_NAME_1);
58         checkComputeConsolidationData(consolidationData, SERVICE_TEMPLATE_FILE_NAME_1, expectedServiceTemplateNames);
59     }
60
61     @Test
62     public void testAddDiffConsolidationData_SameServiceTemplate_DiffNodeTypes() {
63         ComputeConsolidationData consolidationData = new ComputeConsolidationData();
64
65         consolidationData.addComputeTemplateConsolidationData(SERVICE_TEMPLATE_FILE_NAME_1,
66                 COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
67         Set<String> expectedServiceTemplateNames = new HashSet<>();
68         expectedServiceTemplateNames.add(SERVICE_TEMPLATE_FILE_NAME_1);
69         checkComputeConsolidationData(consolidationData, SERVICE_TEMPLATE_FILE_NAME_1, expectedServiceTemplateNames);
70
71         consolidationData.addComputeTemplateConsolidationData(SERVICE_TEMPLATE_FILE_NAME_1,
72                 COMPUTE_NODE_TYPE_2, COMPUTE_NODE_TEMPLATE_ID_2);
73         checkComputeConsolidationData(consolidationData, SERVICE_TEMPLATE_FILE_NAME_1, expectedServiceTemplateNames);
74     }
75
76     @Test
77     public void testAddDiffConsolidationData_DiffServiceTemplate() {
78         ComputeConsolidationData consolidationData = new ComputeConsolidationData();
79
80         consolidationData.addComputeTemplateConsolidationData(SERVICE_TEMPLATE_FILE_NAME_1,
81                 COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
82         Set<String> expectedServiceTemplateNames =  new HashSet<>();
83         expectedServiceTemplateNames.add(SERVICE_TEMPLATE_FILE_NAME_1);
84         checkComputeConsolidationData(consolidationData, SERVICE_TEMPLATE_FILE_NAME_1, expectedServiceTemplateNames);
85
86         consolidationData.addComputeTemplateConsolidationData(SERVICE_TEMPLATE_FILE_NAME_2,
87                 COMPUTE_NODE_TYPE_2, COMPUTE_NODE_TEMPLATE_ID_2);
88         expectedServiceTemplateNames.add(SERVICE_TEMPLATE_FILE_NAME_2);
89         checkComputeConsolidationData(consolidationData, SERVICE_TEMPLATE_FILE_NAME_2, expectedServiceTemplateNames);
90
91     }
92
93     private void checkComputeConsolidationData(ComputeConsolidationData consolidationData,
94             String serviceTemplateFileName, Set<String> expectedServiceTemplateNames) {
95
96         FileComputeConsolidationData fileComputeConsolidationData = consolidationData
97                 .getFileComputeConsolidationData(serviceTemplateFileName);
98         Assert.assertNotNull(fileComputeConsolidationData);
99         checkGetAllServiceTemplateFileNames(consolidationData, expectedServiceTemplateNames);
100     }
101
102     private void checkGetAllServiceTemplateFileNames(ComputeConsolidationData consolidationData,
103                 Set<String> expectedServiceTemplateNames) {
104         Set<String> allServiceTemplateFileNames = consolidationData.getAllServiceTemplateFileNames();
105         Assert.assertNotNull(allServiceTemplateFileNames);
106         Assert.assertEquals(allServiceTemplateFileNames.size(), expectedServiceTemplateNames.size());
107         Assert.assertTrue(allServiceTemplateFileNames.containsAll(expectedServiceTemplateNames));
108     }
109
110
111 }