Multiple PNFs with same ModelInfo but different instance name not able to be instantiated
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / bpmn / infrastructure / workflow / tasks / utils / WorkflowResourceIdsUtilsTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2020 Nokia Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.bpmn.infrastructure.workflow.tasks.utils;
22
23 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
24 import org.junit.Before;
25 import org.junit.Test;
26 import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowType;
27 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
28 import java.util.function.Supplier;
29 import static org.junit.Assert.assertEquals;
30
31
32 public class WorkflowResourceIdsUtilsTest {
33
34     private static final String SERVICE_ID = "serviceId";
35     private static final String NETWORK_ID = "networkId";
36     private static final String VF_MODULE_ID = "vfModuleId";
37     private static final String VNF_ID = "vnfId";
38     private static final String VOLUME_GROUP_ID = "volumeGroupId";
39     private static final String INSTANCE_GROUP_ID = "instanceGroupId";
40     private static final String PNF_ID = "pnfId";
41     private static final String NETWORK_COLLECTION_ID = "networkCollectionId";
42     private static final String CONFIGURATION_ID = "configurationId";
43     private static final String VNF_INSTANCE_NAME = "vnfInstanceNameId";
44     private static final String VF_MODULE_INSTANCE_NAME = "vfModuleInstanceNameId";
45     private static final String PNF_INSTANCE_NAME = "pnfInstanceNameId";
46     private WorkflowResourceIds workflowResourceIds;
47
48     @Before
49     public void setUp() {
50         workflowResourceIds = new WorkflowResourceIds();
51     }
52
53     @Test
54     public void shouldProperlySetFieldsFromExecution() {
55         DelegateExecutionFake execution = new DelegateExecutionFake();
56         execution.setVariable("serviceInstanceId", SERVICE_ID);
57         execution.setVariable("networkId", NETWORK_ID);
58         execution.setVariable("vfModuleId", VF_MODULE_ID);
59         execution.setVariable("vnfId", VNF_ID);
60         execution.setVariable("volumeGroupId", VOLUME_GROUP_ID);
61         execution.setVariable("instanceGroupId", INSTANCE_GROUP_ID);
62         execution.setVariable("vnfInstanceName", VNF_INSTANCE_NAME);
63         execution.setVariable("vfModuleInstanceName", VF_MODULE_INSTANCE_NAME);
64         execution.setVariable("pnfInstanceName", PNF_INSTANCE_NAME);
65
66         workflowResourceIds = WorkflowResourceIdsUtils.getWorkflowResourceIdsFromExecution(execution);
67
68         assertEquals(SERVICE_ID, workflowResourceIds.getServiceInstanceId());
69         assertEquals(NETWORK_ID, workflowResourceIds.getNetworkId());
70         assertEquals(VF_MODULE_ID, workflowResourceIds.getVfModuleId());
71         assertEquals(VNF_ID, workflowResourceIds.getVnfId());
72         assertEquals(VOLUME_GROUP_ID, workflowResourceIds.getVolumeGroupId());
73         assertEquals(INSTANCE_GROUP_ID, workflowResourceIds.getInstanceGroupId());
74         assertEquals(VNF_INSTANCE_NAME, workflowResourceIds.getVnfInstanceName());
75         assertEquals(VF_MODULE_INSTANCE_NAME, workflowResourceIds.getVfModuleInstanceName());
76         assertEquals(PNF_INSTANCE_NAME, workflowResourceIds.getPnfInstanceName());
77     }
78
79     @Test
80     public void shouldProperlySetServiceInstanceId() {
81         assertFieldSetProperly(WorkflowType.SERVICE, SERVICE_ID, workflowResourceIds::getServiceInstanceId);
82         assertEquals(SERVICE_ID,
83                 WorkflowResourceIdsUtils.getResourceIdByWorkflowType(workflowResourceIds, WorkflowType.SERVICE));
84     }
85
86     @Test
87     public void shouldProperlySetVnfId() {
88         assertFieldSetProperly(WorkflowType.VNF, VNF_ID, workflowResourceIds::getVnfId);
89         assertEquals(VNF_ID,
90                 WorkflowResourceIdsUtils.getResourceIdByWorkflowType(workflowResourceIds, WorkflowType.VNF));
91     }
92
93     @Test
94     public void shouldProperlySetPnfId() {
95         assertFieldSetProperly(WorkflowType.PNF, PNF_ID, workflowResourceIds::getPnfId);
96         assertEquals(PNF_ID,
97                 WorkflowResourceIdsUtils.getResourceIdByWorkflowType(workflowResourceIds, WorkflowType.PNF));
98     }
99
100     @Test
101     public void shouldProperlySetVfModuleId() {
102         assertFieldSetProperly(WorkflowType.VFMODULE, VF_MODULE_ID, workflowResourceIds::getVfModuleId);
103         assertEquals(VF_MODULE_ID,
104                 WorkflowResourceIdsUtils.getResourceIdByWorkflowType(workflowResourceIds, WorkflowType.VFMODULE));
105     }
106
107     @Test
108     public void shouldProperlySetVolumeGroupId() {
109         assertFieldSetProperly(WorkflowType.VOLUMEGROUP, VOLUME_GROUP_ID, workflowResourceIds::getVolumeGroupId);
110         assertEquals(VOLUME_GROUP_ID,
111                 WorkflowResourceIdsUtils.getResourceIdByWorkflowType(workflowResourceIds, WorkflowType.VOLUMEGROUP));
112     }
113
114     @Test
115     public void shouldProperlySetNetworkId() {
116         assertFieldSetProperly(WorkflowType.NETWORK, NETWORK_ID, workflowResourceIds::getNetworkId);
117         assertEquals(NETWORK_ID,
118                 WorkflowResourceIdsUtils.getResourceIdByWorkflowType(workflowResourceIds, WorkflowType.NETWORK));
119     }
120
121     @Test
122     public void shouldProperlySetNetworkCollectionId() {
123         assertFieldSetProperly(WorkflowType.NETWORKCOLLECTION, NETWORK_COLLECTION_ID,
124                 workflowResourceIds::getNetworkCollectionId);
125         assertEquals(NETWORK_COLLECTION_ID, WorkflowResourceIdsUtils.getResourceIdByWorkflowType(workflowResourceIds,
126                 WorkflowType.NETWORKCOLLECTION));
127     }
128
129     @Test
130     public void shouldProperlySetConfigurationId() {
131         assertFieldSetProperly(WorkflowType.CONFIGURATION, CONFIGURATION_ID, workflowResourceIds::getConfigurationId);
132         assertEquals(CONFIGURATION_ID,
133                 WorkflowResourceIdsUtils.getResourceIdByWorkflowType(workflowResourceIds, WorkflowType.CONFIGURATION));
134     }
135
136     @Test
137     public void shouldProperlySetInstanceGroupId() {
138         assertFieldSetProperly(WorkflowType.INSTANCE_GROUP, INSTANCE_GROUP_ID, workflowResourceIds::getInstanceGroupId);
139         assertEquals(INSTANCE_GROUP_ID,
140                 WorkflowResourceIdsUtils.getResourceIdByWorkflowType(workflowResourceIds, WorkflowType.INSTANCE_GROUP));
141     }
142
143     @Test
144     public void shouldPropertySetVnfInstanceName() {
145         assertFieldSetProperlyInstanceName(WorkflowType.VNF, VNF_INSTANCE_NAME,
146                 workflowResourceIds::getVnfInstanceName);
147     }
148
149     @Test
150     public void shouldPropertySetVfModuleInstanceName() {
151         assertFieldSetProperlyInstanceName(WorkflowType.VFMODULE, VF_MODULE_INSTANCE_NAME,
152                 workflowResourceIds::getVfModuleInstanceName);
153     }
154
155     @Test
156     public void shouldPropertySetPnfInstanceName() {
157         assertFieldSetProperlyInstanceName(WorkflowType.PNF, PNF_INSTANCE_NAME,
158                 workflowResourceIds::getPnfInstanceName);
159     }
160
161     private void assertFieldSetProperly(WorkflowType workflowType, String expectedId,
162             Supplier<String> testedObjectField) {
163         WorkflowResourceIdsUtils.setResourceIdByWorkflowType(workflowResourceIds, workflowType, expectedId);
164         assertEquals(expectedId, testedObjectField.get());
165     }
166
167     private void assertFieldSetProperlyInstanceName(WorkflowType workflowType, String expectedId,
168             Supplier<String> testedObjectField) {
169         WorkflowResourceIdsUtils.setInstanceNameByWorkflowType(workflowResourceIds, workflowType, expectedId);
170         assertEquals(expectedId, testedObjectField.get());
171     }
172
173
174
175 }