2 * Copyright © 2016-2018 European Support Limited
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
19 import java.util.HashMap;
22 import org.junit.Before;
23 import org.junit.Test;
24 import org.mockito.Mock;
25 import org.mockito.Mockito;
26 import org.mockito.MockitoAnnotations;
28 import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
29 import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
30 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
31 import org.onap.sdc.tosca.datatypes.model.TopologyTemplate;
32 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
33 import org.openecomp.sdc.tosca.services.ToscaConstants;
34 import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
37 public class ComputeConsolidationDataHandlerTest {
39 private static final String COMPUTE_NODE_TEMPLATE_ID_1 = "computeNodeTemplateId";
40 private static final String COMPUTE_NODE_TEMPLATE_ID_2 = "computeNodeTemplateId2";
41 private static final String COMPUTE_NODE_TYPE_1 = "computeNodeType1";
43 private static final String PORT_NODE_TYPE_1 = "portType1";
44 private static final String PORT_NODE_TEMPLATE_ID_1 = "portNodeTemplateId1";
46 private static final String GROUP_ID = "groupId";
47 private static final String REQUIREMENT_ID = "requirementId";
48 private static final String SERVICE_FILE_NAME_PREFIX = "Main";
49 private static final String SERVICE_FILE_NAME = SERVICE_FILE_NAME_PREFIX + "ServiceTemplate.yaml";
50 private static final String MAIN_SERVICE_TEMPLATE = "MainServiceTemplate.yaml";
54 MockitoAnnotations.openMocks(this);
55 consolidationDataHandler = new ComputeConsolidationDataHandler(computeConsolidationData);
59 private static ComputeConsolidationData computeConsolidationData;
61 private static TranslateTo translateTo;
63 private static ServiceTemplate serviceTemplate;
65 private static ComputeTemplateConsolidationData consolidationData;
67 private static HeatOrchestrationTemplate heatOrchestrationTemplate;
69 private static ComputeConsolidationDataHandler consolidationDataHandler;
70 private static final RequirementAssignment requirementAssignment = new RequirementAssignment();
73 public void testAddNodesConnectedOut() {
74 mockEntities(COMPUTE_NODE_TEMPLATE_ID_1);
75 consolidationDataHandler
76 .addNodesConnectedOut(translateTo, COMPUTE_NODE_TEMPLATE_ID_1, REQUIREMENT_ID, requirementAssignment);
77 Mockito.verify(computeConsolidationData)
78 .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
79 Mockito.verify(consolidationData)
80 .addNodesConnectedOut(COMPUTE_NODE_TEMPLATE_ID_1, REQUIREMENT_ID, requirementAssignment);
84 public void testAddNodesConnectedOut_consolidationDataNotExist() {
85 mockEntities_NullConsolidationData(COMPUTE_NODE_TEMPLATE_ID_1);
86 consolidationDataHandler
87 .addNodesConnectedOut(translateTo, COMPUTE_NODE_TEMPLATE_ID_1, REQUIREMENT_ID, requirementAssignment);
88 Mockito.verify(computeConsolidationData)
89 .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
90 Mockito.verify(consolidationData, Mockito.times(0))
91 .addNodesConnectedOut(Mockito.any(), Mockito.any(), Mockito.any());
95 public void testAddNodesConnectedIn() {
96 String sourceNodeTemplateId = COMPUTE_NODE_TEMPLATE_ID_1;
97 String dependentNodeTemplateId = COMPUTE_NODE_TEMPLATE_ID_2;
98 mockEntities(dependentNodeTemplateId);
99 consolidationDataHandler
100 .addNodesConnectedIn(translateTo, sourceNodeTemplateId, dependentNodeTemplateId, "targetResourceId",
101 REQUIREMENT_ID, requirementAssignment);
102 Mockito.verify(computeConsolidationData)
103 .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, dependentNodeTemplateId);
104 Mockito.verify(consolidationData)
105 .addNodesConnectedIn(sourceNodeTemplateId, REQUIREMENT_ID, requirementAssignment);
109 public void testAddNodesConnectedIn_consolidationDataNotExist() {
110 String dependentNodeTemplateId = COMPUTE_NODE_TEMPLATE_ID_2;
111 mockEntities_NullConsolidationData(dependentNodeTemplateId);
112 consolidationDataHandler.addNodesConnectedIn(translateTo, COMPUTE_NODE_TEMPLATE_ID_1, dependentNodeTemplateId,
113 "targetResourceId", REQUIREMENT_ID, requirementAssignment);
114 Mockito.verify(computeConsolidationData)
115 .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, dependentNodeTemplateId);
116 Mockito.verify(consolidationData, Mockito.times(0))
117 .addNodesConnectedIn(Mockito.any(), Mockito.any(), Mockito.any());
121 public void testRemoveParamNameFromAttrFuncList() {
122 mockEntities(COMPUTE_NODE_TEMPLATE_ID_2);
123 consolidationDataHandler
124 .removeParamNameFromAttrFuncList(serviceTemplate, heatOrchestrationTemplate, "paramName",
125 COMPUTE_NODE_TEMPLATE_ID_1, COMPUTE_NODE_TEMPLATE_ID_2);
126 Mockito.verify(computeConsolidationData)
127 .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_2);
128 Mockito.verify(consolidationData).removeParamNameFromAttrFuncList("paramName");
132 public void testRemoveParamNameFromAttrFuncList_consolidationDataNotExist() {
133 mockEntities_NullConsolidationData(COMPUTE_NODE_TEMPLATE_ID_2);
134 consolidationDataHandler
135 .removeParamNameFromAttrFuncList(serviceTemplate, heatOrchestrationTemplate, "paramName",
136 COMPUTE_NODE_TEMPLATE_ID_1, COMPUTE_NODE_TEMPLATE_ID_2);
137 Mockito.verify(computeConsolidationData)
138 .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_2);
139 Mockito.verify(consolidationData, Mockito.times(0)).removeParamNameFromAttrFuncList(Mockito.any());
143 public void testAddConsolidationData() {
144 consolidationDataHandler
145 .addConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
146 Mockito.verify(computeConsolidationData)
147 .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
151 public void testAddPortToConsolidationData() {
152 mockEntities(COMPUTE_NODE_TEMPLATE_ID_1);
153 consolidationDataHandler
154 .addPortToConsolidationData(translateTo, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1,
155 PORT_NODE_TYPE_1, PORT_NODE_TEMPLATE_ID_1);
156 Mockito.verify(computeConsolidationData)
157 .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
158 Mockito.verify(consolidationData).addPort(PORT_NODE_TYPE_1, PORT_NODE_TEMPLATE_ID_1);
162 public void testAddVolumeToConsolidationData() {
163 mockEntities(COMPUTE_NODE_TEMPLATE_ID_1);
164 consolidationDataHandler
165 .addVolumeToConsolidationData(translateTo, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1,
166 REQUIREMENT_ID, requirementAssignment);
167 Mockito.verify(computeConsolidationData)
168 .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
169 Mockito.verify(consolidationData).addVolume(REQUIREMENT_ID, requirementAssignment);
174 public void testAddGroupIdToConsolidationData() {
175 mockEntities(COMPUTE_NODE_TEMPLATE_ID_1);
176 consolidationDataHandler
177 .addGroupIdToConsolidationData(translateTo, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1, GROUP_ID);
178 Mockito.verify(computeConsolidationData)
179 .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1);
180 Mockito.verify(consolidationData).addGroupId(GROUP_ID);
183 private void mockEntities(String nodeTemplateId) {
184 mockServiceTemplate(nodeTemplateId);
185 mockTranslateTo(nodeTemplateId);
186 mockComputeConsolidationData();
189 private void mockEntities_NullConsolidationData(String nodeTemplateId) {
190 mockServiceTemplate(nodeTemplateId);
191 mockTranslateTo(nodeTemplateId);
192 mockNullConsolidationData();
195 private void mockServiceTemplate(String nodeTemplateId) {
196 TopologyTemplate topologyTemplate = createTopologyTemplate(nodeTemplateId);
197 Mockito.when(serviceTemplate.getTopology_template()).thenReturn(topologyTemplate);
199 Map<String, String> metadata = new HashMap<>();
200 metadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, SERVICE_FILE_NAME_PREFIX);
201 Mockito.when(serviceTemplate.getMetadata()).thenReturn(metadata);
204 private void mockTranslateTo(String nodeTemplateId) {
205 Mockito.when(translateTo.getTranslatedId()).thenReturn(nodeTemplateId);
206 Mockito.when(translateTo.getServiceTemplate()).thenReturn(serviceTemplate);
209 private void mockComputeConsolidationData() {
210 Mockito.when(computeConsolidationData
211 .addComputeTemplateConsolidationData(Mockito.anyString(), Mockito.anyString(),
212 Mockito.anyString())).thenReturn(consolidationData);
215 private void mockNullConsolidationData() {
216 Mockito.when(computeConsolidationData
217 .addComputeTemplateConsolidationData(Mockito.anyString(), Mockito.anyString(),
218 Mockito.anyString())).thenReturn(null);
221 private TopologyTemplate createTopologyTemplate(String nodeTemplateId) {
222 TopologyTemplate topologyTemplate = new TopologyTemplate();
223 Map<String, NodeTemplate> nodeTemplates = new HashMap<>();
224 NodeTemplate nodeTemplate = new NodeTemplate();
225 nodeTemplate.setType(COMPUTE_NODE_TYPE_1);
226 nodeTemplates.put(nodeTemplateId, nodeTemplate);
227 topologyTemplate.setNode_templates(nodeTemplates);
228 return topologyTemplate;
232 public void isNumberOfComputeTypesLegalPositive() {
233 ComputeConsolidationDataHandler computeConsolidationDataHandler =
234 new ComputeConsolidationDataHandler(computeConsolidationData);
236 computeConsolidationDataHandler.isNumberOfComputeTypesLegal(MAIN_SERVICE_TEMPLATE);
238 Mockito.verify(computeConsolidationData).isNumberOfComputeTypesLegal(MAIN_SERVICE_TEMPLATE);