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