[SO] Pending Create changes for SO-API and BPMN-INFRA to support CNF's through ASD
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / bpmn / infrastructure / adapter / cnfm / tasks / StubbedBuildingBlockExecution.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2023 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.so.bpmn.infrastructure.adapter.cnfm.tasks;
22
23 import java.io.Serializable;
24 import java.util.ArrayList;
25 import java.util.Collections;
26 import java.util.HashMap;
27 import java.util.List;
28 import java.util.Map;
29 import java.util.UUID;
30 import org.jetbrains.kotlin.codegen.intrinsics.LateinitIsInitialized;
31 import org.onap.so.bpmn.common.BuildingBlockExecution;
32 import org.onap.so.bpmn.common.exceptions.RequiredExecutionVariableExeception;
33 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
34 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
35 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
36 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
37 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
38 import org.onap.so.serviceinstancebeans.CloudConfiguration;
39 import org.onap.so.serviceinstancebeans.ModelInfo;
40 import org.onap.so.serviceinstancebeans.RequestDetails;
41 import org.onap.so.serviceinstancebeans.RequestInfo;
42 import org.onap.so.serviceinstancebeans.RequestParameters;
43
44 /**
45  *
46  * @author Raviteja Karumuri (raviteja.karumuri@est.tech)
47  *
48  */
49 public class StubbedBuildingBlockExecution implements BuildingBlockExecution {
50
51     private static final String CLOUD_OWNER = "CloudOwner";
52     private static final String BUILDING_BLOCK = "buildingBlock";
53     private static final String LCP_CLOUD_REGION_ID = "RegionOne";
54     private static final String MODEL_VERSION_ID = UUID.randomUUID().toString();
55     private static final String SERVICE_INSTANCE_ID = UUID.randomUUID().toString();
56     private static final String DEPLOYMENT_ID = UUID.randomUUID().toString();
57     private static final String SERVICE_INSTANCE_NAME = "test";
58     private static final String INSTANCE_NAME = "instanceTest";
59     private static final String TENANT_ID = UUID.randomUUID().toString();
60     private final Map<String, Serializable> execution = new HashMap<>();
61     private final GeneralBuildingBlock generalBuildingBlock;
62
63     StubbedBuildingBlockExecution() {
64
65         generalBuildingBlock = getGeneralBuildingBlockValue();
66         setVariable(BUILDING_BLOCK, getExecuteBuildingBlock());
67     }
68
69     @Override
70     public GeneralBuildingBlock getGeneralBuildingBlock() {
71         return generalBuildingBlock;
72     }
73
74     @SuppressWarnings("unchecked")
75     @Override
76     public <T> T getVariable(final String key) {
77         return (T) execution.get(key);
78     }
79
80     @Override
81     public <T> T getRequiredVariable(final String key) throws RequiredExecutionVariableExeception {
82         return null;
83     }
84
85     @Override
86     public void setVariable(final String key, final Serializable value) {
87         execution.put(key, value);
88     }
89
90     @Override
91     public Map<ResourceKey, String> getLookupMap() {
92         return Collections.emptyMap();
93     }
94
95     @Override
96     public String getFlowToBeCalled() {
97         return null;
98     }
99
100     @Override
101     public int getCurrentSequence() {
102         return 0;
103     }
104
105     public static String getTenantId() {
106         return TENANT_ID;
107     }
108
109     private GeneralBuildingBlock getGeneralBuildingBlockValue() {
110         final GeneralBuildingBlock buildingBlock = new GeneralBuildingBlock();
111         buildingBlock.setServiceInstance(getServiceInstance());
112         return buildingBlock;
113     }
114
115     private ExecuteBuildingBlock getExecuteBuildingBlock() {
116         ExecuteBuildingBlock executeBuildingBlock = new ExecuteBuildingBlock();
117         executeBuildingBlock.setRequestDetails(getRequestDetails());
118         return executeBuildingBlock;
119     }
120
121     private RequestDetails getRequestDetails() {
122         RequestDetails requestDetails = new RequestDetails();
123         requestDetails.setModelInfo(getModelInfo());
124         requestDetails.setCloudConfiguration(getCloudConfiguration());
125         requestDetails.setRequestInfo(getRequestInfo());
126         requestDetails.setRequestParameters(getRequestParameters());
127         return requestDetails;
128     }
129
130     private ModelInfo getModelInfo() {
131         ModelInfo modelInfo = new ModelInfo();
132         modelInfo.setModelVersionId(MODEL_VERSION_ID);
133         return modelInfo;
134     }
135
136     private ServiceInstance getServiceInstance() {
137         ServiceInstance serviceInstance = new ServiceInstance();
138         serviceInstance.setServiceInstanceId(SERVICE_INSTANCE_ID);
139         serviceInstance.setServiceInstanceName(SERVICE_INSTANCE_NAME);
140         return serviceInstance;
141     }
142
143     private RequestInfo getRequestInfo() {
144         RequestInfo requestInfo = new RequestInfo();
145         requestInfo.setInstanceName(INSTANCE_NAME);
146         return requestInfo;
147     }
148
149     private RequestParameters getRequestParameters() {
150         Map<String, Object> deploymentItemMap = new HashMap<>();
151         deploymentItemMap.put("deploymentItemsId", DEPLOYMENT_ID);
152         deploymentItemMap.put("lifecycleParameterKeyValues", new Object());
153         List<Object> deploymentItems = new ArrayList<>();
154         deploymentItems.add(deploymentItemMap);
155         Map<String, Object> userParamsMap = new HashMap<>();
156         userParamsMap.put("deploymentItems", deploymentItems);
157         userParamsMap.put("namespace", "Namespace");
158         List<Map<String, Object>> userParams = new ArrayList<>();
159         userParams.add(userParamsMap);
160         RequestParameters requestParameters = new RequestParameters();
161         requestParameters.setUserParams(userParams);
162         return requestParameters;
163     }
164
165     private CloudConfiguration getCloudConfiguration() {
166         final CloudConfiguration cloudConfiguration = new CloudConfiguration();
167         cloudConfiguration.setCloudOwner(CLOUD_OWNER);
168         cloudConfiguration.setLcpCloudRegionId(LCP_CLOUD_REGION_ID);
169         cloudConfiguration.setTenantId(TENANT_ID);
170         return cloudConfiguration;
171     }
172
173 }