714f717814bf2003ac5800a4256fcbfe6c4bf612
[policy/clamp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2024 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  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.clamp.acm.participant.sim.main.handler;
22
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.junit.jupiter.api.Assertions.assertEquals;
25 import static org.mockito.Mockito.mock;
26 import static org.mockito.Mockito.verify;
27 import static org.mockito.Mockito.when;
28
29 import java.util.Map;
30 import java.util.UUID;
31 import org.junit.jupiter.api.Test;
32 import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
33 import org.onap.policy.clamp.acm.participant.sim.comm.CommonTestData;
34 import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElementDefinition;
35 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
36 import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
37
38 class SimulatorServiceTest {
39
40     @Test
41     void testGetAutomationCompositions() {
42         var intermediaryApi = mock(ParticipantIntermediaryApi.class);
43         var simulatorService = new SimulatorService(intermediaryApi);
44
45         var map = CommonTestData.getTestAutomationCompositionMap();
46         when(intermediaryApi.getAutomationCompositions()).thenReturn(map);
47         var result = simulatorService.getAutomationCompositions();
48         assertEquals(map.values().iterator().next(), result.getAutomationCompositionList().get(0));
49     }
50
51     @Test
52     void testGetAutomationComposition() {
53         var intermediaryApi = mock(ParticipantIntermediaryApi.class);
54         var simulatorService = new SimulatorService(intermediaryApi);
55
56         var instance = CommonTestData.getTestAutomationCompositionMap().values().iterator().next();
57         when(intermediaryApi.getAutomationComposition(instance.getInstanceId())).thenReturn(instance);
58         var result = simulatorService.getAutomationComposition(instance.getInstanceId());
59         assertEquals(instance, result);
60     }
61
62     @Test
63     void testSetOutProperties() {
64         var intermediaryApi = mock(ParticipantIntermediaryApi.class);
65         var simulatorService = new SimulatorService(intermediaryApi);
66
67         var instanceId = UUID.randomUUID();
68         var elementId = UUID.randomUUID();
69         var useState = "useState";
70         var operationalState = "operationalState";
71         Map<String, Object> map = Map.of("id", "1234");
72
73         simulatorService.setOutProperties(instanceId, elementId, useState, operationalState, map);
74         verify(intermediaryApi).sendAcElementInfo(instanceId, elementId, useState, operationalState, map);
75     }
76
77     @Test
78     void testGetDataList() {
79         var intermediaryApi = mock(ParticipantIntermediaryApi.class);
80         var simulatorService = new SimulatorService(intermediaryApi);
81
82         var map = CommonTestData.getTestAutomationCompositionMap();
83         when(intermediaryApi.getAutomationCompositions()).thenReturn(map);
84         var result = simulatorService.getDataList();
85         var data = result.getList().get(0);
86         var automationcomposition = map.values().iterator().next();
87         assertEquals(automationcomposition.getInstanceId(), data.getAutomationCompositionId());
88         var element = automationcomposition.getElements().values().iterator().next();
89         assertEquals(element.getId(), data.getAutomationCompositionElementId());
90     }
91
92     @Test
93     void testGetCompositionDataList() {
94         var acElementDefinition = new AutomationCompositionElementDefinition();
95         var toscaConceptIdentifier = new ToscaConceptIdentifier("code", "1.0.0");
96         acElementDefinition.setAcElementDefinitionId(toscaConceptIdentifier);
97         acElementDefinition.setAutomationCompositionElementToscaNodeTemplate(new ToscaNodeTemplate());
98         Map<String, Object> outProperties = Map.of("code", "value");
99         Map<String, Object> inProperties = Map.of("key", "value");
100         acElementDefinition.getAutomationCompositionElementToscaNodeTemplate().setProperties(inProperties);
101         acElementDefinition.setOutProperties(outProperties);
102         var elementsDefinitions = Map.of(toscaConceptIdentifier, acElementDefinition);
103         var compositionId = UUID.randomUUID();
104         var map = Map.of(compositionId, elementsDefinitions);
105         var intermediaryApi = mock(ParticipantIntermediaryApi.class);
106         when(intermediaryApi.getAcElementsDefinitions()).thenReturn(map);
107         var simulatorService = new SimulatorService(intermediaryApi);
108
109         var result = simulatorService.getCompositionDataList();
110         assertThat(result.getList()).hasSize(1);
111         assertEquals(result.getList().get(0).getCompositionId(), compositionId);
112         assertEquals(result.getList().get(0).getCompositionDefinitionElementId(), toscaConceptIdentifier);
113         assertEquals(result.getList().get(0).getOutProperties(), outProperties);
114         assertEquals(result.getList().get(0).getIntProperties(), inProperties);
115     }
116
117     @Test
118     void testSetCompositionData() {
119         var intermediaryApi = mock(ParticipantIntermediaryApi.class);
120         var simulatorService = new SimulatorService(intermediaryApi);
121
122         var compositionId = UUID.randomUUID();
123         simulatorService.setCompositionOutProperties(compositionId, null, Map.of());
124         verify(intermediaryApi).sendAcDefinitionInfo(compositionId, null, Map.of());
125     }
126 }