d1db3aadcdffaf813192592009b1b3e246aadb38
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / bpmn / infrastructure / service / composition / ChildServiceRequestBuilderTest.java
1 package org.onap.so.bpmn.infrastructure.service.composition;
2
3 import com.fasterxml.jackson.databind.DeserializationFeature;
4 import com.fasterxml.jackson.databind.ObjectMapper;
5 import org.junit.Assert;
6 import org.junit.Before;
7 import org.junit.Test;
8 import org.onap.so.bpmn.common.BuildingBlockExecution;
9 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
10 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
11 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
12 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
13 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
14 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
15 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestParameters;
16 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
17 import org.onap.so.serviceinstancebeans.CloudConfiguration;
18 import org.onap.so.serviceinstancebeans.InstanceDirection;
19 import org.onap.so.serviceinstancebeans.ModelInfo;
20 import org.onap.so.serviceinstancebeans.ModelType;
21 import org.onap.so.serviceinstancebeans.RelatedInstance;
22 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
23 import org.onap.so.serviceinstancebeans.RequestInfo;
24 import org.onap.so.serviceinstancebeans.Service;
25 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
26 import org.onap.so.serviceinstancebeans.SubscriberInfo;
27 import java.io.IOException;
28 import java.util.List;
29 import java.util.Map;
30 import java.util.UUID;
31 import static org.mockito.Mockito.doReturn;
32 import static org.mockito.Mockito.mock;
33
34 public class ChildServiceRequestBuilderTest {
35
36     private BuildingBlockExecution mockExecution;
37     private List<Map<String, Object>> userParamsExpected;
38
39     @Before
40     public void setUp() throws IOException {
41         String incomingRequest =
42                 "{\"requestDetails\":{\"subscriberInfo\":{\"globalSubscriberId\":\"ubuntu-customer\"},\"requestInfo\":{\"suppressRollback\":false,\"instanceName\":\"LcmDemo\",\"productFamilyId\":\"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\",\"requestorId\":\"portal\",\"source\":\"postman\"},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"123\",\"tenantId\":\"e2710e84063b421fab08189818761d55\",\"cloudOwner\":\"cloudOwner\"},\"requestParameters\":{\"subscriptionServiceType\":\"ubuntu\",\"userParams\":[{\"Homing_Solution\":\"none\"},{\"service\":{\"instanceParams\":[],\"resources\":{\"vnfs\":[{\"modelInfo\":{\"modelName\":\"UbuntuSriovVF\",\"modelVersionId\":\"5b5d07f0-7449-4eec-95eb-531ddef18240\",\"modelInvariantUuid\":\"9ed17b82-11f3-44cc-a86f-32739360617e\",\"modelVersion\":\"1.0\",\"modelCustomizationId\":\"ae139d3d-b2ae-462c-b09d-c85bdc2e3073\",\"modelInstanceName\":\"UbuntuSriovVF0\"},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"123\",\"tenantId\":\"e2710e84063b421fab08189818761d55\",\"cloudOwner\":\"cloudOwner\"},\"platform\":{\"platformName\":\"openstack\"},\"lineOfBusiness\":{\"lineOfBusinessName\":\"wireless\"},\"productFamilyId\":\"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\",\"instanceName\":\"vnf-instanceName\",\"instanceParams\":[{\"vnf-name\":\"vnf-vnf-name\",\"vnf_name\":\"UbuntuVNFName\"}],\"vfModules\":[{\"modelInfo\":{\"modelName\":\"Ubuntusriovvf..base..module-0\",\"modelVersionId\":\"f4ef24dd-7a4e-4eef-83b7-c58f2f3e36e4\",\"modelInvariantUuid\":\"719aab1e-c551-46e0-87e8-a78dcd7891da\",\"modelVersion\":\"1\",\"modelCustomizationId\":\"dea421a8-c1b8-4044-8ca1-58c30de3b315\"},\"instanceName\":\"lcm-demo-network-1\",\"instanceParams\":[{\"name\":\"lcm-demo-network-1\",\"cidr\":\"10.10.10.0/24\"}]},{\"modelInfo\":{\"modelName\":\"Ubuntusriovvf..ubuntu-vf-module..module-1\",\"modelVersionId\":\"112f2de4-4f09-4567-9de1-2d271cb6e164\",\"modelInvariantUuid\":\"ba6d2e11-4e82-4bb8-9d52-a2962a263a09\",\"modelVersion\":\"1\",\"modelCustomizationId\":\"7bc2649e-b96b-44ec-adfe-4a6167f3034e\"},\"instanceName\":\"lcm-demo-ubuntu-1\",\"instanceParams\":[{\"name\":\"lcm-demo-ubuntu-1\",\"network_mgmt\":\"networkMgmt\",\"key_name\":\"demo\",\"network_name\":\"lcm-demo-network-1\",\"image_name\":\"imageName\",\"flavor_name\":\"m1.small\"}]}]}],\"services\":[{\"instanceParams\":[],\"resources\":{\"vnfs\":[{\"modelInfo\":{\"modelName\":\"UbuntuSriovVF\",\"modelVersionId\":\"5b5d07f0-7449-4eec-95eb-531ddef18240\",\"modelInvariantUuid\":\"9ed17b82-11f3-44cc-a86f-32739360617e\",\"modelVersion\":\"1.0\",\"modelCustomizationId\":\"ae139d3d-b2ae-462c-b09d-c85bdc2e3073\",\"modelInstanceName\":\"UbuntuSriovVF0\"},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"123\",\"tenantId\":\"e2710e84063b421fab08189818761d55\",\"cloudOwner\":\"cloudOwner\"},\"platform\":{\"platformName\":\"openstack\"},\"lineOfBusiness\":{\"lineOfBusinessName\":\"wireless\"},\"productFamilyId\":\"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\",\"instanceName\":\"vnf-instanceName\",\"instanceParams\":[{\"vnf-name\":\"vnf-vnf-name\",\"vnf_name\":\"UbuntuVNFName\"}],\"vfModules\":[{\"modelInfo\":{\"modelName\":\"Ubuntusriovvf..base..module-0\",\"modelVersionId\":\"f4ef24dd-7a4e-4eef-83b7-c58f2f3e36e4\",\"modelInvariantUuid\":\"719aab1e-c551-46e0-87e8-a78dcd7891da\",\"modelVersion\":\"1\",\"modelCustomizationId\":\"dea421a8-c1b8-4044-8ca1-58c30de3b315\"},\"instanceName\":\"lcm-demo-network-1\",\"instanceParams\":[{\"name\":\"lcm-demo-network-1\",\"cidr\":\"10.10.10.0/24\"}]},{\"modelInfo\":{\"modelName\":\"Ubuntusriovvf..ubuntu-vf-module..module-1\",\"modelVersionId\":\"112f2de4-4f09-4567-9de1-2d271cb6e164\",\"modelInvariantUuid\":\"ba6d2e11-4e82-4bb8-9d52-a2962a263a09\",\"modelVersion\":\"1\",\"modelCustomizationId\":\"7bc2649e-b96b-44ec-adfe-4a6167f3034e\"},\"instanceName\":\"lcm-demo-ubuntu-1\",\"instanceParams\":[{\"name\":\"lcm-demo-ubuntu-1\",\"network_mgmt\":\"networkMgmt\",\"key_name\":\"demo\",\"network_name\":\"lcm-demo-network-1\",\"image_name\":\"imageName\",\"flavor_name\":\"m1.small\"}]}]}]},\"modelInfo\":{\"modelVersion\":\"2.0\",\"modelVersionId\":\"5bc2b6b3-c9bb-49a1-89c8-4dac5b236d52\",\"modelInvariantId\":\"a316f8fa-c886-483f-801b-6663e35b836c\",\"modelCustomizationId\":\"cs1-svc-modelCustomizationId\",\"modelName\":\"GuilinLcmSVC\",\"modelType\":\"service\"},\"instanceName\":\"service1-instanceName\"},{\"instanceParams\":[],\"resources\":{\"vnfs\":[{\"modelInfo\":{\"modelName\":\"UbuntuSriovVF\",\"modelVersionId\":\"5b5d07f0-7449-4eec-95eb-531ddef18240\",\"modelInvariantUuid\":\"9ed17b82-11f3-44cc-a86f-32739360617e\",\"modelVersion\":\"1.0\",\"modelCustomizationId\":\"ae139d3d-b2ae-462c-b09d-c85bdc2e3073\",\"modelInstanceName\":\"UbuntuSriovVF0\"},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"123\",\"tenantId\":\"e2710e84063b421fab08189818761d55\",\"cloudOwner\":\"cloudOwner\"},\"platform\":{\"platformName\":\"openstack\"},\"lineOfBusiness\":{\"lineOfBusinessName\":\"wireless\"},\"productFamilyId\":\"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\",\"instanceName\":\"vnf-instanceName\",\"instanceParams\":[{\"vnf-name\":\"vnf-vnf-name\",\"vnf_name\":\"UbuntuVNFName\"}],\"vfModules\":[{\"modelInfo\":{\"modelName\":\"Ubuntusriovvf..base..module-0\",\"modelVersionId\":\"f4ef24dd-7a4e-4eef-83b7-c58f2f3e36e4\",\"modelInvariantUuid\":\"719aab1e-c551-46e0-87e8-a78dcd7891da\",\"modelVersion\":\"1\",\"modelCustomizationId\":\"dea421a8-c1b8-4044-8ca1-58c30de3b315\"},\"instanceName\":\"lcm-demo-network-1\",\"instanceParams\":[{\"name\":\"lcm-demo-network-1\",\"cidr\":\"10.10.10.0/24\"}]},{\"modelInfo\":{\"modelName\":\"Ubuntusriovvf..ubuntu-vf-module..module-1\",\"modelVersionId\":\"112f2de4-4f09-4567-9de1-2d271cb6e164\",\"modelInvariantUuid\":\"ba6d2e11-4e82-4bb8-9d52-a2962a263a09\",\"modelVersion\":\"1\",\"modelCustomizationId\":\"7bc2649e-b96b-44ec-adfe-4a6167f3034e\"},\"instanceName\":\"lcm-demo-ubuntu-1\",\"instanceParams\":[{\"name\":\"lcm-demo-ubuntu-1\",\"network_mgmt\":\"networkMgmt\",\"key_name\":\"demo\",\"network_name\":\"lcm-demo-network-1\",\"image_name\":\"imageName\",\"flavor_name\":\"m1.small\"}]}]}]},\"modelInfo\":{\"modelVersion\":\"2.0\",\"modelVersionId\":\"5bc2b6b3-c9bb-49a1-89c8-4dac5b236d52\",\"modelInvariantId\":\"a316f8fa-c886-483f-801b-6663e35b836c\",\"modelCustomizationId\":\"cs1-svc-modelCustomizationId\",\"modelName\":\"GuilinLcmSVC\",\"modelType\":\"service\"},\"instanceName\":\"service2-instanceName\"}]},\"modelInfo\":{\"modelVersion\":\"2.0\",\"modelVersionId\":\"5bc2b6b3-c9bb-49a1-89c8-4dac5b236d52\",\"modelInvariantId\":\"a316f8fa-c886-483f-801b-6663e35b836c\",\"modelName\":\"GuilinLcmSVC\",\"modelType\":\"service\"}}}],\"aLaCarte\":false},\"project\":{\"projectName\":\"Project-UbuntuDemo\"},\"owningEntity\":{\"owningEntityId\":\"33a8b609-1cfe-4d19-8dc2-5b95b921de1e\",\"owningEntityName\":\"demo\"},\"modelInfo\":{\"modelVersion\":\"2.0\",\"modelVersionId\":\"5bc2b6b3-c9bb-49a1-89c8-4dac5b236d52\",\"modelInvariantId\":\"a316f8fa-c886-483f-801b-6663e35b836c\",\"modelName\":\"GuilinLcmSVC\",\"modelType\":\"service\"}}}";
43
44         ObjectMapper mapper = new ObjectMapper();
45         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
46
47         ServiceInstancesRequest request = mapper.readValue(incomingRequest, ServiceInstancesRequest.class);
48         userParamsExpected = request.getRequestDetails().getRequestParameters().getUserParams();
49         RequestContext context = new RequestContext();
50         RequestParameters parameters = new RequestParameters();
51         parameters.setUserParams(request.getRequestDetails().getRequestParameters().getUserParams());
52         context.setRequestParameters(parameters);
53         context.setProductFamilyId("FamilyId");
54         context.setSource("source");
55         context.setRequestorId("RequestOrId");
56
57         CloudRegion cloudRegion = new CloudRegion();
58         cloudRegion.setCloudOwner("CloudOwner");
59         cloudRegion.setLcpCloudRegionId("my-region-id");
60         cloudRegion.setTenantId("tenant-id");
61
62         Customer customer = new Customer();
63         customer.setGlobalCustomerId("GlobalCustomerId");
64         customer.setSubscriberName("SubscriberName");
65
66         ServiceInstance serviceInstance = new ServiceInstance();
67         OwningEntity owningEntity = new OwningEntity();
68         owningEntity.setOwningEntityId("owningEntityId");
69         owningEntity.setOwningEntityName("owningEntityName");
70         serviceInstance.setOwningEntity(owningEntity);
71
72         Project project = new Project();
73         project.setProjectName("projectName");
74         serviceInstance.setProject(project);
75
76         serviceInstance.setServiceInstanceId("serviceInstanceId");
77
78         GeneralBuildingBlock gbb = new GeneralBuildingBlock();
79         gbb.setCloudRegion(cloudRegion);
80         gbb.setCustomer(customer);
81         gbb.setRequestContext(context);
82         gbb.setServiceInstance(serviceInstance);
83         mockExecution = mock(BuildingBlockExecution.class);
84         doReturn(gbb).when(mockExecution).getGeneralBuildingBlock();
85     }
86
87     @Test
88     public void childServiceRequestBuilderTest() {
89
90         ServiceInstancesRequest sir = ChildServiceRequestBuilder.getInstance(mockExecution, "service1-instanceName")
91                 .setParentRequestId(mockExecution.getGeneralBuildingBlock().getRequestContext().getMsoRequestId())
92                 .setCorrelationId(UUID.randomUUID().toString()).setChildSvcInstanceId("childInstanceId").build();
93
94         Assert.assertEquals("childInstanceId", sir.getServiceInstanceId());
95
96         // modelInfo
97         ModelInfo modelInfo = sir.getRequestDetails().getModelInfo();
98         Assert.assertEquals("a316f8fa-c886-483f-801b-6663e35b836c", modelInfo.getModelInvariantId());
99         Assert.assertEquals(ModelType.service, modelInfo.getModelType());
100         Assert.assertEquals("GuilinLcmSVC", modelInfo.getModelName());
101         Assert.assertEquals("2.0", modelInfo.getModelVersion());
102         Assert.assertEquals("cs1-svc-modelCustomizationId", modelInfo.getModelCustomizationId());
103         Assert.assertEquals("5bc2b6b3-c9bb-49a1-89c8-4dac5b236d52", modelInfo.getModelVersionId());
104         Assert.assertEquals("5bc2b6b3-c9bb-49a1-89c8-4dac5b236d52", modelInfo.getModelUuid());
105         Assert.assertEquals("a316f8fa-c886-483f-801b-6663e35b836c", modelInfo.getModelInvariantUuid());
106
107         // requestInfo
108         RequestInfo requestInfo = sir.getRequestDetails().getRequestInfo();
109         Assert.assertNotNull(requestInfo.getCorrelator());
110         Assert.assertEquals("FamilyId", requestInfo.getProductFamilyId());
111         Assert.assertEquals("source", requestInfo.getSource());
112         Assert.assertEquals("service1-instanceName", requestInfo.getInstanceName());
113         Assert.assertEquals(false, requestInfo.getSuppressRollback());
114         Assert.assertEquals("RequestOrId", requestInfo.getRequestorId());
115
116         RelatedInstanceList[] relatedInstanceList = sir.getRequestDetails().getRelatedInstanceList();
117         Assert.assertEquals(1, relatedInstanceList.length);
118         RelatedInstance relatedInstance = relatedInstanceList[0].getRelatedInstance();
119         Assert.assertEquals("serviceInstanceId", relatedInstance.getInstanceId());
120         Assert.assertEquals(InstanceDirection.source, relatedInstance.getInstanceDirection());
121
122         ModelInfo parentModel = relatedInstance.getModelInfo();
123         Assert.assertEquals("a316f8fa-c886-483f-801b-6663e35b836c", parentModel.getModelInvariantId());
124         Assert.assertEquals(ModelType.service, parentModel.getModelType());
125         Assert.assertEquals("GuilinLcmSVC", parentModel.getModelName());
126         Assert.assertEquals("2.0", parentModel.getModelVersion());
127         Assert.assertEquals("5bc2b6b3-c9bb-49a1-89c8-4dac5b236d52", parentModel.getModelVersionId());
128         Assert.assertEquals("5bc2b6b3-c9bb-49a1-89c8-4dac5b236d52", parentModel.getModelUuid());
129         Assert.assertEquals("a316f8fa-c886-483f-801b-6663e35b836c", parentModel.getModelInvariantUuid());
130
131         SubscriberInfo subsciberInfo = sir.getRequestDetails().getSubscriberInfo();
132         Assert.assertEquals("GlobalCustomerId", subsciberInfo.getGlobalSubscriberId());
133         Assert.assertEquals("SubscriberName", subsciberInfo.getSubscriberName());
134
135         CloudConfiguration cloudConfiguration = sir.getRequestDetails().getCloudConfiguration();
136         Assert.assertEquals("tenant-id", cloudConfiguration.getTenantId());
137         Assert.assertEquals("CloudOwner", cloudConfiguration.getCloudOwner());
138         Assert.assertEquals("my-region-id", cloudConfiguration.getLcpCloudRegionId());
139
140         org.onap.so.serviceinstancebeans.RequestParameters requestParameters =
141                 sir.getRequestDetails().getRequestParameters();
142         Assert.assertEquals(2, requestParameters.getUserParams().size());
143         Assert.assertEquals(userParamsExpected.get(0), requestParameters.getUserParams().get(0));
144
145         ObjectMapper mapper = new ObjectMapper();
146         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
147
148         try {
149             String expectedChildService =
150                     mapper.writeValueAsString(getChildService(userParamsExpected, "service1-instanceName"));
151             String actualChildService =
152                     mapper.writeValueAsString(requestParameters.getUserParams().get(1).get("service"));
153             Assert.assertEquals(expectedChildService, actualChildService);
154         } catch (Exception e) {
155             Assert.fail();
156         }
157
158         org.onap.so.serviceinstancebeans.Project project = sir.getRequestDetails().getProject();
159         Assert.assertEquals("projectName", project.getProjectName());
160
161         org.onap.so.serviceinstancebeans.OwningEntity owningEntity = sir.getRequestDetails().getOwningEntity();
162         Assert.assertEquals("owningEntityId", owningEntity.getOwningEntityId());
163         Assert.assertEquals("owningEntityName", owningEntity.getOwningEntityName());
164     }
165
166     @Test
167     public void childServiceCloudConfigurationRequestBuilderTest() throws IOException {
168         String incomingRequest =
169                 "{\"requestDetails\":{\"subscriberInfo\":{\"globalSubscriberId\":\"ubuntu-customer\"},\"requestInfo\":{\"suppressRollback\":false,\"instanceName\":\"onap-test-parent-child-service\",\"productFamilyId\":\"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\",\"requestorId\":\"portal\",\"source\":\"postman\"},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"215\",\"tenantId\":\"e2710e84063b421fab08189818761d55\",\"cloudOwner\":\"iaas\"},\"requestParameters\":{\"subscriptionServiceType\":\"ubuntu\",\"userParams\":[{\"Homing_Solution\":\"none\"},{\"service\":{\"instanceParams\":[],\"resources\":{\"services\":[{\"instanceParams\":[],\"resources\":{},\"modelInfo\":{\"modelVersion\":\"3.0\",\"modelVersionId\":\"872efe6d-c787-4caf-b6f8-3234a7bfc5cf\",\"modelInvariantId\":\"a316f8fa-c886-483f-801b-6663e35b836c\",\"modelName\":\"GuilinLcmSVC\",\"modelType\":\"service\"},\"instanceName\":\"service1-instanceName-child\",\"cloudConfiguration\":{\"lcpCloudRegionId\":\"test\",\"tenantId\":\"1234567890\",\"cloudOwner\":\"demo\"}},{\"instanceParams\":[],\"resources\":{},\"modelInfo\":{\"modelVersion\":\"3.0\",\"modelVersionId\":\"872efe6d-c787-4caf-b6f8-3234a7bfc5cf\",\"modelInvariantId\":\"a316f8fa-c886-483f-801b-6663e35b836c\",\"modelName\":\"GuilinLcmSVC\",\"modelType\":\"service\"},\"instanceName\":\"service2-instanceName-child\"}]},\"modelInfo\":{\"modelVersion\":\"3.0\",\"modelVersionId\":\"872efe6d-c787-4caf-b6f8-3234a7bfc5cf\",\"modelInvariantId\":\"a316f8fa-c886-483f-801b-6663e35b836c\",\"modelName\":\"GuilinLcmSVC\",\"modelType\":\"service\"}}}],\"aLaCarte\":false},\"project\":{\"projectName\":\"Project-UbuntuDemo\"},\"owningEntity\":{\"owningEntityId\":\"33a8b609-1cfe-4d19-8dc2-5b95b921de1e\",\"owningEntityName\":\"seb\"},\"modelInfo\":{\"modelVersion\":\"3.0\",\"modelVersionId\":\"872efe6d-c787-4caf-b6f8-3234a7bfc5cf\",\"modelInvariantId\":\"a316f8fa-c886-483f-801b-6663e35b836c\",\"modelName\":\"GuilinLcmSVC\",\"modelType\":\"service\"}}}";
170
171         ObjectMapper mapper = new ObjectMapper();
172         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
173
174         ServiceInstancesRequest request = mapper.readValue(incomingRequest, ServiceInstancesRequest.class);
175
176         RequestContext context = new RequestContext();
177         RequestParameters parameters = new RequestParameters();
178         parameters.setUserParams(request.getRequestDetails().getRequestParameters().getUserParams());
179         context.setRequestParameters(parameters);
180         context.setProductFamilyId("FamilyId");
181         context.setSource("source");
182         context.setRequestorId("RequestOrId");
183
184         CloudRegion cloudRegion = new CloudRegion();
185         cloudRegion.setCloudOwner("CloudOwner");
186         cloudRegion.setLcpCloudRegionId("my-region-id");
187         cloudRegion.setTenantId("tenant-id");
188
189         ServiceInstance serviceInstance = new ServiceInstance();
190         OwningEntity owningEntity = new OwningEntity();
191         owningEntity.setOwningEntityId("owningEntityId");
192         owningEntity.setOwningEntityName("owningEntityName");
193         serviceInstance.setOwningEntity(owningEntity);
194
195         GeneralBuildingBlock gbb = new GeneralBuildingBlock();
196         gbb.setCloudRegion(cloudRegion);
197         gbb.setRequestContext(context);
198         gbb.setServiceInstance(serviceInstance);
199         mockExecution = mock(BuildingBlockExecution.class);
200         doReturn(gbb).when(mockExecution).getGeneralBuildingBlock();
201
202         ServiceInstancesRequest sir = ChildServiceRequestBuilder
203                 .getInstance(mockExecution, "service1-instanceName-child")
204                 .setParentRequestId(mockExecution.getGeneralBuildingBlock().getRequestContext().getMsoRequestId())
205                 .setCorrelationId(UUID.randomUUID().toString()).setChildSvcInstanceId("childInstanceId").build();
206
207         Assert.assertEquals("childInstanceId", sir.getServiceInstanceId());
208
209         CloudConfiguration cloudConfiguration = sir.getRequestDetails().getCloudConfiguration();
210         Assert.assertEquals("1234567890", cloudConfiguration.getTenantId());
211         Assert.assertEquals("demo", cloudConfiguration.getCloudOwner());
212         Assert.assertEquals("test", cloudConfiguration.getLcpCloudRegionId());
213     }
214
215     private Service getChildService(List<Map<String, Object>> userParams, String serviceInstanceName)
216             throws IOException {
217         String USERPARAMSERVICE = "service";
218         for (Map<String, Object> params : userParams) {
219             if (params.containsKey(USERPARAMSERVICE)) {
220                 ObjectMapper obj = new ObjectMapper();
221                 String input = obj.writeValueAsString(params.get(USERPARAMSERVICE));
222                 Service validate = obj.readValue(input, Service.class);
223                 if (validate.getResources().getServices() != null) {
224                     for (Service service : validate.getResources().getServices()) {
225                         if (serviceInstanceName.equals(service.getInstanceName())) {
226                             return service;
227                         }
228                     }
229                 }
230             }
231         }
232         return null;
233     }
234
235
236 }