Backend support for operation milestones with activity inputs
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / tosca / ToscaExportRelationshipTemplatesHandlerTest.java
1 /*
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
8  *
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.
15  *
16  *  SPDX-License-Identifier: Apache-2.0
17  *  ============LICENSE_END=========================================================
18  */
19
20 package org.openecomp.sdc.be.tosca;
21
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertTrue;
24 import static org.junit.jupiter.api.Assertions.assertNotNull;
25
26 import java.util.ArrayList;
27 import java.util.Collections;
28 import java.util.HashMap;
29 import java.util.List;
30 import java.util.Map;
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;
37
38 class ToscaExportRelationshipTemplatesHandlerTest {
39
40     @Test
41     void testCreateFromEmptyNodeTemplateMapReturnsEmptyMap() {
42         final Map<String, ToscaRelationshipTemplate> actualRelationshipTemplateMap =
43             new ToscaExportRelationshipTemplatesHandler().createFrom(Collections.emptyMap());
44         assertNotNull(actualRelationshipTemplateMap);
45         assertTrue(actualRelationshipTemplateMap.isEmpty());
46     }
47
48     @Test
49     void testCreateFromSuccess() {
50         final Map<String, ToscaNodeTemplate> nodeTemplateMap = new HashMap<>();
51
52         final ToscaNodeTemplate nodeTemplateWithNoRequirements = new ToscaNodeTemplate();
53         nodeTemplateMap.put("nodeTemplateWithNoRequirements", nodeTemplateWithNoRequirements);
54
55         final ToscaNodeTemplate nodeTemplateWithRequirements = new ToscaNodeTemplate();
56         final List<Map<String, ToscaTemplateRequirement>> requirements = new ArrayList<>();
57
58         final Map<String, ToscaTemplateRequirement> requirementMap = new HashMap<>();
59         final ToscaTemplateRequirement complexRequirement = new ToscaTemplateRequirement();
60         complexRequirement.setNode("aNode");
61
62         final ToscaRelationship toscaRelationship = new ToscaRelationship();
63         final String relationshipType = "tosca.relationships.ConnectsTo";
64         toscaRelationship.setType(relationshipType);
65
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);
74
75         interfaces.put(interfaceConfigureType, toscaInterfaceDefinition);
76         toscaRelationship.setInterfaces(interfaces);
77         complexRequirement.setRelationship(toscaRelationship);
78         requirementMap.put("requirement1", complexRequirement);
79
80         final ToscaTemplateRequirement simpleRequirement = new ToscaTemplateRequirement();
81         simpleRequirement.setNode("anotherNode");
82         simpleRequirement.setRelationship("aRelationship");
83         requirementMap.put("requirement2", simpleRequirement);
84
85         requirements.add(requirementMap);
86         nodeTemplateWithRequirements.setRequirements(requirements);
87         nodeTemplateMap.put("nodeTemplateWithRequirements", nodeTemplateWithRequirements);
88
89         final Map<String, ToscaRelationshipTemplate> actualRelationshipTemplateMap =
90             new ToscaExportRelationshipTemplatesHandler().createFrom(nodeTemplateMap);
91
92         assertNotNull(actualRelationshipTemplateMap);
93         assertEquals(1, actualRelationshipTemplateMap.size());
94         final ToscaRelationshipTemplate actualRelationshipTemplate = actualRelationshipTemplateMap.values().iterator().next();
95         assertEquals(relationshipType, actualRelationshipTemplate.getType());
96
97         final Map<String, ToscaInterfaceDefinition> actualInterfaceMap = actualRelationshipTemplate.getInterfaces();
98         assertNotNull(actualInterfaceMap);
99         assertEquals(1, actualInterfaceMap.size());
100         assertTrue(actualInterfaceMap.containsKey(interfaceConfigureType));
101
102         final ToscaInterfaceDefinition actualToscaInterfaceDefinition =
103             actualInterfaceMap.get(interfaceConfigureType);
104         assertEquals(toscaInterfaceDefinition.getType(), actualToscaInterfaceDefinition.getType());
105
106         final Map<String, Object> actualOperationMap = actualToscaInterfaceDefinition.getOperations();
107         assertNotNull(actualOperationMap);
108         assertEquals(1, actualOperationMap.size());
109         assertTrue(actualOperationMap.containsKey(preConfigSourceOperationType));
110     }
111 }