2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021 Nordix Foundation
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * 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.
16 * SPDX-License-Identifier: Apache-2.0
17 * ============LICENSE_END=========================================================
20 package org.openecomp.sdc.be.tosca;
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertTrue;
24 import static org.junit.jupiter.api.Assertions.assertNotNull;
26 import java.util.ArrayList;
27 import java.util.Collections;
28 import java.util.HashMap;
29 import java.util.List;
31 import org.junit.jupiter.api.Test;
32 import org.openecomp.sdc.be.tosca.model.ToscaInterfaceDefinition;
33 import org.openecomp.sdc.be.tosca.model.ToscaNodeTemplate;
34 import org.openecomp.sdc.be.tosca.model.ToscaRelationship;
35 import org.openecomp.sdc.be.tosca.model.ToscaRelationshipTemplate;
36 import org.openecomp.sdc.be.tosca.model.ToscaTemplateRequirement;
38 class ToscaExportRelationshipTemplatesHandlerTest {
41 void testCreateFromEmptyNodeTemplateMapReturnsEmptyMap() {
42 final Map<String, ToscaRelationshipTemplate> actualRelationshipTemplateMap =
43 new ToscaExportRelationshipTemplatesHandler().createFrom(Collections.emptyMap());
44 assertNotNull(actualRelationshipTemplateMap);
45 assertTrue(actualRelationshipTemplateMap.isEmpty());
49 void testCreateFromSuccess() {
50 final Map<String, ToscaNodeTemplate> nodeTemplateMap = new HashMap<>();
52 final ToscaNodeTemplate nodeTemplateWithNoRequirements = new ToscaNodeTemplate();
53 nodeTemplateMap.put("nodeTemplateWithNoRequirements", nodeTemplateWithNoRequirements);
55 final ToscaNodeTemplate nodeTemplateWithRequirements = new ToscaNodeTemplate();
56 final List<Map<String, ToscaTemplateRequirement>> requirements = new ArrayList<>();
58 final Map<String, ToscaTemplateRequirement> requirementMap = new HashMap<>();
59 final ToscaTemplateRequirement complexRequirement = new ToscaTemplateRequirement();
60 complexRequirement.setNode("aNode");
62 final ToscaRelationship toscaRelationship = new ToscaRelationship();
63 final String relationshipType = "tosca.relationships.ConnectsTo";
64 toscaRelationship.setType(relationshipType);
66 final Map<String, ToscaInterfaceDefinition> interfaces = new HashMap<>();
67 final ToscaInterfaceDefinition toscaInterfaceDefinition = new ToscaInterfaceDefinition();
68 final String interfaceConfigureType = "tosca.interfaces.relationship.Configure";
69 toscaInterfaceDefinition.setType(interfaceConfigureType);
70 final HashMap<String, Object> operationMap = new HashMap<>();
71 final String preConfigSourceOperationType = "pre_configure_source";
72 operationMap.put(preConfigSourceOperationType, new Object());
73 toscaInterfaceDefinition.setOperations(operationMap);
75 interfaces.put(interfaceConfigureType, toscaInterfaceDefinition);
76 toscaRelationship.setInterfaces(interfaces);
77 complexRequirement.setRelationship(toscaRelationship);
78 requirementMap.put("requirement1", complexRequirement);
80 final ToscaTemplateRequirement simpleRequirement = new ToscaTemplateRequirement();
81 simpleRequirement.setNode("anotherNode");
82 simpleRequirement.setRelationship("aRelationship");
83 requirementMap.put("requirement2", simpleRequirement);
85 requirements.add(requirementMap);
86 nodeTemplateWithRequirements.setRequirements(requirements);
87 nodeTemplateMap.put("nodeTemplateWithRequirements", nodeTemplateWithRequirements);
89 final Map<String, ToscaRelationshipTemplate> actualRelationshipTemplateMap =
90 new ToscaExportRelationshipTemplatesHandler().createFrom(nodeTemplateMap);
92 assertNotNull(actualRelationshipTemplateMap);
93 assertEquals(1, actualRelationshipTemplateMap.size());
94 final ToscaRelationshipTemplate actualRelationshipTemplate = actualRelationshipTemplateMap.values().iterator().next();
95 assertEquals(relationshipType, actualRelationshipTemplate.getType());
97 final Map<String, ToscaInterfaceDefinition> actualInterfaceMap = actualRelationshipTemplate.getInterfaces();
98 assertNotNull(actualInterfaceMap);
99 assertEquals(1, actualInterfaceMap.size());
100 assertTrue(actualInterfaceMap.containsKey(interfaceConfigureType));
102 final ToscaInterfaceDefinition actualToscaInterfaceDefinition =
103 actualInterfaceMap.get(interfaceConfigureType);
104 assertEquals(toscaInterfaceDefinition.getType(), actualToscaInterfaceDefinition.getType());
106 final Map<String, Object> actualOperationMap = actualToscaInterfaceDefinition.getOperations();
107 assertNotNull(actualOperationMap);
108 assertEquals(1, actualOperationMap.size());
109 assertTrue(actualOperationMap.containsKey(preConfigSourceOperationType));