Support instantiation of same model vnfs/vf-modules
[so.git] / bpmn / MSOCommonBPMN / src / test / java / org / onap / so / client / cds / VnfCDSRequestProviderTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2020 Nordix
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.onap.so.client.cds;
21
22
23 import com.fasterxml.jackson.databind.JsonNode;
24 import com.fasterxml.jackson.databind.ObjectMapper;
25 import org.junit.Test;
26 import org.mockito.InjectMocks;
27 import org.mockito.Mock;
28 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
29 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
30 import static org.assertj.core.api.Assertions.assertThat;
31 import static org.junit.Assert.assertNotNull;
32 import static org.junit.Assert.assertTrue;
33 import static org.mockito.Mockito.*;
34
35 public class VnfCDSRequestProviderTest extends AbstractVnfCDSRequestProviderTest {
36
37     @InjectMocks
38     private VnfCDSRequestProvider vnfCDSRequestProvider;
39
40     @Mock
41     protected ConfigureInstanceParamsForVnf configureInstanceParamsForVnf;
42
43     @Test
44     public void testBuildRequestPayloadAssignActionVnf() throws Exception {
45         // given
46         setScopeAndAction(VNF_SCOPE, ASSIGN_ACTION);
47         ServiceInstance instance = createServiceInstance();
48
49         doReturn(instance).when(extractPojosForBB).extractByKey(buildingBlockExecution,
50                 ResourceKey.SERVICE_INSTANCE_ID);
51         doReturn(createGenericVnf()).when(extractPojosForBB).extractByKey(buildingBlockExecution,
52                 ResourceKey.GENERIC_VNF_ID);
53         // when
54         vnfCDSRequestProvider.setExecutionObject(buildingBlockExecution);
55         String payload = vnfCDSRequestProvider.buildRequestPayload(ASSIGN_ACTION).get();
56
57         // verify
58         ObjectMapper mapper = new ObjectMapper();
59         JsonNode payloadJson = mapper.readTree(payload);
60         JsonNode requestNode = payloadJson.findValue("configAssign-request");
61         JsonNode propertiesNode = payloadJson.findValue("configAssign-properties");
62
63         assertNotNull(payload);
64         assertTrue(verfiyJsonFromString(payload));
65         assertThat(requestNode.get("resolution-key").asText()).isEqualTo(GENERIC_VNF_NAME);
66         assertThat(propertiesNode.get("service-instance-id").asText()).isEqualTo(SERVICE_INSTANCE_ID);
67         assertThat(propertiesNode.get("service-model-uuid").asText()).isEqualTo(SERVICE_MODEL_UUID);
68         assertThat(propertiesNode.get("vnf-id").asText()).isEqualTo(GENERIC_VNF_ID);
69         assertThat(propertiesNode.get("vnf-customization-uuid").asText()).isEqualTo(VNF_MODEL_CUSTOMIZATION_UUID);
70     }
71
72     @Test
73     public void testBuildRequestPayloadDeployActionVnf() throws Exception {
74         // given
75         setScopeAndAction(VNF_SCOPE, DEPLOY_ACTION);
76         ServiceInstance instance = createServiceInstance();
77
78         doReturn(instance).when(extractPojosForBB).extractByKey(buildingBlockExecution,
79                 ResourceKey.SERVICE_INSTANCE_ID);
80         doReturn(createGenericVnf()).when(extractPojosForBB).extractByKey(buildingBlockExecution,
81                 ResourceKey.GENERIC_VNF_ID);
82
83         // when
84         vnfCDSRequestProvider.setExecutionObject(buildingBlockExecution);
85         String payload = vnfCDSRequestProvider.buildRequestPayload(DEPLOY_ACTION).get();
86
87         // verify
88         ObjectMapper mapper = new ObjectMapper();
89         JsonNode payloadJson = mapper.readTree(payload);
90         JsonNode requestNode = payloadJson.findValue("configDeploy-request");
91         JsonNode propertiesNode = payloadJson.findValue("configDeploy-properties");
92
93         assertNotNull(payload);
94         assertTrue(verfiyJsonFromString(payload));
95         assertThat(requestNode.get("resolution-key").asText()).isEqualTo(GENERIC_VNF_NAME);
96         assertThat(propertiesNode.get("service-instance-id").asText()).isEqualTo(SERVICE_INSTANCE_ID);
97         assertThat(propertiesNode.get("service-model-uuid").asText()).isEqualTo(SERVICE_MODEL_UUID);
98         assertThat(propertiesNode.get("vnf-id").asText()).isEqualTo(GENERIC_VNF_ID);
99         assertThat(propertiesNode.get("vnf-customization-uuid").asText()).isEqualTo(VNF_MODEL_CUSTOMIZATION_UUID);
100     }
101 }