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.services.heattotosca;
19 import static org.junit.Assert.assertEquals;
20 import static org.mockito.Matchers.anyObject;
21 import static org.mockito.Matchers.anyString;
23 import com.google.common.collect.ArrayListMultimap;
24 import com.google.common.collect.Multimap;
26 import org.apache.commons.lang3.tuple.ImmutablePair;
27 import org.apache.commons.lang3.tuple.Pair;
28 import org.junit.Before;
29 import org.junit.Test;
30 import org.mockito.InjectMocks;
31 import org.mockito.Mockito;
32 import org.mockito.MockitoAnnotations;
33 import org.mockito.Spy;
34 import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
35 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
36 import org.openecomp.sdc.tosca.services.DataModelUtil;
37 import org.onap.sdc.tosca.services.ToscaExtensionYamlUtil;
38 import org.onap.sdc.tosca.services.YamlUtil;
39 import org.openecomp.sdc.translator.TestUtils;
40 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
41 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
42 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionEntity;
43 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedSubstitutionData;
44 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
45 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
46 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
47 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.EntityConsolidationData;
48 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
49 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedTemplateConsolidationData;
50 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
51 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
52 import org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition.UnifiedCompositionSingleSubstitution;
54 import java.io.IOException;
56 import java.util.ArrayList;
57 import java.util.Arrays;
58 import java.util.Collections;
59 import java.util.HashMap;
60 import java.util.LinkedList;
61 import java.util.List;
63 import java.util.Objects;
64 import java.util.Optional;
66 public class UnifiedCompositionServiceTest {
67 private static final String BASE_DIRECTORY = "/mock/services/heattotosca/unifiedComposition/";
70 UnifiedCompositionService unifiedCompositionService;
72 TranslationContext context;
74 private static final String IN_PREFIX = "/in";
75 private static final String OUT_PREFIX = "/out";
76 private static final String FSB1_template = "FSB1_template";
77 private static final String FSB2_template = "FSB2_template";
78 private static final String FSB1_INTERNAL = "FSB1_Internal";
79 private static final String FSB2_INTERNAL = "FSB2_Internal";
80 private static final String FSB1_INTERNAL_1 = "FSB1_Internal_1";
81 private static final String FSB1_INTERNAL_2 = "FSB1_Internal_2";
82 private static final String FSB2_INTERNAL_1 = "FSB2_Internal_1";
83 private static final String FSB2_INTERNAL_2 = "FSB2_Internal_2";
85 //New ports according to naming convention
86 //Ports with same port types
87 private static final String FSB1_INTERNAL_PORT_TYPE_0 = "FSB1_Internal_port_0";
88 private static final String FSB1_0_INTERNAL_PORT_0 = "FSB1_0_Internal_port_0";
89 private static final String FSB1_1_INTERNAL_PORT_0 = "FSB1_1_Internal_port_0";
91 //For compute type FSB
92 private static final String FSB_INTERNAL_PORT_TYPE_0 = "FSB_Internal_port_0";
93 private static final String FSB_INTERNAL_PORT_TYPE_1 = "FSB_Internal_port_1";
94 private static final String FSB_2_INTERNAL_PORT_0 = "FSB_2_Internal_port_0";
95 private static final String FSB_2_INTERNAL_PORT_1 = "FSB_2_Internal_port_1";
96 private static final String FSB_1_INTERNAL_PORT_0 = "FSB_1_Internal_port_0";
97 private static final String FSB_1_INTERNAL_PORT_1 = "FSB_1_Internal_port_1";
99 private static final String PORT = "port";
100 private static final String PORT_1 = "port_1";
101 private static final String PORT_2 = "port_2";
102 private static final String FSB1_OAM = "FSB1_OAM";
103 private static final String ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1 = "org.openecomp.resource.abstract.nodes.FSB1";
104 private static final String ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB = "org.openecomp.resource.vfc.nodes.heat.FSB";
105 private static final String DEVICE_OWNER = "device_owner";
106 private static final String COMPLEX_OUTPUT1 = "complexOutput1";
107 private static final String COMPLEX_OUTPUT2 = "complexOutput2";
108 private static final String COMPLEX_OUTPUT3 = "complexOutput3";
109 private static final String USER_DATA_FORMAT = "user_data_format";
110 private static final String TENANT_ID = "tenant_id";
111 private static final String SIMPLE_OUTPUT1 = "simpleOutput1";
112 private static final String SIMPLE_OUTPUT2 = "simpleOutput2";
113 private static final String ADDRESSES = "addresses";
114 private static final String CMAUI_VOLUME1 = "cmaui_volume1";
115 private static final String CMAUI_VOLUME2 = "cmaui_volume2";
116 private static final String CMAUI_VOLUME3 = "cmaui_volume3";
117 private static final String ACCESS_IPv4 = "accessIPv4";
118 private static final String ACCESS_IPv6 = "accessIPv6";
119 private static final String FSB1 = "FSB1";
120 private static final String MYATTR = "myAttr";
121 private static final String VOLUME_TYPE = "volume_type";
122 private static final String SIZE = "size";
123 private static final String NETWORK_ID = "network_id";
124 private static final String JSA_NET1 = "jsa_net1";
125 private static final String STATUS = "status";
126 private static final String AVAILABILITY_ZONE = "availability_zone";
127 private static final String DEPENDENCY = "dependency";
129 Map<String, ServiceTemplate> inputServiceTemplates;
130 Map<String, ServiceTemplate> expectedOutserviceTemplates;
132 private static final String MAIN_SERVICE_TEMPLATE_YAML = "MainServiceTemplate.yaml";
133 private static final String GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML =
134 "GlobalSubstitutionTypesServiceTemplate.yaml";
137 public void setUp() {
138 MockitoAnnotations.openMocks(this);
143 public void createUnifiedComposition() throws Exception {
148 public void createSubstitutionStNoConsolidationData() throws Exception {
149 String path = BASE_DIRECTORY + "creSubstitutionServiceTemplate/NoOutParamDuplicatePortType";
150 loadInputAndOutputData(path);
151 ServiceTemplate expectedServiceTemplate =
152 TestUtils.loadServiceTemplate(BASE_DIRECTORY +
153 "creSubstitutionServiceTemplate/NoOutParamDuplicatePortType" + OUT_PREFIX);
155 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
156 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
157 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
158 unifiedCompositionDataList,
159 context, "org.openecomp.resource.vfc.nodes.heat.FSB1", null);
160 assertEquals(false, substitutionServiceTemplate.isPresent());
164 public void createSubstitutionStNoOutputParamAndDuplicatePortType() throws Exception {
165 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
166 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL_PORT_TYPE_0, FSB1_0_INTERNAL_PORT_0));
167 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL_PORT_TYPE_0, FSB1_1_INTERNAL_PORT_0));
168 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL_1, FSB1_INTERNAL_1));
169 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
171 loadInputAndOutputData(BASE_DIRECTORY + "creSubstitutionServiceTemplate/NoOutParamDuplicatePortType");
172 UnifiedCompositionData unifiedCompositionData =
173 createCompositionData(FSB1_template, portTypeToIdList);
174 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
175 unifiedCompositionDataList.add(unifiedCompositionData);
177 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
178 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
179 unifiedCompositionDataList,
180 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
181 assertEquals(true, substitutionServiceTemplate.isPresent());
182 substitutionServiceTemplate
184 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
185 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
189 public void createSubstitutionStWithOutputParamNoConsolidation() throws Exception {
190 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
191 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL_1, FSB1_INTERNAL_1));
192 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL_2, FSB2_INTERNAL_2));
193 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
195 loadInputAndOutputData(BASE_DIRECTORY + "creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation");
196 UnifiedCompositionData unifiedCompositionData =
197 createCompositionData(FSB1_template, portTypeToIdList);
198 addGetAttrForCompute(unifiedCompositionData);
199 addGetAttrForPort(unifiedCompositionData);
200 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
201 unifiedCompositionDataList.add(unifiedCompositionData);
203 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
204 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
205 unifiedCompositionDataList,
206 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
207 assertEquals(true, substitutionServiceTemplate.isPresent());
208 substitutionServiceTemplate
210 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
211 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
215 public void createSubstitutionStWithOutputParamWithConsolidation() throws Exception {
216 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
217 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
218 portTypeToIdList1.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_1_INTERNAL_PORT_1));
219 portTypeToIdList1.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_1_INTERNAL_PORT_0));
221 loadInputAndOutputData(BASE_DIRECTORY + "creSubstitutionServiceTemplate/WithOutputParameters/consolidation");
222 UnifiedCompositionData unifiedCompositionData1 =
223 createCompositionData(FSB1_template, portTypeToIdList1);
224 addGetAttrForCompute(unifiedCompositionData1);
225 addGetAttrForPort(unifiedCompositionData1);
226 unifiedCompositionDataList.add(unifiedCompositionData1);
228 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
229 portTypeToIdList2.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_2_INTERNAL_PORT_1));
230 portTypeToIdList2.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_2_INTERNAL_PORT_0));
232 UnifiedCompositionData unifiedCompositionData2 =
233 createCompositionData(FSB2_template, portTypeToIdList2);
234 addGetAttrForCompute2(unifiedCompositionData2);
235 addGetAttrForPort2(unifiedCompositionData2);
236 unifiedCompositionDataList.add(unifiedCompositionData2);
238 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
239 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
240 unifiedCompositionDataList,
241 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
242 assertEquals(true, substitutionServiceTemplate.isPresent());
243 substitutionServiceTemplate
245 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
246 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
250 public void createSubstitutionStNoPorts() throws Exception {
251 loadInputAndOutputData(BASE_DIRECTORY + "creSubstitutionServiceTemplate/NoPorts");
253 UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
254 unifiedCompositionData.setComputeTemplateConsolidationData(
255 TestUtils.createComputeTemplateConsolidationData(FSB1_template, null, null));
256 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
257 unifiedCompositionDataList.add(unifiedCompositionData);
259 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
260 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
261 unifiedCompositionDataList,
262 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
263 assertEquals(true, substitutionServiceTemplate.isPresent());
264 substitutionServiceTemplate
266 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
267 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
272 public void createSubstitutionStWithIndex() throws Exception {
273 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
274 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_1_INTERNAL_PORT_0));
275 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_1_INTERNAL_PORT_1));
276 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
278 loadInputAndOutputData(BASE_DIRECTORY + "creSubstitutionServiceTemplate/WithIndex");
279 UnifiedCompositionData unifiedCompositionData =
280 createCompositionData(FSB1_template, portTypeToIdList);
281 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
282 unifiedCompositionDataList.add(unifiedCompositionData);
284 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
285 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
286 unifiedCompositionDataList,
287 context,ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, 2);
288 assertEquals(true, substitutionServiceTemplate.isPresent());
289 substitutionServiceTemplate
291 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
292 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
297 public void createAbstractSubstituteOneComputeMultiplePortsDifferentTypesTest() throws Exception {
298 loadInputAndOutputData(BASE_DIRECTORY + "createAbstractSubstitute/oneComputeMultiplePortsDiffType");
300 UnifiedCompositionData data = createComputeUnifiedCompositionData(FSB1_template);
301 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
302 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_1_INTERNAL_PORT_1));
303 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_2_INTERNAL_PORT_0));
304 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
305 addPortDataToCompositionData(portTypeToIdList, data);
307 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
308 unifiedCompositionDataList.add(data);
309 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
310 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
311 unifiedCompositionDataList,
312 context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
313 assertEquals(true, substitutionServiceTemplate.isPresent());
314 if (substitutionServiceTemplate.isPresent()) {
315 String substitutionNodeTypeId =
316 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
317 unifiedCompositionDataList.get(0), null, context);
318 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
319 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
320 unifiedCompositionDataList, substitutionNodeTypeId,
322 validateAbstractSubstitute();
328 public void createAbstractSubstituteOneComputeMultiplePortsSameTypesTest() throws Exception {
329 loadInputAndOutputData(BASE_DIRECTORY + "createAbstractSubstitute/oneComputeMultiplePortsSameType");
331 UnifiedCompositionData data = createComputeUnifiedCompositionData(FSB1_template);
332 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
333 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL_1, FSB1_INTERNAL_1));
334 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL_2, FSB1_INTERNAL_2));
335 addPortDataToCompositionData(portTypeToIdList, data);
337 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
338 unifiedCompositionDataList.add(data);
339 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
340 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
341 unifiedCompositionDataList
342 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
344 assertEquals(true, substitutionServiceTemplate.isPresent());
345 if (substitutionServiceTemplate.isPresent()) {
346 String substitutionNodeTypeId =
347 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
348 unifiedCompositionDataList.get(0), null, context);
349 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
350 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
351 unifiedCompositionDataList, substitutionNodeTypeId,
353 validateAbstractSubstitute();
359 public void createAbstractSubstituteTwoComputesMultiplePorts() throws Exception {
360 loadInputAndOutputData(BASE_DIRECTORY + "createAbstractSubstitute/twoComputesMultiplePorts");
361 List<UnifiedCompositionData> unifiedCompositionDataList =
362 createAbstractSubstituteCompositionDataComputeAndPort();
363 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
364 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
365 unifiedCompositionDataList
366 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
367 assertEquals(true, substitutionServiceTemplate.isPresent());
368 if (substitutionServiceTemplate.isPresent()) {
369 String substitutionNodeTypeId =
370 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
371 unifiedCompositionDataList.get(0), null, context);
372 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
373 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
374 unifiedCompositionDataList, substitutionNodeTypeId,
376 validateAbstractSubstitute();
382 public void updNodesConnectedOutWithConsolidationTest() throws Exception {
383 loadInputAndOutputData(BASE_DIRECTORY + "updNodesConnectedOut/consolidation");
384 List<UnifiedCompositionData> unifiedCompositionDataList =
385 createAbstractSubstituteCompositionDataComputeAndPort();
386 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
387 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
388 unifiedCompositionDataList
389 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
390 assertEquals(true, substitutionServiceTemplate.isPresent());
391 if (substitutionServiceTemplate.isPresent()) {
392 String substitutionNodeTypeId =
393 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
394 unifiedCompositionDataList.get(0), null, context);
395 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
396 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
397 unifiedCompositionDataList, substitutionNodeTypeId,
400 unifiedCompositionService
401 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
402 unifiedCompositionDataList, context);
403 validateAbstractSubstitute();
407 private void validateAbstractSubstitute() {
408 YamlUtil yamlUtil = new YamlUtil();
409 assertEquals(yamlUtil.objectToYaml(expectedOutserviceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML)), yamlUtil
410 .objectToYaml(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML)));
415 public void updNodesConnectedOutNoConsolidationTest() throws Exception {
416 loadInputAndOutputData(BASE_DIRECTORY + "updNodesConnectedOut/noConsolidation");
418 UnifiedCompositionData data = createComputeUnifiedCompositionData(FSB1_template);
419 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
420 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_2_INTERNAL_PORT_0));
421 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_1_INTERNAL_PORT_1));
422 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
423 addPortDataToCompositionData(portTypeToIdList, data);
425 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
426 unifiedCompositionDataList.add(data);
428 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
429 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
430 unifiedCompositionDataList
431 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
432 assertEquals(true, substitutionServiceTemplate.isPresent());
433 if (substitutionServiceTemplate.isPresent()) {
434 String substitutionNodeTypeId =
435 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
436 unifiedCompositionDataList.get(0), null, context);
437 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
438 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
439 unifiedCompositionDataList, substitutionNodeTypeId,
442 unifiedCompositionService
443 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
444 unifiedCompositionDataList, context);
445 validateAbstractSubstitute();
451 public void updNodesConnectedInNoConsolidationTest() throws Exception {
452 loadInputAndOutputData(BASE_DIRECTORY + "updNodesConnectedIn/noConsolidation");
454 UnifiedCompositionData data = createComputeUnifiedCompositionData("QRouter");
455 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
456 portTypeToIdList.add(new ImmutablePair<>("cdr_network_port", "cdr_network_port"));
458 .add(new ImmutablePair<>("oam_private_net_network_port", "oam_private_net_network_port"));
459 addPortDataToCompositionData(portTypeToIdList, data);
461 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
462 unifiedCompositionDataList.add(data);
464 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
465 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
466 unifiedCompositionDataList
467 , context, "org.openecomp.resource.abstract.nodes.QRouter", null);
469 String substitutionNodeTypeId =
470 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
471 unifiedCompositionDataList.get(0), null, context);
472 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
473 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
474 unifiedCompositionDataList, substitutionNodeTypeId,
477 unifiedCompositionService
478 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
479 unifiedCompositionDataList, context);
480 validateAbstractSubstitute();
485 public void updNodesConnectedInWithConsolidationTest() throws Exception {
486 loadInputAndOutputData(BASE_DIRECTORY + "updNodesConnectedIn/consolidation");
488 List<UnifiedCompositionData> unifiedCompositionDataList =
489 createAbstractSubstituteCompositionDataComputeAndPort();
491 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
492 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
493 unifiedCompositionDataList
494 , context, "org.openecomp.resource.abstract.nodes.FSB", null);
496 String substitutionNodeTypeId =
497 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
498 unifiedCompositionDataList.get(0), null, context);
499 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
500 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
501 unifiedCompositionDataList, substitutionNodeTypeId,
504 unifiedCompositionService
505 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
506 unifiedCompositionDataList, context);
507 validateAbstractSubstitute();
512 public void updVolumesNoConsolidationTest() throws Exception {
513 loadInputAndOutputData(BASE_DIRECTORY + "updVolumes/noConsolidation");
515 UnifiedCompositionData data = createComputeUnifiedCompositionData(FSB1_template);
516 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
517 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_1_INTERNAL_PORT_1));
518 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_2_INTERNAL_PORT_0));
519 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
520 addPortDataToCompositionData(portTypeToIdList, data);
522 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
523 unifiedCompositionDataList.add(data);
525 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
526 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
527 unifiedCompositionDataList
528 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
530 String substitutionNodeTypeId =
531 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
532 unifiedCompositionDataList.get(0), null, context);
533 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
534 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
535 unifiedCompositionDataList, substitutionNodeTypeId,
538 unifiedCompositionService
539 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
540 unifiedCompositionDataList, context);
541 validateAbstractSubstitute();
546 public void updVolumesWithConsolidationTest() throws Exception {
547 loadInputAndOutputData(BASE_DIRECTORY + "updVolumes/consolidation");
548 List<UnifiedCompositionData> unifiedCompositionDataList =
549 createAbstractSubstituteCompositionDataComputeAndPort();
550 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
551 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
552 unifiedCompositionDataList
553 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
555 String substitutionNodeTypeId =
556 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
557 unifiedCompositionDataList.get(0), null, context);
558 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
559 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
560 unifiedCompositionDataList, substitutionNodeTypeId,
563 unifiedCompositionService
564 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
565 unifiedCompositionDataList, context);
566 validateAbstractSubstitute();
571 public void updGroupsNoConsolidationTest() throws Exception {
572 loadInputAndOutputData(BASE_DIRECTORY + "updGroupsConnectivity/noConsolidation");
573 UnifiedCompositionData data = createComputeUnifiedCompositionData("server_smp1");
574 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
575 portTypeToIdList.add(new ImmutablePair<>(PORT_1, PORT_1));
576 portTypeToIdList.add(new ImmutablePair<>(PORT_2, PORT_2));
577 addPortDataToCompositionData(portTypeToIdList, data);
580 List<String> computeGroupIdList =
581 TestUtils.getGroupsForNode(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), "server_smp1");
582 data.getComputeTemplateConsolidationData().setGroupIds(computeGroupIdList);
584 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
585 unifiedCompositionDataList.add(data);
587 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
588 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
589 unifiedCompositionDataList
590 , context, "org.openecomp.resource.abstract.nodes.smp", null);
592 String substitutionNodeTypeId =
593 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
594 unifiedCompositionDataList.get(0), null, context);
595 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
596 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
597 unifiedCompositionDataList, substitutionNodeTypeId,
600 unifiedCompositionService
601 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
602 unifiedCompositionDataList, context);
603 validateAbstractSubstitute();
608 public void updGroupsWithConsolidationTest() throws Exception {
609 loadInputAndOutputData(BASE_DIRECTORY + "updGroupsConnectivity/consolidation");
611 List<UnifiedCompositionData> unifiedCompositionDataList =
612 createAbstractSubstituteCompositionDataComputeAndPort();
614 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
615 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
616 unifiedCompositionDataList
617 , context, ORG_OPENECOMP_RESOURCE_VFC_NODES_HEAT_FSB, null);
619 String substitutionNodeTypeId =
620 unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
621 unifiedCompositionDataList.get(0), null, context);
622 String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
623 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), substitutionServiceTemplate.get(),
624 unifiedCompositionDataList, substitutionNodeTypeId,
627 unifiedCompositionService
628 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
629 unifiedCompositionDataList, context);
630 validateAbstractSubstitute();
634 public void updOutParamGetAttrInNoConsolidationTest() throws Exception {
635 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
636 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL_1, FSB1_INTERNAL_1));
637 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL_2, FSB2_INTERNAL_2));
638 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
640 loadInputAndOutputData(BASE_DIRECTORY + "updOutputGetAttrIn/noConsolidation");
641 UnifiedCompositionData unifiedCompositionData =
642 createCompositionData(FSB1_template, portTypeToIdList);
643 addOutputGetAttrInForComputeNoConsolidation(unifiedCompositionData);
644 addOutputGetAttrInForPortNoConsolidation(unifiedCompositionData);
646 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
647 unifiedCompositionDataList.add(unifiedCompositionData);
648 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
649 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedCompositionDataList, context);
650 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
652 unifiedCompositionService
653 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
654 unifiedCompositionDataList, context);
656 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
660 public void updOutParamGetAttrInWithConsolidationTest() throws Exception {
661 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
662 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
663 portTypeToIdList1.add(new ImmutablePair<>(FSB1_INTERNAL_1, FSB1_INTERNAL_1));
664 portTypeToIdList1.add(new ImmutablePair<>(FSB2_INTERNAL_2, FSB2_INTERNAL_2));
666 loadInputAndOutputData(BASE_DIRECTORY + "updOutputGetAttrIn/consolidation");
667 UnifiedCompositionData unifiedCompositionData1 =
668 createCompositionData(FSB1_template, portTypeToIdList1);
669 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
670 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
671 unifiedCompositionDataList.add(unifiedCompositionData1);
673 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
674 portTypeToIdList2.add(new ImmutablePair<>(FSB1_INTERNAL_2, FSB1_INTERNAL_2));
675 portTypeToIdList2.add(new ImmutablePair<>(FSB2_INTERNAL_1, FSB2_INTERNAL_1));
677 UnifiedCompositionData unifiedCompositionData2 =
678 createCompositionData(FSB2_template, portTypeToIdList2);
679 unifiedCompositionDataList.add(unifiedCompositionData2);
680 addOutputGetAttrInForCompute2WithConsolidation(unifiedCompositionData2);
681 addOutputGetAttrInForPortWithConsolidation2(unifiedCompositionData2);
683 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
684 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedCompositionDataList, context);
685 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
688 unifiedCompositionService
689 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
690 unifiedCompositionDataList, context);
692 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
696 public void updNodeGetAttrInNoConsolidationTest() throws Exception {
697 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
698 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_1_INTERNAL_PORT_1));
699 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_2_INTERNAL_PORT_0));
700 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
702 loadInputAndOutputData(BASE_DIRECTORY + "updNodesGetAttrIn/noConsolidation");
703 UnifiedCompositionData unifiedCompositionData =
704 createCompositionData(FSB1_template, portTypeToIdList);
705 addGetAttrForCompute(unifiedCompositionData);
706 addGetAttrForPort(unifiedCompositionData);
707 addGetAttrForPortInnerUC(unifiedCompositionData);
709 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
710 unifiedCompositionDataList.add(unifiedCompositionData);
711 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
712 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedCompositionDataList, context);
713 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
715 unifiedCompositionService
716 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
717 unifiedCompositionDataList, context);
719 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
723 public void updNodeGetAttrInWithConsolidationTest() throws Exception {
724 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
725 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
726 portTypeToIdList1.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_1_INTERNAL_PORT_1));
727 portTypeToIdList1.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_1_INTERNAL_PORT_0));
729 loadInputAndOutputData(BASE_DIRECTORY + "updNodesGetAttrIn/consolidation");
730 UnifiedCompositionData unifiedCompositionData1 =
731 createCompositionData(FSB1_template, portTypeToIdList1);
732 addGetAttrForCompute(unifiedCompositionData1);
733 addGetAttrForPort(unifiedCompositionData1);
734 unifiedCompositionDataList.add(unifiedCompositionData1);
736 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
737 portTypeToIdList2.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_2_INTERNAL_PORT_1));
738 portTypeToIdList2.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_2_INTERNAL_PORT_0));
740 UnifiedCompositionData unifiedCompositionData2 =
741 createCompositionData(FSB2_template, portTypeToIdList2);
742 addGetAttrForCompute2(unifiedCompositionData2);
743 addGetAttrForPort2(unifiedCompositionData2);
744 unifiedCompositionDataList.add(unifiedCompositionData2);
747 Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
748 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedCompositionDataList, context);
749 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
752 unifiedCompositionService
753 .updateCompositionConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
754 unifiedCompositionDataList, context);
756 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
761 public void updNodesGetAttrFromInnerNodesTest() throws Exception {
762 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
763 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_1_INTERNAL_PORT_1));
764 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_1_INTERNAL_PORT_0));
765 portTypeToIdList.add(new ImmutablePair<>(FSB1_OAM, FSB1_OAM));
767 loadInputAndOutputData(BASE_DIRECTORY +
768 "creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation");
769 UnifiedCompositionData unifiedCompositionData =
770 createCompositionData(FSB1_template, portTypeToIdList);
771 addGetAttrForCompute(unifiedCompositionData);
772 addGetAttrForPort(unifiedCompositionData);
773 addGetAttrForPortInnerUC(unifiedCompositionData);
774 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
775 unifiedCompositionDataList.add(unifiedCompositionData);
777 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
780 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
781 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
782 unifiedCompositionDataList,
783 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
784 assertEquals(true, substitutionServiceTemplate.isPresent());
785 substitutionServiceTemplate
787 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
788 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
793 public void updNodesGetAttrFromConsolidationNodesTest() throws Exception {
794 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
795 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
796 portTypeToIdList1.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_1_INTERNAL_PORT_1));
797 portTypeToIdList1.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_1_INTERNAL_PORT_0));
799 loadInputAndOutputData(BASE_DIRECTORY +
800 "creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation");
801 UnifiedCompositionData unifiedCompositionData1 =
802 createCompositionData(FSB1_template, portTypeToIdList1);
803 addGetAttrForCompute(unifiedCompositionData1);
804 addGetAttrForPort(unifiedCompositionData1);
805 unifiedCompositionDataList.add(unifiedCompositionData1);
807 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
808 portTypeToIdList2.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_2_INTERNAL_PORT_1));
809 portTypeToIdList2.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_2_INTERNAL_PORT_0));
811 UnifiedCompositionData unifiedCompositionData2 =
812 createCompositionData(FSB2_template, portTypeToIdList2);
813 addGetAttrForCompute2(unifiedCompositionData2);
814 addGetAttrForPort2(unifiedCompositionData2);
815 unifiedCompositionDataList.add(unifiedCompositionData2);
817 Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
818 .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
819 unifiedCompositionDataList,
820 context, ORG_OPENECOMP_RESOURCE_ABSTRACT_NODES_FSB1, null);
821 assertEquals(true, substitutionServiceTemplate.isPresent());
822 substitutionServiceTemplate
824 subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
825 subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
829 public void cleanMainServiceTemplateTestNoConsolidation() throws IOException {
830 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
831 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL_1));
832 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL_2));
833 portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", FSB1_OAM));
835 loadInputAndOutputData(BASE_DIRECTORY + "cleanMainSt/noConsolidation");
836 UnifiedCompositionData unifiedCompositionData =
837 createCompositionData(FSB1_template, portTypeToIdList);
838 addGetAttrForCompute(unifiedCompositionData);
839 addGetAttrForPort(unifiedCompositionData);
841 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
842 unifiedCompositionDataList.add(unifiedCompositionData);
844 NodeTemplate abstractNodeTemplate = getMockNode(
845 BASE_DIRECTORY + "cleanMainSt/mockAbstractNodeTemplate.yaml");
846 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML).getTopology_template().getNode_templates()
847 .put(FSB1, abstractNodeTemplate);
849 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
852 unifiedCompositionService.
853 cleanUnifiedCompositionEntities(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
854 unifiedCompositionDataList, context);
856 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
860 public void cleanMainServiceTemplateTestWithConsolidation() throws IOException {
861 loadInputAndOutputData(BASE_DIRECTORY + "cleanMainSt/consolidation");
863 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
864 List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
865 portTypeToIdList1.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL_1));
866 portTypeToIdList1.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL_2));
868 UnifiedCompositionData unifiedCompositionData1 =
869 createCompositionData(FSB1_template, portTypeToIdList1);
870 addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
871 addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
872 unifiedCompositionDataList.add(unifiedCompositionData1);
874 List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
875 portTypeToIdList2.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL_2));
876 portTypeToIdList2.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL_1));
878 UnifiedCompositionData unifiedCompositionData2 =
879 createCompositionData(FSB2_template, portTypeToIdList2);
880 addOutputGetAttrInForCompute2WithConsolidation(unifiedCompositionData2);
881 addOutputGetAttrInForPortWithConsolidation2(unifiedCompositionData2);
882 unifiedCompositionDataList.add(unifiedCompositionData2);
884 NodeTemplate abstractNodeTemplate = getMockNode(
885 BASE_DIRECTORY + "cleanMainSt/mockAbstractNodeTemplate.yaml");
886 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML).getTopology_template().getNode_templates()
887 .put(FSB1, abstractNodeTemplate);
889 Mockito.doReturn(FSB1).when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
892 unifiedCompositionService.
893 cleanUnifiedCompositionEntities(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
894 unifiedCompositionDataList, context);
896 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
900 public void updateNewAbstractNodeTemplateNoConsolidation() throws IOException {
901 loadInputAndOutputData(BASE_DIRECTORY + "fixNewAbstractNodeTemplate/noConsolidation");
903 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
904 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL_1, FSB1_INTERNAL_1));
905 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL_2, FSB1_INTERNAL_2));
907 NodeTemplate cleanedComputeNodeTemplate =
909 BASE_DIRECTORY + "fixNewAbstractNodeTemplate/mockComputeNodeTemplate.yaml");
912 context.setConsolidationData(
913 createConsolidationData(Collections.singletonList(FSB1_template), portTypeToIdList));
914 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_template,
915 UnifiedCompositionEntity.COMPUTE, cleanedComputeNodeTemplate);
916 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_INTERNAL_1,
917 UnifiedCompositionEntity.PORT, cleanedComputeNodeTemplate);
918 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_INTERNAL_2,
919 UnifiedCompositionEntity.PORT, cleanedComputeNodeTemplate);
921 setUnifiedCompositionData(Arrays.asList(FSB1_template, FSB1_INTERNAL_1, FSB1_INTERNAL_2));
923 unifiedCompositionService
924 .updateUnifiedAbstractNodesConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), context);
926 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
930 public void updateNewAbstractNodeTemplateWithConsolidation() throws IOException {
931 loadInputAndOutputData(BASE_DIRECTORY + "fixNewAbstractNodeTemplate/consolidation");
933 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
934 portTypeToIdList.add(new ImmutablePair<>(FSB1_INTERNAL, FSB1_INTERNAL_1));
935 portTypeToIdList.add(new ImmutablePair<>(FSB2_INTERNAL, FSB2_INTERNAL_1));
937 NodeTemplate cleanedComputeNodeTemplate =
939 BASE_DIRECTORY + "fixNewAbstractNodeTemplate/mockComputeNodeTemplate.yaml");
942 context.setConsolidationData(
943 createConsolidationData(Arrays.asList("FSB1_template_1", "FSB1_template_2"),
945 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, "FSB1_template_1",
946 UnifiedCompositionEntity.COMPUTE, cleanedComputeNodeTemplate);
947 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, "FSB1_template_2",
948 UnifiedCompositionEntity.COMPUTE, cleanedComputeNodeTemplate);
949 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_INTERNAL_1,
950 UnifiedCompositionEntity.PORT, cleanedComputeNodeTemplate);
951 context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB2_INTERNAL_1,
952 UnifiedCompositionEntity.PORT, cleanedComputeNodeTemplate);
954 setUnifiedCompositionData(
955 Arrays.asList("FSB1_template_1", "FSB1_template_2", FSB1_INTERNAL_1, FSB2_INTERNAL_1));
957 unifiedCompositionService
958 .updateUnifiedAbstractNodesConnectivity(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), context);
960 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
964 public void testUnifiedNestedCompositionOneComputeInNested() throws IOException {
965 loadInputAndOutputData(BASE_DIRECTORY + "pattern4/oneNestedNode");
967 ConsolidationData consolidationData = new ConsolidationData();
968 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
969 TestUtils.updateNestedConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, Collections.singletonList("server_pcm_001"),
972 TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName,
973 "org.openecomp.resource.vfc.nodes.heat.pcm_server", consolidationData);
974 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName,
975 "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm", consolidationData);
977 context.setConsolidationData(consolidationData);
978 context.getTranslatedServiceTemplates()
979 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
980 inputServiceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML));
981 context.getTranslatedServiceTemplates()
982 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
983 context.getTranslatedServiceTemplates()
984 .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
986 UnifiedCompositionData unifiedComposition = createUnifiedCompositionOnlyNested("server_pcm_001");
987 UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(
988 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), inputServiceTemplates.get(nestedFileName), null,
990 unifiedCompositionService.handleUnifiedNestedDefinition(unifiedCompositionTo, unifiedComposition);
992 checkSTResults(expectedOutserviceTemplates, nestedFileName,
993 context.getTranslatedServiceTemplates().get(nestedFileName),
994 context.getTranslatedServiceTemplates()
995 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), null);
999 public void testTwoNestedWithOneCompute() throws IOException {
1000 loadInputAndOutputData(BASE_DIRECTORY + "pattern4/twoNestedWithOneCompute");
1002 ConsolidationData consolidationData = new ConsolidationData();
1003 String nestedFileName1 = "nested-pcm_v0.1ServiceTemplate.yaml";
1004 String nestedFileName2 = "nested-oam_v0.1ServiceTemplate.yaml";
1006 TestUtils.updateNestedConsolidationData(MAIN_SERVICE_TEMPLATE_YAML,
1007 Arrays.asList("server_pcm_001", "server_oam_001"), consolidationData);
1009 TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName1,
1010 "org.openecomp.resource.vfc.nodes.heat.pcm_server", consolidationData);
1011 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName1,
1012 "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm", consolidationData);
1013 TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName2,
1014 "org.openecomp.resource.vfc.nodes.heat.oam_server", consolidationData);
1015 TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName2,
1016 "org.openecomp.resource.vfc.nodes.heat.oam_server", "server_oam", consolidationData);
1018 context.setConsolidationData(consolidationData);
1019 context.getTranslatedServiceTemplates()
1020 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1021 inputServiceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML));
1022 context.getTranslatedServiceTemplates()
1023 .put(nestedFileName1, inputServiceTemplates.get(nestedFileName1));
1024 context.getTranslatedServiceTemplates()
1025 .put(nestedFileName2, inputServiceTemplates.get(nestedFileName2));
1026 context.getTranslatedServiceTemplates()
1027 .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
1029 UnifiedCompositionData unifiedComposition =
1030 createUnifiedCompositionOnlyNested("server_pcm_001");
1031 UnifiedCompositionTo unifiedCompositionTo1 = new UnifiedCompositionTo(inputServiceTemplates
1032 .get(MAIN_SERVICE_TEMPLATE_YAML), inputServiceTemplates.get(nestedFileName1), null,
1034 unifiedCompositionService.handleUnifiedNestedDefinition(unifiedCompositionTo1, unifiedComposition);
1035 unifiedComposition = createUnifiedCompositionOnlyNested("server_oam_001");
1036 UnifiedCompositionTo unifiedCompositionTo2 = new UnifiedCompositionTo(inputServiceTemplates
1037 .get(MAIN_SERVICE_TEMPLATE_YAML), inputServiceTemplates.get(nestedFileName2), null,
1039 unifiedCompositionService.handleUnifiedNestedDefinition(unifiedCompositionTo2, unifiedComposition);
1041 checkSTResults(expectedOutserviceTemplates, nestedFileName1,
1042 context.getTranslatedServiceTemplates().get(nestedFileName1),
1043 context.getTranslatedServiceTemplates()
1044 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), null);
1045 checkSTResults(expectedOutserviceTemplates, nestedFileName2,
1046 context.getTranslatedServiceTemplates().get(nestedFileName2),
1051 public void testNestedCompositionNodesConnectedIn() throws IOException {
1052 loadInputAndOutputData(BASE_DIRECTORY + "pattern4/nestedNodesConnectedIn");
1053 ConsolidationData consolidationData = new ConsolidationData();
1054 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
1055 TestUtils.updateNestedConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, Collections.singletonList("server_pcm_001"),
1057 context.getTranslatedServiceTemplates()
1058 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1059 inputServiceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML));
1060 context.getTranslatedServiceTemplates()
1061 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
1062 context.getTranslatedServiceTemplates()
1063 .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
1064 context.addUnifiedNestedNodeTemplateId(MAIN_SERVICE_TEMPLATE_YAML, "server_pcm_001", "abstract_pcm_server_0");
1066 Multimap<String, RequirementAssignmentData> nodeConnectedInList =
1067 TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1069 UnifiedCompositionData unifiedComposition =
1070 createUnifiedCompositionOnlyNested("server_pcm_001");
1071 unifiedComposition.getNestedTemplateConsolidationData()
1072 .setNodesConnectedIn(nodeConnectedInList);
1074 unifiedCompositionService.updNestedCompositionNodesConnectedInConnectivity
1075 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedComposition, context);
1076 checkSTResults(expectedOutserviceTemplates, nestedFileName,
1077 context.getTranslatedServiceTemplates().get(nestedFileName),
1078 context.getTranslatedServiceTemplates()
1079 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
1080 .getTranslatedServiceTemplates().get(MAIN_SERVICE_TEMPLATE_YAML));
1085 public void testNestedCompositionNodesGetAttrIn() throws IOException {
1086 loadInputAndOutputData(BASE_DIRECTORY + "pattern4/nestedNodesGetAttrIn");
1087 ConsolidationData consolidationData = new ConsolidationData();
1088 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
1089 TestUtils.updateNestedConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, Collections.singletonList("server_pcm_001"),
1091 context.getTranslatedServiceTemplates()
1092 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1093 inputServiceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML));
1094 context.getTranslatedServiceTemplates()
1095 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
1096 context.getTranslatedServiceTemplates()
1097 .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
1098 context.addUnifiedNestedNodeTemplateId(MAIN_SERVICE_TEMPLATE_YAML, "server_pcm_001", "abstract_pcm_server_0");
1100 Multimap<String, RequirementAssignmentData> nodeConnectedInList =
1101 TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1103 UnifiedCompositionData unifiedComposition =
1104 createUnifiedCompositionOnlyNested("server_pcm_001");
1105 addGetAttInUnifiedCompositionData(unifiedComposition
1106 .getNestedTemplateConsolidationData(), TENANT_ID, "oam_net_gw", "packet_mirror_network");
1107 addGetAttInUnifiedCompositionData(unifiedComposition
1108 .getNestedTemplateConsolidationData(), USER_DATA_FORMAT, "oam_net_gw",
1109 "server_compute_get_attr_test");
1110 addGetAttInUnifiedCompositionData(unifiedComposition
1111 .getNestedTemplateConsolidationData(), "metadata", "server_pcm_id",
1112 "server_compute_get_attr_test");
1113 unifiedCompositionService.updNestedCompositionNodesGetAttrInConnectivity
1114 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedComposition, context);
1115 checkSTResults(expectedOutserviceTemplates, nestedFileName,
1116 context.getTranslatedServiceTemplates().get(nestedFileName),
1117 context.getTranslatedServiceTemplates()
1118 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
1119 .getTranslatedServiceTemplates().get(MAIN_SERVICE_TEMPLATE_YAML));
1123 public void testNestedCompositionOutputParamGetAttrIn() throws IOException {
1124 loadInputAndOutputData(BASE_DIRECTORY + "pattern4/nestedOutputParamGetAttrIn");
1125 ConsolidationData consolidationData = new ConsolidationData();
1126 String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
1127 TestUtils.updateNestedConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, Collections.singletonList("server_pcm_001"),
1129 context.getTranslatedServiceTemplates()
1130 .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
1131 inputServiceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML));
1132 context.getTranslatedServiceTemplates()
1133 .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
1134 context.getTranslatedServiceTemplates()
1135 .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
1136 context.addUnifiedNestedNodeTemplateId(MAIN_SERVICE_TEMPLATE_YAML, "server_pcm_001", "abstract_pcm_server_0");
1138 Multimap<String, RequirementAssignmentData> nodeConnectedInList =
1139 TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1141 UnifiedCompositionData unifiedComposition =
1142 createUnifiedCompositionOnlyNested("server_pcm_001");
1143 addOutputGetAttInUnifiedCompositionData(unifiedComposition
1144 .getNestedTemplateConsolidationData(), "output_attr_1", ACCESS_IPv4);
1145 addOutputGetAttInUnifiedCompositionData(unifiedComposition
1146 .getNestedTemplateConsolidationData(), "output_attr_2", ACCESS_IPv6);
1147 unifiedCompositionService.updNestedCompositionOutputParamGetAttrInConnectivity
1148 (inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), unifiedComposition, context);
1149 checkSTResults(expectedOutserviceTemplates, nestedFileName,
1150 context.getTranslatedServiceTemplates().get(nestedFileName),
1151 context.getTranslatedServiceTemplates()
1152 .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
1153 .getTranslatedServiceTemplates().get(MAIN_SERVICE_TEMPLATE_YAML));
1157 public void testInputOutputParameterType() throws IOException{
1158 loadInputAndOutputData(BASE_DIRECTORY + "inputoutputparamtype");
1159 ConsolidationData consolidationData = new ConsolidationData();
1160 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1161 portTypeToIdList.add(new ImmutablePair<>("FSB1_Port_1", "FSB1_Port_1"));
1162 portTypeToIdList.add(new ImmutablePair<>("VMI_1", "VMI_1"));
1164 UnifiedCompositionData unifiedCompositionData = createCompositionData(FSB1, portTypeToIdList);
1166 Map<String, NodeTemplate> nodeTemplates =
1167 inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML).getTopology_template().getNode_templates();
1168 for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : nodeTemplates.entrySet() ) {
1169 String nodeTemplateId = nodeTemplateEntry.getKey();
1170 if (nodeTemplateId.equals("cmaui_volume_test_compute_properties")) {
1171 Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
1172 TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
1173 unifiedCompositionData.getComputeTemplateConsolidationData()
1174 .setNodesGetAttrIn(nodesGetAttrIn);
1177 if (nodeTemplateId.equals("cmaui_volume_test_neutron_port_properties")) {
1178 Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
1179 TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
1180 unifiedCompositionData.getPortTemplateConsolidationDataList().get(0)
1181 .setNodesGetAttrIn(nodesGetAttrIn);
1184 if (nodeTemplateId.equals("cmaui_volume_test_contrailv2_VMI_properties")) {
1185 Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
1186 TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
1187 unifiedCompositionData.getPortTemplateConsolidationDataList().get(1)
1188 .setNodesGetAttrIn(nodesGetAttrIn);
1192 List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
1193 unifiedCompositionDataList.add(unifiedCompositionData);
1195 UnifiedCompositionSingleSubstitution unifiedCompositionSingleSubstitution =
1196 new UnifiedCompositionSingleSubstitution();
1197 unifiedCompositionSingleSubstitution
1198 .createUnifiedComposition(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), null,
1199 unifiedCompositionDataList, context);
1200 checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML));
1201 System.out.println();
1206 private UnifiedCompositionData createUnifiedCompositionOnlyNested(
1207 String nestedNodeTemplateId) {
1208 NestedTemplateConsolidationData nestedTemplateConsolidationData =
1209 new NestedTemplateConsolidationData();
1210 nestedTemplateConsolidationData.setNodeTemplateId(nestedNodeTemplateId);
1211 UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
1212 unifiedCompositionData.setNestedTemplateConsolidationData(nestedTemplateConsolidationData);
1213 return unifiedCompositionData;
1216 private void setUnifiedCompositionData(List<String> nodeTemplateIds) {
1217 UnifiedSubstitutionData unifiedSubstitutionData =
1218 context.getUnifiedSubstitutionData().get(MAIN_SERVICE_TEMPLATE_YAML) == null ? new UnifiedSubstitutionData()
1219 : context.getUnifiedSubstitutionData().get(MAIN_SERVICE_TEMPLATE_YAML);
1220 Map<String, String> substitutionAbstractNodeIds = new HashMap<>();
1221 for (String id : nodeTemplateIds) {
1222 substitutionAbstractNodeIds.put(id, "FSB2");
1225 substitutionAbstractNodeIds.put("", FSB1);
1227 unifiedSubstitutionData.setNodesRelatedAbstractNode(substitutionAbstractNodeIds);
1230 private void checkSTResults(
1231 Map<String, ServiceTemplate> expectedOutserviceTemplates,
1232 ServiceTemplate substitutionServiceTemplate,
1233 ServiceTemplate gloablSubstitutionServiceTemplate, ServiceTemplate mainServiceTemplate) {
1234 YamlUtil yamlUtil = new YamlUtil();
1235 if (Objects.nonNull(substitutionServiceTemplate)) {
1236 String substitutionST = "SubstitutionServiceTemplate.yaml";
1237 assertEquals("difference substitution service template: ",
1238 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(substitutionST)),
1239 yamlUtil.objectToYaml(substitutionServiceTemplate));
1241 if (Objects.nonNull(gloablSubstitutionServiceTemplate)) {
1242 assertEquals("difference global substitution service template: ",
1243 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE_YAML)),
1244 yamlUtil.objectToYaml(gloablSubstitutionServiceTemplate));
1246 if (Objects.nonNull(mainServiceTemplate)) {
1247 assertEquals("difference main service template: ",
1248 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML)),
1249 yamlUtil.objectToYaml(mainServiceTemplate));
1253 private void checkSTResults(
1254 Map<String, ServiceTemplate> expectedOutserviceTemplates,
1255 String nestedSTFileName, ServiceTemplate nestedServiceTemplate,
1256 ServiceTemplate gloablSubstitutionServiceTemplate, ServiceTemplate mainServiceTemplate) {
1257 YamlUtil yamlUtil = new YamlUtil();
1259 if (Objects.nonNull(nestedServiceTemplate)) {
1260 assertEquals("difference nested service template: ",
1261 yamlUtil.objectToYaml(expectedOutserviceTemplates.get(nestedSTFileName)),
1262 yamlUtil.objectToYaml(nestedServiceTemplate));
1264 checkSTResults(expectedOutserviceTemplates, null, gloablSubstitutionServiceTemplate,
1265 mainServiceTemplate);
1269 private void loadInputAndOutputData(String path) throws IOException {
1270 inputServiceTemplates = new HashMap<>();
1271 TestUtils.loadServiceTemplates(path + IN_PREFIX, new ToscaExtensionYamlUtil(),
1272 inputServiceTemplates);
1273 expectedOutserviceTemplates = new HashMap<>();
1274 TestUtils.loadServiceTemplates(path + OUT_PREFIX, new ToscaExtensionYamlUtil(),
1275 expectedOutserviceTemplates);
1279 private void addGetAttInUnifiedCompositionData(EntityConsolidationData entityConsolidationData,
1280 String propertyName, String attributeName,
1281 String nodeTemplateId) {
1282 GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
1283 getAttrFuncData.setAttributeName(attributeName);
1284 getAttrFuncData.setFieldName(propertyName);
1285 entityConsolidationData.addNodesGetAttrIn(nodeTemplateId, getAttrFuncData);
1288 private void addOutputGetAttInUnifiedCompositionData(
1289 EntityConsolidationData entityConsolidationData,
1290 String outParamName, String attributeName) {
1291 GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
1292 getAttrFuncData.setAttributeName(attributeName);
1293 getAttrFuncData.setFieldName(outParamName);
1294 entityConsolidationData.addOutputParamGetAttrIn(getAttrFuncData);
1297 private ConsolidationData createConsolidationData(List<String> computeNodeIds,
1298 List<Pair<String, String>> portTypeToIdList) {
1300 ConsolidationData consolidationData = new ConsolidationData();
1301 String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.FSB2";
1304 .initComputeNodeTypeInConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, computeNodeTypeName, consolidationData);
1305 TestUtils.initPortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, consolidationData);
1307 for (String computeId : computeNodeIds) {
1308 ComputeTemplateConsolidationData computeTemplateConsolidationData =
1309 new ComputeTemplateConsolidationData();
1310 TestUtils.updatePortsInComputeTemplateConsolidationData(portTypeToIdList,
1311 computeTemplateConsolidationData);
1312 consolidationData.getComputeConsolidationData().getFileComputeConsolidationData(MAIN_SERVICE_TEMPLATE_YAML)
1313 .getTypeComputeConsolidationData(computeNodeTypeName)
1314 .setComputeTemplateConsolidationData(computeId,
1315 computeTemplateConsolidationData);
1318 for (Pair<String, String> portTypeToId : portTypeToIdList) {
1319 consolidationData.getPortConsolidationData().getFilePortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML)
1320 .setPortTemplateConsolidationData(portTypeToId.getRight(),
1321 new PortTemplateConsolidationData());
1324 return consolidationData;
1327 private UnifiedCompositionData createCompositionData(String computeNodeTemplateId,
1328 List<Pair<String, String>> portTypeToIdList) {
1330 UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
1331 NodeTemplate computeNodeTemplate =
1332 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), computeNodeTemplateId);
1333 Optional<List<RequirementAssignmentData>> requirementAssignmentDataList =
1334 TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage");
1335 List<RequirementAssignmentData> requirementAssignmentList =
1336 (requirementAssignmentDataList.isPresent()) ? requirementAssignmentDataList.get() : null;
1337 Multimap<String, RequirementAssignmentData> volume = null;
1338 if (requirementAssignmentList != null) {
1339 volume = getVolume(requirementAssignmentList);
1341 unifiedCompositionData.setComputeTemplateConsolidationData(
1342 TestUtils.createComputeTemplateConsolidationData(computeNodeTemplateId, portTypeToIdList,
1344 if (portTypeToIdList != null) {
1345 for (Pair<String, String> port : portTypeToIdList) {
1346 NodeTemplate portNodeTemplate =
1347 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), port.getRight());
1349 Multimap<String, RequirementAssignmentData> nodeConnectedOut =
1350 TestUtils.getNodeConnectedOutList(portNodeTemplate, "link");
1351 PortTemplateConsolidationData portTemplateConsolidationData =
1352 TestUtils.createPortTemplateConsolidationData(port.getRight(), port.getLeft());
1353 portTemplateConsolidationData.setNodesConnectedOut(nodeConnectedOut);
1354 unifiedCompositionData.addPortTemplateConsolidationData(portTemplateConsolidationData);
1357 return unifiedCompositionData;
1360 private List<UnifiedCompositionData> createAbstractSubstituteCompositionDataComputeAndPort() {
1361 List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
1362 UnifiedCompositionData data1 = createComputeUnifiedCompositionData(FSB1_template);
1363 UnifiedCompositionData data2 = createComputeUnifiedCompositionData(FSB2_template);
1365 List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
1366 ImmutablePair<String, String> portTypePair1 = new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0,
1367 FSB_1_INTERNAL_PORT_0);
1368 ImmutablePair<String, String> portTypePair2 = new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1,
1369 FSB_1_INTERNAL_PORT_1);
1370 portTypeToIdList.add(portTypePair1);
1371 portTypeToIdList.add(portTypePair2);
1372 addPortDataToCompositionData(portTypeToIdList, data1);
1373 portTypeToIdList.remove(portTypePair1);
1374 portTypeToIdList.remove(portTypePair2);
1375 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_0, FSB_2_INTERNAL_PORT_0));
1376 portTypeToIdList.add(new ImmutablePair<>(FSB_INTERNAL_PORT_TYPE_1, FSB_2_INTERNAL_PORT_1));
1377 addPortDataToCompositionData(portTypeToIdList, data2);
1379 unifiedCompositionDataList.add(data1);
1380 unifiedCompositionDataList.add(data2);
1381 return unifiedCompositionDataList;
1385 private UnifiedCompositionData createComputeUnifiedCompositionData(String computeNodeTemplateId) {
1386 NodeTemplate computeNodeTemplate =
1387 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), computeNodeTemplateId);
1388 Optional<List<RequirementAssignmentData>> requirementAssignmentDataList =
1389 TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage");
1390 Multimap<String, RequirementAssignmentData> volume = null;
1391 if (requirementAssignmentDataList.isPresent()) {
1392 volume = getVolume(requirementAssignmentDataList.get());
1394 UnifiedCompositionData data = new UnifiedCompositionData();
1395 Multimap<String, RequirementAssignmentData> computeNodeConnectedOut =
1396 TestUtils.getNodeConnectedOutList(computeNodeTemplate, DEPENDENCY);
1397 Multimap<String, RequirementAssignmentData> computeNodeConnectedIn =
1399 .getNodeConnectedInList(computeNodeTemplateId, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1401 ComputeTemplateConsolidationData computeTemplateConsolidationData = TestUtils
1402 .createComputeTemplateConsolidationData(computeNodeTemplateId, null, volume);
1403 List<String> computeNodeGroups =
1404 TestUtils.getGroupsForNode(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1405 computeNodeTemplateId);
1406 if (!computeNodeGroups.isEmpty()) {
1407 computeTemplateConsolidationData.setGroupIds(computeNodeGroups);
1409 computeTemplateConsolidationData.setNodesConnectedOut(computeNodeConnectedOut);
1410 computeTemplateConsolidationData.setNodesConnectedIn(computeNodeConnectedIn);
1411 data.setComputeTemplateConsolidationData(computeTemplateConsolidationData);
1415 private void addPortDataToCompositionData(List<Pair<String, String>> portTypeToIdList,
1416 UnifiedCompositionData data) {
1417 ComputeTemplateConsolidationData computeTemplateConsolidationData = data
1418 .getComputeTemplateConsolidationData();
1420 for (Pair<String, String> port : portTypeToIdList) {
1421 NodeTemplate portNodeTemplate =
1422 DataModelUtil.getNodeTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), port.getRight());
1424 Optional<List<RequirementAssignmentData>> bindingReqList =
1425 TestUtils.getRequirementAssignmentDataList(portNodeTemplate, "binding");
1427 if (bindingReqList.isPresent()) {
1428 for (RequirementAssignmentData reqData : bindingReqList.get()) {
1429 String nodeId = reqData.getRequirementAssignment().getNode();
1430 if (nodeId.equals(computeTemplateConsolidationData.getNodeTemplateId())) {
1431 computeTemplateConsolidationData.addPort(port.getLeft(), port.getRight());
1435 Multimap<String, RequirementAssignmentData> portNodeConnectedOut =
1436 TestUtils.getNodeConnectedOutList(portNodeTemplate, "link");
1437 PortTemplateConsolidationData portTemplateConsolidationData = TestUtils
1438 .createPortTemplateConsolidationData(port.getRight(), port.getLeft());
1439 portTemplateConsolidationData.setNodesConnectedOut(portNodeConnectedOut);
1441 //Add node connected in info to test data
1442 Multimap<String, RequirementAssignmentData> portNodeConnectedIn =
1443 TestUtils.getNodeConnectedInList(port.getRight(), inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML),
1445 portTemplateConsolidationData.setNodesConnectedIn(portNodeConnectedIn);
1447 //Add group infromation for ports
1448 List<String> portGroups =
1449 TestUtils.getGroupsForNode(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), port.getRight());
1450 portTemplateConsolidationData.setGroupIds(portGroups);
1451 data.addPortTemplateConsolidationData(portTemplateConsolidationData);
1454 addGetAttrForCompute(data);
1455 addGetAttrForPort(data);
1458 private Multimap<String, RequirementAssignmentData> getVolume(
1459 List<RequirementAssignmentData> requirementAssignmentList) {
1460 Multimap<String, RequirementAssignmentData> volume = ArrayListMultimap.create();
1461 for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentList) {
1462 String volumeNodeTemplateId = requirementAssignmentData.getRequirementAssignment().getNode();
1463 volume.put(volumeNodeTemplateId, requirementAssignmentData);
1468 private void addGetAttrForPort(UnifiedCompositionData unifiedCompositionData) {
1469 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1470 .getPortTemplateConsolidationDataList()) {
1471 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB_1_INTERNAL_PORT_1)) {
1472 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "network_name",
1473 NETWORK_ID, JSA_NET1);
1474 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, SIZE,
1475 DEVICE_OWNER, CMAUI_VOLUME1);
1476 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB_2_INTERNAL_PORT_0)) {
1477 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, TENANT_ID,
1478 NETWORK_ID, JSA_NET1);
1479 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "qos_policy",
1480 NETWORK_ID, JSA_NET1);
1481 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, VOLUME_TYPE,
1482 TENANT_ID, CMAUI_VOLUME1);
1483 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_OAM)) {
1484 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, SIZE,
1485 STATUS, CMAUI_VOLUME1);
1490 private void addGetAttrForPort2(UnifiedCompositionData unifiedCompositionData) {
1491 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1492 .getPortTemplateConsolidationDataList()) {
1493 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB2_INTERNAL_1)) {
1494 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, VOLUME_TYPE,
1495 TENANT_ID, CMAUI_VOLUME3);
1496 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_INTERNAL_2)) {
1497 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, SIZE,
1498 DEVICE_OWNER, CMAUI_VOLUME3);
1499 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, SIZE,
1500 STATUS, CMAUI_VOLUME1);
1505 private void addGetAttrForPortInnerUC(UnifiedCompositionData unifiedCompositionData) {
1506 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1507 .getPortTemplateConsolidationDataList()) {
1508 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB_1_INTERNAL_PORT_1)) {
1509 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, AVAILABILITY_ZONE,
1510 MYATTR, FSB1_template);
1511 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "metadata",
1512 MYATTR, FSB1_template);
1513 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "name",
1514 MYATTR, FSB1_template);
1515 addGetAttInUnifiedCompositionData(portTemplateConsolidationData, AVAILABILITY_ZONE,
1516 TENANT_ID, FSB1_template);
1521 private void addGetAttrForCompute(UnifiedCompositionData unifiedCompositionData) {
1522 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1523 "dhcp_agent_ids", ADDRESSES, JSA_NET1);
1524 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1525 VOLUME_TYPE, ADDRESSES, CMAUI_VOLUME1);
1526 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1527 SIZE, ACCESS_IPv6, CMAUI_VOLUME2);
1530 private void addGetAttrForCompute2(UnifiedCompositionData unifiedCompositionData) {
1531 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1532 VOLUME_TYPE, ADDRESSES, CMAUI_VOLUME3);
1533 addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
1534 SIZE, USER_DATA_FORMAT, CMAUI_VOLUME3);
1537 private void addOutputGetAttrInForComputeNoConsolidation(
1538 UnifiedCompositionData unifiedCompositionData) {
1539 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1540 .getComputeTemplateConsolidationData(), SIMPLE_OUTPUT1, ACCESS_IPv4);
1541 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1542 .getComputeTemplateConsolidationData(), SIMPLE_OUTPUT2, ADDRESSES);
1543 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1544 .getComputeTemplateConsolidationData(), COMPLEX_OUTPUT1, ADDRESSES);
1545 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1546 .getComputeTemplateConsolidationData(), COMPLEX_OUTPUT3, ACCESS_IPv6);
1550 private void addOutputGetAttrInForCompute1WithConsolidation(
1551 UnifiedCompositionData unifiedCompositionData) {
1552 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1553 .getComputeTemplateConsolidationData(), SIMPLE_OUTPUT1, ACCESS_IPv4);
1554 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1555 .getComputeTemplateConsolidationData(), COMPLEX_OUTPUT1, ADDRESSES);
1559 private void addOutputGetAttrInForCompute2WithConsolidation(
1560 UnifiedCompositionData unifiedCompositionData) {
1561 addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
1562 .getComputeTemplateConsolidationData(), SIMPLE_OUTPUT2, ADDRESSES);
1565 private void addOutputGetAttrInForPortNoConsolidation(
1566 UnifiedCompositionData unifiedCompositionData) {
1567 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1568 .getPortTemplateConsolidationDataList()) {
1569 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_INTERNAL_1)) {
1570 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT2,
1572 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT3,
1574 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB2_INTERNAL_2)) {
1575 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT1,
1577 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_OAM)) {
1578 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT2,
1584 private void addOutputGetAttrInForPortWithConsolidation1(
1585 UnifiedCompositionData unifiedCompositionData) {
1586 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1587 .getPortTemplateConsolidationDataList()) {
1588 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB2_INTERNAL_2)) {
1589 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT1,
1591 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_INTERNAL_1)) {
1592 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT3,
1598 private void addOutputGetAttrInForPortWithConsolidation2(
1599 UnifiedCompositionData unifiedCompositionData) {
1600 for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
1601 .getPortTemplateConsolidationDataList()) {
1602 if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB2_INTERNAL_1)) {
1603 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT2,
1605 } else if (portTemplateConsolidationData.getNodeTemplateId().equals(FSB1_INTERNAL_2)) {
1606 addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, COMPLEX_OUTPUT2,
1612 private NodeTemplate getMockNode(String path) throws IOException {
1613 URL resource = this.getClass().getResource(path);
1614 YamlUtil yamlUtil = new YamlUtil();
1615 return yamlUtil.yamlToObject(resource.openStream(), NodeTemplate.class);