2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T 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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.ci.tests.execute.product;
23 import org.junit.Rule;
24 import org.junit.rules.TestName;
25 import org.openecomp.sdc.be.dao.api.ActionStatus;
26 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
27 import org.openecomp.sdc.be.model.*;
28 import org.openecomp.sdc.ci.tests.api.ComponentInstanceBaseTest;
29 import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
30 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
31 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
32 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
33 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
34 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
35 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
36 import org.openecomp.sdc.ci.tests.utils.rest.*;
37 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
38 import org.testng.annotations.BeforeMethod;
39 import org.testng.annotations.Test;
41 import java.util.ArrayList;
42 import java.util.List;
44 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.*;
45 import static org.testng.AssertJUnit.assertEquals;
46 import static org.testng.AssertJUnit.assertTrue;
48 public class ChangeServiceInstanceVersionTest extends ComponentInstanceBaseTest {
50 protected ArtifactReqDetails heatArtifactDetails;
51 public String firstVfInstanceUniqueId;
52 public String firstVfInstanceName;
53 public String secondVfInstanceUniqueId;
54 public String secoundVfInstanceName;
55 public String serviceInstanceToReplaceUniqueId;
56 public String expectedServiceName;
57 public String expectedPosX;
58 public String expectedPosY;
59 public String actualServiceInstanceName;
60 public String actualPosX;
61 public String actualPosY;
64 public static TestName name = new TestName();
66 public ChangeServiceInstanceVersionTest() {
67 super(name, ChangeServiceInstanceVersionTest.class.getName());
71 public void before() throws Exception {
72 firstVfInstanceName = null;
73 secoundVfInstanceName = null;
74 firstVfInstanceUniqueId = null;
75 secondVfInstanceUniqueId = null;
76 serviceInstanceToReplaceUniqueId = null;
77 expectedServiceName = null;
80 actualServiceInstanceName = null;
87 private void createComponents() throws Exception {
88 heatArtifactDetails = ElementFactory.getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
89 createAtomicResource(resourceDetailsVFC_01);
90 changeResourceStateToCertified(resourceDetailsVFC_01);
91 createAtomicResource(resourceDetailsCP_01);
92 changeResourceStateToCertified(resourceDetailsCP_01);
93 createAtomicResource(resourceDetailsVL_01);
94 changeResourceStateToCertified(resourceDetailsVL_01);
95 createAtomicResource(resourceDetailsVFC_02);
96 changeResourceStateToCertified(resourceDetailsVFC_02);
97 createAtomicResource(resourceDetailsCP_02);
98 changeResourceStateToCertified(resourceDetailsCP_02);
99 createAtomicResource(resourceDetailsVL_02);
100 changeResourceStateToCertified(resourceDetailsVL_02);
101 createVF(resourceDetailsVF_02);
102 createVF(resourceDetailsVF_01);
103 // create check-In services
104 createService(serviceDetails_01);
105 createService(serviceDetails_02);
106 createService(serviceDetails_03);
107 createProduct(productDetails_01);
108 createProduct(productDetails_02);
110 // add resourceDetailsCP_01 ,resourceDetailsVFC_01 and
111 // resourceDetailsCP_01 to resourceDetailsVF_01 and certify
112 // resourceDetailsVF_01
113 certifyVf(resourceDetailsVF_01, resourceDetailsVFC_02, resourceDetailsCP_01);
114 // add resourceDetailsCP_02 ,resourceDetailsVFC_02 and
115 // resourceDetailsVL_02 to resourceDetailsVF_02 and certify
116 // resourceDetailsVF_02
117 certifyVf(resourceDetailsVF_02, resourceDetailsVFC_02, resourceDetailsCP_02);
118 RestResponse createVFInstanceResponse = createVFInstanceDuringSetup(serviceDetails_01, resourceDetailsVF_01,
119 sdncDesignerDetails); // serviceDetails_01 has certified
120 // resourceDetailsVF_01
121 firstVfInstanceName = ResponseParser.getNameFromResponse(createVFInstanceResponse);
122 createVFInstanceResponse = createVFInstanceDuringSetup(serviceDetails_02, resourceDetailsVF_02,
123 sdncDesignerDetails); // serviceDetails_01 has certified
124 // resourceDetailsVF_02
125 secoundVfInstanceName = ResponseParser.getUniqueIdFromResponse(createVFInstanceResponse);
126 RestResponse restResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
127 LifeCycleStatesEnum.CHECKIN);
128 ResourceRestUtils.checkSuccess(restResponse);
129 restResponse = LifecycleRestUtils.changeServiceState(serviceDetails_02, sdncDesignerDetails,
130 LifeCycleStatesEnum.CHECKIN);
131 ResourceRestUtils.checkSuccess(restResponse);
135 public void changeServiceInstanceVersionByPm() throws Exception {
136 // Adding service instance (serviceDetails_01) to product without saving
138 RestResponse createServiceInstanceResp = createServiceInstanceDuringSetup(productDetails_01, serviceDetails_01,
140 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
141 String firstServiceInstanceNormalizedName = ResponseParser
142 .getValueFromJsonResponse(createServiceInstanceResp.getResponse(), "normalizedName");
143 // Adding service instance (serviceDetails_02) to product AND ---> Save
145 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
146 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
148 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
149 LifeCycleStatesEnum.CHECKIN);
150 ProductRestUtils.checkSuccess(changeStatusResponse);
151 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
152 // Checkout service [0.2]
153 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
154 LifeCycleStatesEnum.CHECKOUT);
155 ResourceRestUtils.checkSuccess(changeStatusResponse);
156 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
157 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
158 // get the new VF instance uniqueId after checkout service
159 RestResponse getServiceResponse = ServiceRestUtils.getService(serviceDetails_01.getUniqueId(), sdncPmDetails1);
160 Service service = ResponseParser.parseToObjectUsingMapper(getServiceResponse.getResponse(), Service.class);
161 List<ComponentInstance> serviceComponentInstances = service.getComponentInstances();
162 for (ComponentInstance component : serviceComponentInstances) {
163 if (component.getName().equals(firstVfInstanceName)) {
164 firstVfInstanceUniqueId = component.getUniqueId();
167 assertTrue(firstVfInstanceUniqueId != null);
168 // delete resource instance (resourceDetailsVF_01) from Service
169 RestResponse deleteVfFromServiceResponse = deleteVFInstanceDuringSetup(firstVfInstanceUniqueId,
170 serviceDetails_01, sdncDesignerDetails);
171 assertTrue(deleteVfFromServiceResponse.getErrorCode() == STATUS_CODE_SUCCESS_DELETE);
172 // Add different VF instance (resourceDetailsVF_02) to Service
173 RestResponse restResponse = createVFInstanceDuringSetup(serviceDetails_01, resourceDetailsVF_02,
174 sdncDesignerDetails);
175 ResourceRestUtils.checkCreateResponse(restResponse);
176 // Check-In service [0.2]
177 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
178 LifeCycleStatesEnum.CHECKIN);
179 ResourceRestUtils.checkSuccess(changeStatusResponse);
181 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
182 LifeCycleStatesEnum.CHECKOUT);
183 ProductRestUtils.checkSuccess(changeStatusResponse);
184 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
185 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
186 // get service instance new uniqueId , name and position after checkout
188 RestResponse getProductResponse = ProductRestUtils.getProduct(productNewUniqueId, sdncPmDetails1.getUserId());
189 Product product = ResponseParser.parseToObjectUsingMapper(getProductResponse.getResponse(), Product.class);
190 List<ComponentInstance> componentInstances = product.getComponentInstances();
191 for (ComponentInstance component : componentInstances) {
192 if (component.getNormalizedName().equals(firstServiceInstanceNormalizedName)) {
193 serviceInstanceToReplaceUniqueId = component.getUniqueId();
194 expectedServiceName = component.getName();
195 expectedPosX = component.getPosX();
196 expectedPosY = component.getPosY();
199 assertTrue(serviceInstanceToReplaceUniqueId != null);
200 // change service instance to newer version
201 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
202 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncPmDetails1, ComponentTypeEnum.PRODUCT, true);
203 ProductRestUtils.checkSuccess(changeServiceInstanceVersionResponse);
204 actualServiceInstanceName = ResponseParser.getNameFromResponse(changeServiceInstanceVersionResponse);
205 actualPosX = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
207 actualPosY = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
209 ComponentInstance componentInstance = ResponseParser
210 .parseToObjectUsingMapper(changeServiceInstanceVersionResponse.getResponse(), ComponentInstance.class);
211 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.PRODUCT);
213 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
214 LifeCycleStatesEnum.CHECKIN);
215 ProductRestUtils.checkSuccess(changeStatusResponse);
216 getComponentAndValidateRIs(productDetails_01, 2, 0);
217 // Verify that Service instance name and position didn't change after
218 // changing service instance version
219 assertTrue(actualServiceInstanceName.equals(expectedServiceName));
220 assertTrue(actualPosX.equals(expectedPosX));
221 assertTrue(actualPosY.equals(expectedPosY));
225 public void changeServiceInstanceVersionByAdmin() throws Exception {
226 // Adding service instance (serviceDetails_01) to product without saving
228 RestResponse createServiceInstanceResp = createServiceInstanceDuringSetup(productDetails_01, serviceDetails_01,
230 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
231 String firstServiceInstanceNormalizedName = ResponseParser
232 .getValueFromJsonResponse(createServiceInstanceResp.getResponse(), "normalizedName");
233 // Adding service instance (serviceDetails_02) to product AND ---> Save
235 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
236 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
238 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
239 LifeCycleStatesEnum.CHECKIN);
240 ProductRestUtils.checkSuccess(changeStatusResponse);
241 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
242 // Checkout service [0.2]
243 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
244 LifeCycleStatesEnum.CHECKOUT);
245 ResourceRestUtils.checkSuccess(changeStatusResponse);
246 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
247 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
248 // get the new VF instance uniqueId after checkout service
249 RestResponse getServiceResponse = ServiceRestUtils.getService(serviceDetails_01.getUniqueId(), sdncPmDetails1);
250 Service service = ResponseParser.parseToObjectUsingMapper(getServiceResponse.getResponse(), Service.class);
251 List<ComponentInstance> serviceComponentInstances = service.getComponentInstances();
252 for (ComponentInstance component : serviceComponentInstances) {
253 if (component.getName().equals(firstVfInstanceName)) {
254 firstVfInstanceUniqueId = component.getUniqueId();
257 assertTrue(firstVfInstanceUniqueId != null);
258 // delete resource instance (resourceDetailsVF_01) from Service
259 RestResponse deleteVfFromServiceResponse = deleteVFInstanceDuringSetup(firstVfInstanceUniqueId,
260 serviceDetails_01, sdncDesignerDetails);
261 assertTrue(deleteVfFromServiceResponse.getErrorCode() == STATUS_CODE_SUCCESS_DELETE);
262 // Add different VF instance (resourceDetailsVF_02) to Service
263 RestResponse restResponse = createVFInstanceDuringSetup(serviceDetails_01, resourceDetailsVF_02,
264 sdncDesignerDetails);
265 ResourceRestUtils.checkCreateResponse(restResponse);
266 // service [0.2] state to CERTIFICATIONREQUEST
267 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
268 LifeCycleStatesEnum.CHECKIN);
269 ResourceRestUtils.checkSuccess(changeStatusResponse);
270 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
271 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
272 ResourceRestUtils.checkSuccess(changeStatusResponse);
273 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncTesterDetails,
274 LifeCycleStatesEnum.STARTCERTIFICATION);
275 ResourceRestUtils.checkSuccess(changeStatusResponse);
277 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncAdminDetails,
278 LifeCycleStatesEnum.CHECKOUT);
279 ProductRestUtils.checkSuccess(changeStatusResponse);
280 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
281 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
282 // get service instance new uniqueId , name and position after checkout
284 RestResponse getProductResponse = ProductRestUtils.getProduct(productNewUniqueId, sdncPmDetails1.getUserId());
285 Product product = ResponseParser.parseToObjectUsingMapper(getProductResponse.getResponse(), Product.class);
286 List<ComponentInstance> componentInstances = product.getComponentInstances();
287 for (ComponentInstance component : componentInstances) {
288 if (component.getNormalizedName().equals(firstServiceInstanceNormalizedName)) {
289 serviceInstanceToReplaceUniqueId = component.getUniqueId();
290 expectedServiceName = component.getName();
291 expectedPosX = component.getPosX();
292 expectedPosY = component.getPosY();
295 assertTrue(serviceInstanceToReplaceUniqueId != null);
296 // change service instance to newer version
297 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
298 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncAdminDetails, ComponentTypeEnum.PRODUCT,
300 ProductRestUtils.checkSuccess(changeServiceInstanceVersionResponse);
301 actualServiceInstanceName = ResponseParser.getNameFromResponse(changeServiceInstanceVersionResponse);
302 actualPosX = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
304 actualPosY = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
306 ComponentInstance componentInstance = ResponseParser
307 .parseToObjectUsingMapper(changeServiceInstanceVersionResponse.getResponse(), ComponentInstance.class);
308 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.PRODUCT);
310 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncAdminDetails,
311 LifeCycleStatesEnum.CHECKIN);
312 ProductRestUtils.checkSuccess(changeStatusResponse);
313 getComponentAndValidateRIs(productDetails_01, 2, 0);
314 // Verify that Service instance name and position didn't change after
315 // changing service instance version
316 assertTrue(actualServiceInstanceName.equals(expectedServiceName));
317 assertTrue(actualPosX.equals(expectedPosX));
318 assertTrue(actualPosY.equals(expectedPosY));
322 public void changeServiceInstanceToOlderVersion() throws Exception {
323 // Get VF Instance UniquId [Service version 0.1]
324 RestResponse getServiceResponse = ServiceRestUtils.getService(serviceDetails_01.getUniqueId(), sdncPmDetails1);
325 Service service = ResponseParser.parseToObjectUsingMapper(getServiceResponse.getResponse(), Service.class);
326 ComponentInstance actualComponentInstance = service.getComponentInstances().get(0);
327 firstVfInstanceUniqueId = actualComponentInstance.getUniqueId();
328 String serviceOlderVersionUniquId = ResponseParser.getUniqueIdFromResponse(getServiceResponse);
330 // Checkout service [0.2]
331 RestResponse changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01,
332 sdncDesignerDetails, LifeCycleStatesEnum.CHECKOUT);
333 ResourceRestUtils.checkSuccess(changeStatusResponse);
334 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
335 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
336 // get the new VF instance uniqueId after checkout service
337 getServiceResponse = ServiceRestUtils.getService(serviceDetails_01.getUniqueId(), sdncPmDetails1);
338 service = ResponseParser.parseToObjectUsingMapper(getServiceResponse.getResponse(), Service.class);
339 List<ComponentInstance> serviceComponentInstances = service.getComponentInstances();
340 for (ComponentInstance component : serviceComponentInstances) {
341 if (component.getName().equals(firstVfInstanceName)) {
342 firstVfInstanceUniqueId = component.getUniqueId();
345 assertTrue(firstVfInstanceUniqueId != null);
346 // delete resource instance (resourceDetailsVF_01) from Service
347 RestResponse deleteVfFromServiceResponse = deleteVFInstanceDuringSetup(firstVfInstanceUniqueId,
348 serviceDetails_01, sdncDesignerDetails);
349 assertTrue(deleteVfFromServiceResponse.getErrorCode() == STATUS_CODE_SUCCESS_DELETE);
350 // Add different VF instance (resourceDetailsVF_02) to Service
351 RestResponse restResponse = createVFInstanceDuringSetup(serviceDetails_01, resourceDetailsVF_02,
352 sdncDesignerDetails);
353 ResourceRestUtils.checkCreateResponse(restResponse);
354 // Check-In service [0.2]
355 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
356 LifeCycleStatesEnum.CHECKIN);
357 ResourceRestUtils.checkSuccess(changeStatusResponse);
358 // Adding service instance (serviceDetails_01 V0.2) to product without
360 RestResponse createServiceInstanceResp = createServiceInstanceDuringSetup(productDetails_01, serviceDetails_01,
362 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
363 String firstServiceInstanceNormalizedName = ResponseParser
364 .getValueFromJsonResponse(createServiceInstanceResp.getResponse(), "normalizedName");
365 // Adding service instance (serviceDetails_02) to product AND ---> Save
367 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
368 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
370 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
371 LifeCycleStatesEnum.CHECKIN);
372 ProductRestUtils.checkSuccess(changeStatusResponse);
373 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
375 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
376 LifeCycleStatesEnum.CHECKOUT);
377 ProductRestUtils.checkSuccess(changeStatusResponse);
378 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
379 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
380 // get service instance new uniqueId , name and position after checkout
382 RestResponse getProductResponse = ProductRestUtils.getProduct(productNewUniqueId, sdncPmDetails1.getUserId());
383 Product product = ResponseParser.parseToObjectUsingMapper(getProductResponse.getResponse(), Product.class);
384 List<ComponentInstance> componentInstances = product.getComponentInstances();
385 for (ComponentInstance component : componentInstances) {
386 if (component.getNormalizedName().equals(firstServiceInstanceNormalizedName)) {
387 serviceInstanceToReplaceUniqueId = component.getUniqueId();
388 expectedServiceName = component.getName();
389 expectedPosX = component.getPosX();
390 expectedPosY = component.getPosY();
393 assertTrue(serviceInstanceToReplaceUniqueId != null);
394 // change service instance to Older version
395 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
396 serviceInstanceToReplaceUniqueId, serviceOlderVersionUniquId, sdncPmDetails1, ComponentTypeEnum.PRODUCT,
398 // RestResponse changeServiceInstanceVersionResponse =
399 // changeServiceInstanceVersion(productDetails_01.getUniqueId(),
400 // serviceInstanceToReplaceUniqueId , serviceNewUniqueUid,
401 // sdncPmDetails1, ComponentTypeEnum.PRODUCT , true);
402 ProductRestUtils.checkSuccess(changeServiceInstanceVersionResponse);
403 actualServiceInstanceName = ResponseParser.getNameFromResponse(changeServiceInstanceVersionResponse);
404 actualPosX = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
406 actualPosY = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
408 ComponentInstance componentInstance = ResponseParser
409 .parseToObjectUsingMapper(changeServiceInstanceVersionResponse.getResponse(), ComponentInstance.class);
410 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.PRODUCT);
412 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
413 LifeCycleStatesEnum.CHECKIN);
414 ProductRestUtils.checkSuccess(changeStatusResponse);
415 getComponentAndValidateRIs(productDetails_01, 2, 0);
416 // Verify that Service instance name and position didn't change after
417 // changing service instance version
418 assertTrue(actualServiceInstanceName.equals(expectedServiceName));
419 assertTrue(actualPosX.equals(expectedPosX));
420 assertTrue(actualPosY.equals(expectedPosY));
425 public void changeServiceInstanceVersionToCertifiedVersion() throws Exception {
426 // Adding service instance (serviceDetails_01) to product without saving
428 RestResponse createServiceInstanceResp = createServiceInstanceDuringSetup(productDetails_01, serviceDetails_01,
430 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
431 String firstServiceInstanceNormalizedName = ResponseParser
432 .getValueFromJsonResponse(createServiceInstanceResp.getResponse(), "normalizedName");
433 // Adding service instance (serviceDetails_02) to product AND ---> Save
435 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
436 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
438 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
439 LifeCycleStatesEnum.CHECKIN);
440 ProductRestUtils.checkSuccess(changeStatusResponse);
441 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
442 // Checkout service [0.2]
443 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
444 LifeCycleStatesEnum.CHECKOUT);
445 ResourceRestUtils.checkSuccess(changeStatusResponse);
447 * String serviceNewUniqueUid =
448 * ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
449 * serviceDetails_01.setUniqueId(serviceNewUniqueUid);
451 // get the new VF instance uniqueId after checkout service
452 RestResponse getServiceResponse = ServiceRestUtils.getService(serviceDetails_01.getUniqueId(), sdncPmDetails1);
453 Service service = ResponseParser.parseToObjectUsingMapper(getServiceResponse.getResponse(), Service.class);
454 List<ComponentInstance> serviceComponentInstances = service.getComponentInstances();
455 for (ComponentInstance component : serviceComponentInstances) {
456 if (component.getName().equals(firstVfInstanceName)) {
457 firstVfInstanceUniqueId = component.getUniqueId();
460 assertTrue(firstVfInstanceUniqueId != null);
461 // delete resource instance (resourceDetailsVF_01) from Service
462 RestResponse deleteVfFromServiceResponse = deleteVFInstanceDuringSetup(firstVfInstanceUniqueId,
463 serviceDetails_01, sdncDesignerDetails);
464 assertTrue(deleteVfFromServiceResponse.getErrorCode() == STATUS_CODE_SUCCESS_DELETE);
465 // Add different VF instance (resourceDetailsVF_02) to Service
466 RestResponse restResponse = createVFInstanceDuringSetup(serviceDetails_01, resourceDetailsVF_02,
467 sdncDesignerDetails);
468 ResourceRestUtils.checkCreateResponse(restResponse);
469 // Check-In service [0.2]
470 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
471 LifeCycleStatesEnum.CHECKIN);
472 ResourceRestUtils.checkSuccess(changeStatusResponse);
473 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
474 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
475 ResourceRestUtils.checkSuccess(changeStatusResponse);
476 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncTesterDetails,
477 LifeCycleStatesEnum.STARTCERTIFICATION);
478 ResourceRestUtils.checkSuccess(changeStatusResponse);
479 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncTesterDetails,
480 LifeCycleStatesEnum.CERTIFY);
481 ResourceRestUtils.checkSuccess(changeStatusResponse);
482 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
484 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
485 LifeCycleStatesEnum.CHECKOUT);
486 ProductRestUtils.checkSuccess(changeStatusResponse);
487 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
488 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
489 // get service instance new uniqueId , name and position after checkout
491 RestResponse getProductResponse = ProductRestUtils.getProduct(productNewUniqueId, sdncPmDetails1.getUserId());
492 Product product = ResponseParser.parseToObjectUsingMapper(getProductResponse.getResponse(), Product.class);
493 List<ComponentInstance> componentInstances = product.getComponentInstances();
494 for (ComponentInstance component : componentInstances) {
495 if (component.getNormalizedName().equals(firstServiceInstanceNormalizedName)) {
496 serviceInstanceToReplaceUniqueId = component.getUniqueId();
497 expectedServiceName = component.getName();
498 expectedPosX = component.getPosX();
499 expectedPosY = component.getPosY();
502 assertTrue(serviceInstanceToReplaceUniqueId != null);
503 // change service instance to newer version
504 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
505 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncPmDetails1, ComponentTypeEnum.PRODUCT, true);
506 // RestResponse changeServiceInstanceVersionResponse =
507 // changeServiceInstanceVersion(productDetails_01.getUniqueId(),
508 // serviceInstanceToReplaceUniqueId , serviceNewUniqueUid,
509 // sdncPmDetails1, ComponentTypeEnum.PRODUCT , true);
510 ProductRestUtils.checkSuccess(changeServiceInstanceVersionResponse);
511 actualServiceInstanceName = ResponseParser.getNameFromResponse(changeServiceInstanceVersionResponse);
512 actualPosX = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
514 actualPosY = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
516 ComponentInstance componentInstance = ResponseParser
517 .parseToObjectUsingMapper(changeServiceInstanceVersionResponse.getResponse(), ComponentInstance.class);
518 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.PRODUCT);
520 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
521 LifeCycleStatesEnum.CHECKIN);
522 ProductRestUtils.checkSuccess(changeStatusResponse);
523 getComponentAndValidateRIs(productDetails_01, 2, 0);
524 // Verify that Service instance name and position didn't change after
525 // changing service instance version
526 assertTrue(actualServiceInstanceName.equals(expectedServiceName));
527 assertTrue(actualPosX.equals(expectedPosX));
528 assertTrue(actualPosY.equals(expectedPosY));
532 @Test(enabled = false)
533 public void changeServiceInstanceVersionThenReCheckInProduct() throws Exception {
534 // Adding service instance (serviceDetails_01) to product without saving
536 RestResponse createServiceInstanceResp = createServiceInstanceDuringSetup(productDetails_01, serviceDetails_01,
538 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
539 String firstServiceInstanceNormalizedName = ResponseParser
540 .getValueFromJsonResponse(createServiceInstanceResp.getResponse(), "normalizedName");
541 // Adding service instance (serviceDetails_02) to product AND ---> Save
543 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
544 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
546 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
547 LifeCycleStatesEnum.CHECKIN);
548 ProductRestUtils.checkSuccess(changeStatusResponse);
549 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
550 // Checkout service [0.2]
551 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
552 LifeCycleStatesEnum.CHECKOUT);
553 ResourceRestUtils.checkSuccess(changeStatusResponse);
554 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
555 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
556 // get the new VF instance uniqueId after checkout service
557 RestResponse getServiceResponse = ServiceRestUtils.getService(serviceDetails_01.getUniqueId(), sdncPmDetails1);
558 Service service = ResponseParser.parseToObjectUsingMapper(getServiceResponse.getResponse(), Service.class);
559 List<ComponentInstance> serviceComponentInstances = service.getComponentInstances();
560 for (ComponentInstance component : serviceComponentInstances) {
561 if (component.getName().equals(firstVfInstanceName)) {
562 firstVfInstanceUniqueId = component.getUniqueId();
565 assertTrue(firstVfInstanceUniqueId != null);
566 // delete resource instance (resourceDetailsVF_01) from Service
567 RestResponse deleteVfFromServiceResponse = deleteVFInstanceDuringSetup(firstVfInstanceUniqueId,
568 serviceDetails_01, sdncDesignerDetails);
569 assertTrue(deleteVfFromServiceResponse.getErrorCode() == STATUS_CODE_SUCCESS_DELETE);
570 // Add different VF instance (resourceDetailsVF_02) to Service
571 RestResponse restResponse = createVFInstanceDuringSetup(serviceDetails_01, resourceDetailsVF_02,
572 sdncDesignerDetails);
573 ResourceRestUtils.checkCreateResponse(restResponse);
574 // Check-In service [0.2]
575 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
576 LifeCycleStatesEnum.CHECKIN);
577 ResourceRestUtils.checkSuccess(changeStatusResponse);
579 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
580 LifeCycleStatesEnum.CHECKOUT);
581 ProductRestUtils.checkSuccess(changeStatusResponse);
582 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
583 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
584 // get service instance new uniqueId , name and position after checkout
586 RestResponse getProductResponse = ProductRestUtils.getProduct(productNewUniqueId, sdncPmDetails1.getUserId());
587 Product product = ResponseParser.parseToObjectUsingMapper(getProductResponse.getResponse(), Product.class);
588 List<ComponentInstance> componentInstances = product.getComponentInstances();
589 for (ComponentInstance component : componentInstances) {
590 if (component.getNormalizedName().equals(firstServiceInstanceNormalizedName)) {
591 serviceInstanceToReplaceUniqueId = component.getUniqueId();
592 expectedServiceName = component.getName();
593 expectedPosX = component.getPosX();
594 expectedPosY = component.getPosY();
597 assertTrue(serviceInstanceToReplaceUniqueId != null);
598 // change service instance to newer version
599 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
600 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncPmDetails1, ComponentTypeEnum.PRODUCT, true);
601 ProductRestUtils.checkSuccess(changeServiceInstanceVersionResponse);
602 actualServiceInstanceName = ResponseParser.getNameFromResponse(changeServiceInstanceVersionResponse);
603 actualPosX = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
605 actualPosY = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
607 ComponentInstance componentInstance = ResponseParser
608 .parseToObjectUsingMapper(changeServiceInstanceVersionResponse.getResponse(), ComponentInstance.class);
609 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.PRODUCT);
611 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
612 LifeCycleStatesEnum.CHECKIN);
613 ProductRestUtils.checkSuccess(changeStatusResponse);
614 /////////////////////
615 productOldUniqueId = productDetails_01.getUniqueId();
616 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
617 LifeCycleStatesEnum.CHECKOUT);
618 ProductRestUtils.checkSuccess(changeStatusResponse);
620 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
621 LifeCycleStatesEnum.CHECKIN);
622 ProductRestUtils.checkSuccess(changeStatusResponse);
623 productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
624 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
625 /////////////////////////////////////////////
626 getComponentAndValidateRIs(productDetails_01, 2, 0);
627 // Verify that Service instance name and position didn't change after
628 // changing service instance version
629 assertTrue(actualServiceInstanceName.equals(expectedServiceName));
630 assertTrue(actualPosX.equals(expectedPosX));
631 assertTrue(actualPosY.equals(expectedPosY));
635 public void changeServiceInstanceToHisVersion() throws Exception {
636 // Get VF Instance UniquId [Service version 0.1]
637 RestResponse getServiceResponse = ServiceRestUtils.getService(serviceDetails_01.getUniqueId(), sdncPmDetails1);
638 String serviceOlderVersionUniquId = ResponseParser.getUniqueIdFromResponse(getServiceResponse);
639 // Adding service instance (serviceDetails_01) to product without saving
641 RestResponse createServiceInstanceResp = createServiceInstanceDuringSetup(productDetails_01, serviceDetails_01,
643 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
644 String firstServiceInstanceNormalizedName = ResponseParser
645 .getValueFromJsonResponse(createServiceInstanceResp.getResponse(), "normalizedName");
646 // Adding service instance (serviceDetails_02) to product AND ---> Save
648 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
649 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
651 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
652 LifeCycleStatesEnum.CHECKIN);
653 ProductRestUtils.checkSuccess(changeStatusResponse);
654 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
655 // Checkout service [0.2]
656 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
657 LifeCycleStatesEnum.CHECKOUT);
658 ResourceRestUtils.checkSuccess(changeStatusResponse);
659 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
660 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
661 // get the new VF instance uniqueId after checkout service
662 getServiceResponse = ServiceRestUtils.getService(serviceDetails_01.getUniqueId(), sdncPmDetails1);
663 Service service = ResponseParser.parseToObjectUsingMapper(getServiceResponse.getResponse(), Service.class);
664 List<ComponentInstance> serviceComponentInstances = service.getComponentInstances();
665 for (ComponentInstance component : serviceComponentInstances) {
666 if (component.getName().equals(firstVfInstanceName)) {
667 firstVfInstanceUniqueId = component.getUniqueId();
670 assertTrue(firstVfInstanceUniqueId != null);
671 // delete resource instance (resourceDetailsVF_01) from Service
672 RestResponse deleteVfFromServiceResponse = deleteVFInstanceDuringSetup(firstVfInstanceUniqueId,
673 serviceDetails_01, sdncDesignerDetails);
674 assertTrue(deleteVfFromServiceResponse.getErrorCode() == STATUS_CODE_SUCCESS_DELETE);
675 // Add different VF instance (resourceDetailsVF_02) to Service
676 RestResponse restResponse = createVFInstanceDuringSetup(serviceDetails_01, resourceDetailsVF_02,
677 sdncDesignerDetails);
678 ResourceRestUtils.checkCreateResponse(restResponse);
679 // Check-In service [0.2]
680 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
681 LifeCycleStatesEnum.CHECKIN);
682 ResourceRestUtils.checkSuccess(changeStatusResponse);
684 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
685 LifeCycleStatesEnum.CHECKOUT);
686 ProductRestUtils.checkSuccess(changeStatusResponse);
687 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
688 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
689 // get service instance new uniqueId , name and position after checkout
691 RestResponse getProductResponse = ProductRestUtils.getProduct(productNewUniqueId, sdncPmDetails1.getUserId());
692 Product product = ResponseParser.parseToObjectUsingMapper(getProductResponse.getResponse(), Product.class);
693 List<ComponentInstance> componentInstances = product.getComponentInstances();
694 for (ComponentInstance component : componentInstances) {
695 if (component.getNormalizedName().equals(firstServiceInstanceNormalizedName)) {
696 serviceInstanceToReplaceUniqueId = component.getUniqueId();
697 expectedServiceName = component.getName();
698 expectedPosX = component.getPosX();
699 expectedPosY = component.getPosY();
702 assertTrue(serviceInstanceToReplaceUniqueId != null);
703 // change service instance to newer version
704 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
705 serviceInstanceToReplaceUniqueId, serviceOlderVersionUniquId, sdncPmDetails1, ComponentTypeEnum.PRODUCT,
707 // RestResponse changeServiceInstanceVersionResponse =
708 // changeServiceInstanceVersion(productDetails_01.getUniqueId(),
709 // serviceInstanceToReplaceUniqueId , serviceNewUniqueUid,
710 // sdncPmDetails1, ComponentTypeEnum.PRODUCT , true);
711 ProductRestUtils.checkSuccess(changeServiceInstanceVersionResponse);
712 actualServiceInstanceName = ResponseParser.getNameFromResponse(changeServiceInstanceVersionResponse);
713 actualPosX = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
715 actualPosY = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
717 ComponentInstance componentInstance = ResponseParser
718 .parseToObjectUsingMapper(changeServiceInstanceVersionResponse.getResponse(), ComponentInstance.class);
719 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.PRODUCT);
721 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
722 LifeCycleStatesEnum.CHECKIN);
723 ProductRestUtils.checkSuccess(changeStatusResponse);
724 getComponentAndValidateRIs(productDetails_01, 2, 0);
725 // Verify that Service instance name and position didn't change after
726 // changing service instance version
727 assertTrue(actualServiceInstanceName.equals(expectedServiceName));
728 assertTrue(actualPosX.equals(expectedPosX));
729 assertTrue(actualPosY.equals(expectedPosY));
733 public void changeServiceInstanceVersionByAdminNotByProductOwner() throws Exception {
734 // Adding service instance (serviceDetails_01) to product without saving
736 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
738 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
739 // Adding service instance (serviceDetails_02) to product AND ---> Save
741 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
742 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
744 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
745 LifeCycleStatesEnum.CHECKIN);
746 ProductRestUtils.checkSuccess(changeStatusResponse);
747 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
748 // Checkout service [0.2]
749 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
750 LifeCycleStatesEnum.CHECKOUT);
751 ResourceRestUtils.checkSuccess(changeStatusResponse);
752 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
753 // Check-In service [0.2]
754 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
755 LifeCycleStatesEnum.CHECKIN);
756 ResourceRestUtils.checkSuccess(changeStatusResponse);
758 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
759 LifeCycleStatesEnum.CHECKOUT);
760 ProductRestUtils.checkSuccess(changeStatusResponse);
761 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
762 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
764 // change service instance to newer version
765 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
766 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncAdminDetails, ComponentTypeEnum.PRODUCT,
768 assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
769 changeServiceInstanceVersionResponse.getErrorCode().intValue());
770 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
771 changeServiceInstanceVersionResponse.getResponse());
773 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
774 LifeCycleStatesEnum.CHECKIN);
775 ProductRestUtils.checkSuccess(changeStatusResponse);
776 getComponentAndValidateRIs(productDetails_01, 2, 0);
781 public void changeServiceInstanceVersionByPmNotByProductOwner() throws Exception {
782 // Adding service instance (serviceDetails_01) to product AND --->
784 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
786 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
787 // Adding service instance (serviceDetails_02) to product AND ---> Save
789 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
790 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
792 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
793 LifeCycleStatesEnum.CHECKIN);
794 ProductRestUtils.checkSuccess(changeStatusResponse);
795 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
796 // Checkout service [0.2]
797 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
798 LifeCycleStatesEnum.CHECKOUT);
799 ResourceRestUtils.checkSuccess(changeStatusResponse);
800 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
801 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
802 // Check-In service [0.2]
803 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
804 LifeCycleStatesEnum.CHECKIN);
805 ResourceRestUtils.checkSuccess(changeStatusResponse);
807 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
808 LifeCycleStatesEnum.CHECKOUT);
809 ProductRestUtils.checkSuccess(changeStatusResponse);
810 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
811 // change uniqueId after product check-out in expected Req&Cap
812 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
813 updateNewComponentInstanceId(createServiceInstanceResp, productNewUniqueId);
814 // CHANGE Service Instance VERSION BY NON PRODUCT OWNER (sdncPmDetails1
815 // instead sdncPmDetails1)
816 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(
817 productDetails_01.getUniqueId(), serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncPmDetails2,
818 ComponentTypeEnum.PRODUCT, true);
819 assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
820 changeServiceInstanceVersionResponse.getErrorCode().intValue());
821 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
822 changeServiceInstanceVersionResponse.getResponse());
824 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
825 LifeCycleStatesEnum.CHECKIN);
826 ProductRestUtils.checkSuccess(changeStatusResponse);
827 getComponentAndValidateRIs(productDetails_01, 2, 0);
831 public void changeServiceInstanceVersionByTester() throws Exception {
832 // Adding service instance (serviceDetails_01) to product AND --->
834 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
836 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
837 String serviceInstanceToReplaceUniqueId = ResponseParser.getUniqueIdFromResponse(createServiceInstanceResp);
838 // Adding service instance (serviceDetails_02) to product AND ---> Save
840 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
841 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
843 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
844 LifeCycleStatesEnum.CHECKIN);
845 ProductRestUtils.checkSuccess(changeStatusResponse);
846 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
847 // Checkout service [0.2]
848 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
849 LifeCycleStatesEnum.CHECKOUT);
850 ResourceRestUtils.checkSuccess(changeStatusResponse);
851 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
852 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
853 // Check-In service [0.2]
854 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
855 LifeCycleStatesEnum.CHECKIN);
856 ResourceRestUtils.checkSuccess(changeStatusResponse);
858 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
859 LifeCycleStatesEnum.CHECKOUT);
860 ProductRestUtils.checkSuccess(changeStatusResponse);
861 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
862 // change uniqueId after product check-out in expected Req&Cap
863 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
864 // CHANGE Service Instance VERSION BY NON PRODUCT OWNER (sdncPmDetails1
865 // instead sdncPmDetails1)
866 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(
867 productDetails_01.getUniqueId(), serviceInstanceToReplaceUniqueId, serviceNewUniqueUid,
868 sdncTesterDetails, ComponentTypeEnum.PRODUCT, true);
869 assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
870 changeServiceInstanceVersionResponse.getErrorCode().intValue());
871 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
872 changeServiceInstanceVersionResponse.getResponse());
874 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
875 LifeCycleStatesEnum.CHECKIN);
876 ProductRestUtils.checkSuccess(changeStatusResponse);
877 getComponentAndValidateRIs(productDetails_01, 2, 0);
881 public void changeServiceInstanceVersionProductIsNotCheckOut() throws Exception {
882 // Adding service instance (serviceDetails_01) to product AND --->
884 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
886 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
887 String serviceInstanceToReplaceUniqueId = ResponseParser.getUniqueIdFromResponse(createServiceInstanceResp);
888 // Adding service instance (serviceDetails_02) to product AND ---> Save
890 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
891 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
893 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
894 LifeCycleStatesEnum.CHECKIN);
895 ProductRestUtils.checkSuccess(changeStatusResponse);
896 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
897 // Checkout service [0.2]
898 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
899 LifeCycleStatesEnum.CHECKOUT);
900 ResourceRestUtils.checkSuccess(changeStatusResponse);
901 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
902 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
903 // Check-In service [0.2]
904 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
905 LifeCycleStatesEnum.CHECKIN);
906 ResourceRestUtils.checkSuccess(changeStatusResponse);
907 // CHANGE Service Instance VERSION for Non checkedOut product
908 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productOldUniqueId,
909 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncPmDetails1, ComponentTypeEnum.PRODUCT, true);
910 assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
911 changeServiceInstanceVersionResponse.getErrorCode().intValue());
912 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
913 changeServiceInstanceVersionResponse.getResponse());
914 getComponentAndValidateRIs(productDetails_01, 2, 0);
918 @Test(enabled = false)
919 public void changeServiceInstanceVersionServiceIsInCheckOutState() throws Exception {
920 // Adding service instance (serviceDetails_01) to product AND --->
922 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
924 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
925 String serviceInstanceToReplaceUniqueId = ResponseParser.getUniqueIdFromResponse(createServiceInstanceResp);
926 // Adding service instance (serviceDetails_02) to product AND ---> Save
928 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
929 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
931 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
932 LifeCycleStatesEnum.CHECKIN);
933 ProductRestUtils.checkSuccess(changeStatusResponse);
934 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
935 // Checkout service [0.2]
936 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
937 LifeCycleStatesEnum.CHECKOUT);
938 ResourceRestUtils.checkSuccess(changeStatusResponse);
939 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
941 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
942 LifeCycleStatesEnum.CHECKOUT);
943 ProductRestUtils.checkSuccess(changeStatusResponse);
944 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
945 // change uniqueId after product check-out in expected Req&Cap
946 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
947 // CHANGE Service Instance VERSION to service in checkOut state
948 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(
949 productDetails_01.getUniqueId(), serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncPmDetails1,
950 ComponentTypeEnum.PRODUCT, true);
951 assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
952 changeServiceInstanceVersionResponse.getErrorCode().intValue());
953 ArrayList<String> varibales = new ArrayList<String>();
954 varibales.add(serviceNewUniqueUid);
955 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.SERVICE_NOT_FOUND.name(), varibales,
956 changeServiceInstanceVersionResponse.getResponse());
958 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
959 LifeCycleStatesEnum.CHECKIN);
960 ProductRestUtils.checkSuccess(changeStatusResponse);
961 getComponentAndValidateRIs(productDetails_01, 2, 0);
962 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
963 LifeCycleStatesEnum.CHECKIN);
964 ResourceRestUtils.checkSuccess(changeStatusResponse);
969 public void changeServiceInstanceVersionServiceInstanceDoesNotExist() throws Exception {
970 // Adding service instance (serviceDetails_01) to product without saving
972 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
974 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
975 // Adding service instance (serviceDetails_02) to product AND ---> Save
977 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
978 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
980 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
981 LifeCycleStatesEnum.CHECKIN);
982 ProductRestUtils.checkSuccess(changeStatusResponse);
983 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
984 // Checkout service [0.2]
985 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
986 LifeCycleStatesEnum.CHECKOUT);
987 ResourceRestUtils.checkSuccess(changeStatusResponse);
988 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
989 // Check-In service [0.2]
990 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
991 LifeCycleStatesEnum.CHECKIN);
992 ResourceRestUtils.checkSuccess(changeStatusResponse);
994 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
995 LifeCycleStatesEnum.CHECKOUT);
996 ProductRestUtils.checkSuccess(changeStatusResponse);
997 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
998 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
999 // change service instance to newer version
1000 String serviceUniqueUidNotExist = "1234567890";
1001 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
1002 serviceUniqueUidNotExist, serviceNewUniqueUid, sdncPmDetails1, ComponentTypeEnum.PRODUCT, true);
1003 assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
1004 changeServiceInstanceVersionResponse.getErrorCode().intValue());
1005 ArrayList<String> varibales = new ArrayList<String>();
1006 varibales.add(serviceUniqueUidNotExist);
1007 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESOURCE_INSTANCE_NOT_FOUND.name(), varibales,
1008 changeServiceInstanceVersionResponse.getResponse());
1010 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1011 LifeCycleStatesEnum.CHECKIN);
1012 ProductRestUtils.checkSuccess(changeStatusResponse);
1013 getComponentAndValidateRIs(productDetails_01, 2, 0);
1017 @Test(enabled = false)
1018 public void changeServiceInstanceNonExistingProduct() throws Exception {
1019 // Adding service instance (serviceDetails_01) to product saving Req&Cap
1020 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
1022 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1023 // Adding service instance (serviceDetails_02) to product AND ---> Save
1025 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
1026 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1028 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1029 LifeCycleStatesEnum.CHECKIN);
1030 ProductRestUtils.checkSuccess(changeStatusResponse);
1031 // Checkout service [0.2]
1032 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1033 LifeCycleStatesEnum.CHECKOUT);
1034 ResourceRestUtils.checkSuccess(changeStatusResponse);
1035 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1036 // Check-In service [0.2]
1037 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1038 LifeCycleStatesEnum.CHECKIN);
1039 ResourceRestUtils.checkSuccess(changeStatusResponse);
1040 // change service instance to newer version - Non existing Product
1041 String productNewUniqueIdNotExist = "1234567890";
1042 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueIdNotExist,
1043 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncPmDetails1, ComponentTypeEnum.PRODUCT, true);
1044 assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
1045 changeServiceInstanceVersionResponse.getErrorCode().intValue());
1046 ArrayList<String> varibales = new ArrayList<String>();
1047 varibales.add(productNewUniqueIdNotExist);
1048 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESOURCE_INSTANCE_NOT_FOUND.name(), varibales,
1049 changeServiceInstanceVersionResponse.getResponse());
1050 getComponentAndValidateRIs(productDetails_01, 2, 0);
1054 public void changeServiceInstanceVersionToNonExisitingServiceVersion() throws Exception {
1055 // Adding service instance (serviceDetails_01) to product saving Req&Cap
1056 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
1058 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1059 // Adding service instance (serviceDetails_02) to product AND ---> Save
1061 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
1062 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1064 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1065 LifeCycleStatesEnum.CHECKIN);
1066 ProductRestUtils.checkSuccess(changeStatusResponse);
1067 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1068 // check-out product
1069 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1070 LifeCycleStatesEnum.CHECKOUT);
1071 ProductRestUtils.checkSuccess(changeStatusResponse);
1072 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1073 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
1074 // get service instance new uniqueId , name and position after checkout
1076 updateNewComponentInstanceId(createServiceInstanceResp, productNewUniqueId);
1077 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
1078 // change service instance to Non-existing version
1079 String serviceUniqueUidNotExist = "1234567890";
1080 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
1081 serviceInstanceToReplaceUniqueId, serviceUniqueUidNotExist, sdncPmDetails1, ComponentTypeEnum.PRODUCT,
1083 assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
1084 changeServiceInstanceVersionResponse.getErrorCode().intValue());
1085 ArrayList<String> varibales = new ArrayList<String>();
1086 varibales.add(serviceUniqueUidNotExist);
1087 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESOURCE_NOT_FOUND.name(), varibales,
1088 changeServiceInstanceVersionResponse.getResponse());
1089 getComponentAndValidateRIs(productDetails_01, 2, 0);
1093 public void changeServiceInstanceComponentTypeIsNotProduct() throws Exception {
1094 // Adding service instance (serviceDetails_01) to product without saving
1096 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
1098 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1099 String firstServiceInstanceNormalizedName = ResponseParser
1100 .getValueFromJsonResponse(createServiceInstanceResp.getResponse(), "normalizedName");
1101 // Adding service instance (serviceDetails_02) to product AND ---> Save
1103 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
1104 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1106 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1107 LifeCycleStatesEnum.CHECKIN);
1108 ProductRestUtils.checkSuccess(changeStatusResponse);
1109 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1110 // Checkout service [0.2]
1111 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1112 LifeCycleStatesEnum.CHECKOUT);
1113 ResourceRestUtils.checkSuccess(changeStatusResponse);
1114 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1115 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
1116 // Check-In service [0.2]
1117 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1118 LifeCycleStatesEnum.CHECKIN);
1119 ResourceRestUtils.checkSuccess(changeStatusResponse);
1120 // check-out product
1121 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1122 LifeCycleStatesEnum.CHECKOUT);
1123 ProductRestUtils.checkSuccess(changeStatusResponse);
1124 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1125 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
1126 // get service instance new uniqueId , name and position after checkout
1128 RestResponse getProductResponse = ProductRestUtils.getProduct(productNewUniqueId, sdncPmDetails1.getUserId());
1129 Product product = ResponseParser.parseToObjectUsingMapper(getProductResponse.getResponse(), Product.class);
1130 List<ComponentInstance> componentInstances = product.getComponentInstances();
1131 for (ComponentInstance component : componentInstances) {
1132 if (component.getNormalizedName().equals(firstServiceInstanceNormalizedName)) {
1133 serviceInstanceToReplaceUniqueId = component.getUniqueId();
1136 assertTrue(serviceInstanceToReplaceUniqueId != null);
1137 // change service instance to newer version for NON-Component Type =
1138 // Product (e.g. service)
1139 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
1140 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncPmDetails1, ComponentTypeEnum.SERVICE, true);
1141 assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
1142 changeServiceInstanceVersionResponse.getErrorCode().intValue());
1143 ArrayList<String> varibales = new ArrayList<String>();
1145 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.SERVICE_NOT_FOUND.name(), varibales,
1146 changeServiceInstanceVersionResponse.getResponse());
1147 getComponentAndValidateRIs(productDetails_01, 2, 0);
1151 public void changeServiceInstanceComponentTypeNotSupported() throws Exception {
1152 // Adding service instance (serviceDetails_01) to product without saving
1154 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
1156 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1157 String firstServiceInstanceNormalizedName = ResponseParser
1158 .getValueFromJsonResponse(createServiceInstanceResp.getResponse(), "normalizedName");
1159 // Adding service instance (serviceDetails_02) to product AND ---> Save
1161 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
1162 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1164 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1165 LifeCycleStatesEnum.CHECKIN);
1166 ProductRestUtils.checkSuccess(changeStatusResponse);
1167 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1168 // Checkout service [0.2]
1169 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1170 LifeCycleStatesEnum.CHECKOUT);
1171 ResourceRestUtils.checkSuccess(changeStatusResponse);
1172 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1173 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
1174 // Check-In service [0.2]
1175 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1176 LifeCycleStatesEnum.CHECKIN);
1177 ResourceRestUtils.checkSuccess(changeStatusResponse);
1178 // check-out product
1179 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1180 LifeCycleStatesEnum.CHECKOUT);
1181 ProductRestUtils.checkSuccess(changeStatusResponse);
1182 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1183 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
1184 // get service instance new uniqueId , name and position after checkout
1186 RestResponse getProductResponse = ProductRestUtils.getProduct(productNewUniqueId, sdncPmDetails1.getUserId());
1187 Product product = ResponseParser.parseToObjectUsingMapper(getProductResponse.getResponse(), Product.class);
1188 List<ComponentInstance> componentInstances = product.getComponentInstances();
1189 for (ComponentInstance component : componentInstances) {
1190 if (component.getNormalizedName().equals(firstServiceInstanceNormalizedName)) {
1191 serviceInstanceToReplaceUniqueId = component.getUniqueId();
1194 assertTrue(serviceInstanceToReplaceUniqueId != null);
1195 // change service instance to newer version for NON-Component Type =
1196 // Product (e.g. service)
1197 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
1198 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncPmDetails1,
1199 ComponentTypeEnum.SERVICE_INSTANCE, true);
1200 assertEquals("Check response code ", STATUS_CODE_UNSUPPORTED_ERROR,
1201 changeServiceInstanceVersionResponse.getErrorCode().intValue());
1202 ArrayList<String> varibales = new ArrayList<String>();
1203 varibales.add("null");
1204 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.UNSUPPORTED_ERROR.name(), varibales,
1205 changeServiceInstanceVersionResponse.getResponse());
1206 getComponentAndValidateRIs(productDetails_01, 2, 0);
1210 public void SeveralServiceInstanceFromSameServiceVersionChangeVersionOnlyForOneServiceInstance() throws Exception {
1211 // Adding service instance (serviceDetails_01) to product without saving
1213 RestResponse createServiceInstanceResp = createServiceInstanceDuringSetup(productDetails_01, serviceDetails_01,
1215 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1216 String firstServiceInstanceNormalizedName = ResponseParser
1217 .getValueFromJsonResponse(createServiceInstanceResp.getResponse(), "normalizedName");
1218 // Adding service instance (serviceDetails_02) to product AND ---> Save
1220 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01, sdncPmDetails1);
1221 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1223 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1224 LifeCycleStatesEnum.CHECKIN);
1225 ProductRestUtils.checkSuccess(changeStatusResponse);
1226 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1227 // Checkout service [0.2]
1228 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1229 LifeCycleStatesEnum.CHECKOUT);
1230 ResourceRestUtils.checkSuccess(changeStatusResponse);
1231 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1232 serviceDetails_01.setUniqueId(serviceNewUniqueUid);
1233 // get the new VF instance uniqueId after checkout service
1234 RestResponse getServiceResponse = ServiceRestUtils.getService(serviceDetails_01.getUniqueId(), sdncPmDetails1);
1235 Service service = ResponseParser.parseToObjectUsingMapper(getServiceResponse.getResponse(), Service.class);
1236 List<ComponentInstance> serviceComponentInstances = service.getComponentInstances();
1237 for (ComponentInstance component : serviceComponentInstances) {
1238 if (component.getName().equals(firstVfInstanceName)) {
1239 firstVfInstanceUniqueId = component.getUniqueId();
1242 assertTrue(firstVfInstanceUniqueId != null);
1243 // delete resource instance (resourceDetailsVF_01) from Service
1244 RestResponse deleteVfFromServiceResponse = deleteVFInstanceDuringSetup(firstVfInstanceUniqueId,
1245 serviceDetails_01, sdncDesignerDetails);
1246 assertTrue(deleteVfFromServiceResponse.getErrorCode() == STATUS_CODE_SUCCESS_DELETE);
1247 // Add different VF instance (resourceDetailsVF_02) to Service
1248 RestResponse restResponse = createVFInstanceDuringSetup(serviceDetails_01, resourceDetailsVF_02,
1249 sdncDesignerDetails);
1250 ResourceRestUtils.checkCreateResponse(restResponse);
1251 // Check-In service [0.2]
1252 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1253 LifeCycleStatesEnum.CHECKIN);
1254 ResourceRestUtils.checkSuccess(changeStatusResponse);
1255 // check-out product
1256 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1257 LifeCycleStatesEnum.CHECKOUT);
1258 ProductRestUtils.checkSuccess(changeStatusResponse);
1259 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1260 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
1261 // get service instance new uniqueId , name and position after checkout
1263 RestResponse getProductResponse = ProductRestUtils.getProduct(productNewUniqueId, sdncPmDetails1.getUserId());
1264 Product product = ResponseParser.parseToObjectUsingMapper(getProductResponse.getResponse(), Product.class);
1265 List<ComponentInstance> componentInstances = product.getComponentInstances();
1266 for (ComponentInstance component : componentInstances) {
1267 if (component.getNormalizedName().equals(firstServiceInstanceNormalizedName)) {
1268 serviceInstanceToReplaceUniqueId = component.getUniqueId();
1269 expectedServiceName = component.getName();
1270 expectedPosX = component.getPosX();
1271 expectedPosY = component.getPosY();
1274 assertTrue(serviceInstanceToReplaceUniqueId != null);
1275 // change service instance to newer version
1276 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
1277 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, sdncPmDetails1, ComponentTypeEnum.PRODUCT, true);
1278 ProductRestUtils.checkSuccess(changeServiceInstanceVersionResponse);
1279 actualServiceInstanceName = ResponseParser.getNameFromResponse(changeServiceInstanceVersionResponse);
1280 actualPosX = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
1282 actualPosY = ResponseParser.getValueFromJsonResponse(changeServiceInstanceVersionResponse.getResponse(),
1284 ComponentInstance componentInstance = ResponseParser
1285 .parseToObjectUsingMapper(changeServiceInstanceVersionResponse.getResponse(), ComponentInstance.class);
1286 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.PRODUCT);
1288 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1289 LifeCycleStatesEnum.CHECKIN);
1290 ProductRestUtils.checkSuccess(changeStatusResponse);
1291 getComponentAndValidateRIs(productDetails_01, 2, 0);
1292 // Verify that Service instance name and position didn't change after
1293 // changing service instance version
1294 assertTrue(actualServiceInstanceName.equals(expectedServiceName));
1295 assertTrue(actualPosX.equals(expectedPosX));
1296 assertTrue(actualPosY.equals(expectedPosY));
1300 public void changeServiceInstanceVersionByNonAsdcUser() throws Exception {
1301 // Adding service instance (serviceDetails_01) to product without saving
1303 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
1305 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1306 // Adding service instance (serviceDetails_02) to product AND ---> Save
1308 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
1309 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1311 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1312 LifeCycleStatesEnum.CHECKIN);
1313 ProductRestUtils.checkSuccess(changeStatusResponse);
1314 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1315 // Checkout service [0.2]
1316 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1317 LifeCycleStatesEnum.CHECKOUT);
1318 ResourceRestUtils.checkSuccess(changeStatusResponse);
1319 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1320 // Check-In service [0.2]
1321 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1322 LifeCycleStatesEnum.CHECKIN);
1323 ResourceRestUtils.checkSuccess(changeStatusResponse);
1324 // check-out product
1325 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1326 LifeCycleStatesEnum.CHECKOUT);
1327 ProductRestUtils.checkSuccess(changeStatusResponse);
1328 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1329 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
1330 User nonAsdcUser = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
1331 nonAsdcUser.setUserId("bt760h");
1332 // change service instance to newer version
1333 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
1334 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, nonAsdcUser, ComponentTypeEnum.PRODUCT, true);
1335 assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
1336 changeServiceInstanceVersionResponse.getErrorCode().intValue());
1337 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
1338 changeServiceInstanceVersionResponse.getResponse());
1340 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1341 LifeCycleStatesEnum.CHECKIN);
1342 ProductRestUtils.checkSuccess(changeStatusResponse);
1343 getComponentAndValidateRIs(productDetails_01, 2, 0);
1347 public void changeServiceInstanceVersionEmptyUserId() throws Exception {
1348 // Adding service instance (serviceDetails_01) to product without saving
1350 RestResponse createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_01,
1352 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1353 // Adding service instance (serviceDetails_02) to product AND ---> Save
1355 createServiceInstanceResp = createServiceInstance(productDetails_01, serviceDetails_02, sdncPmDetails1);
1356 ResourceRestUtils.checkCreateResponse(createServiceInstanceResp);
1358 RestResponse changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1359 LifeCycleStatesEnum.CHECKIN);
1360 ProductRestUtils.checkSuccess(changeStatusResponse);
1361 String productOldUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1362 // Checkout service [0.2]
1363 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1364 LifeCycleStatesEnum.CHECKOUT);
1365 ResourceRestUtils.checkSuccess(changeStatusResponse);
1366 String serviceNewUniqueUid = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1367 // Check-In service [0.2]
1368 changeStatusResponse = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1369 LifeCycleStatesEnum.CHECKIN);
1370 ResourceRestUtils.checkSuccess(changeStatusResponse);
1371 // check-out product
1372 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1373 LifeCycleStatesEnum.CHECKOUT);
1374 ProductRestUtils.checkSuccess(changeStatusResponse);
1375 String productNewUniqueId = ResponseParser.getUniqueIdFromResponse(changeStatusResponse);
1376 updateExpectedReqCapAfterChangeLifecycleState(productOldUniqueId, productNewUniqueId);
1377 User nonAsdcUser = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
1378 nonAsdcUser.setUserId("");
1379 // change service instance to newer version
1380 RestResponse changeServiceInstanceVersionResponse = changeServiceInstanceVersion(productNewUniqueId,
1381 serviceInstanceToReplaceUniqueId, serviceNewUniqueUid, nonAsdcUser, ComponentTypeEnum.PRODUCT, true);
1382 assertEquals("Check response code ", STATUS_CODE_MISSING_INFORMATION,
1383 changeServiceInstanceVersionResponse.getErrorCode().intValue());
1384 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.MISSING_INFORMATION.name(), new ArrayList<String>(),
1385 changeServiceInstanceVersionResponse.getResponse());
1387 changeStatusResponse = LifecycleRestUtils.changeProductState(productDetails_01, sdncPmDetails1,
1388 LifeCycleStatesEnum.CHECKIN);
1389 ProductRestUtils.checkSuccess(changeStatusResponse);
1390 getComponentAndValidateRIs(productDetails_01, 2, 0);
1393 ////////////////////////////////////
1394 private void updateNewComponentInstanceId(RestResponse createServiceInstanceResp, String productNewUniqueId)
1396 String firstServiceInstanceNormalizedName = ResponseParser
1397 .getValueFromJsonResponse(createServiceInstanceResp.getResponse(), "normalizedName");
1398 RestResponse getProductResponse = ProductRestUtils.getProduct(productNewUniqueId, sdncPmDetails1.getUserId());
1399 Product product = ResponseParser.parseToObjectUsingMapper(getProductResponse.getResponse(), Product.class);
1400 List<ComponentInstance> componentInstances = product.getComponentInstances();
1401 for (ComponentInstance component : componentInstances) {
1402 if (component.getNormalizedName().equals(firstServiceInstanceNormalizedName)) {
1403 serviceInstanceToReplaceUniqueId = component.getUniqueId();
1404 expectedServiceName = component.getName();
1405 expectedPosX = component.getPosX();
1406 expectedPosY = component.getPosY();
1409 assertTrue(serviceInstanceToReplaceUniqueId != null);
1412 private RestResponse changeResourceStateToCertified(ResourceReqDetails resourceDetails) throws Exception {
1413 RestResponse restResponse = LifecycleRestUtils.changeResourceState(resourceDetails, sdncDesignerDetails,
1414 LifeCycleStatesEnum.CHECKIN);
1415 ResourceRestUtils.checkSuccess(restResponse);
1416 /*restResponse = LifecycleRestUtils.changeResourceState(resourceDetails, sdncDesignerDetails,
1417 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
1418 if (restResponse.getErrorCode() == 200) {
1419 restResponse = LifecycleRestUtils.changeResourceState(resourceDetails, sdncTesterDetails,
1420 LifeCycleStatesEnum.STARTCERTIFICATION);
1422 return restResponse;
1423 if (restResponse.getErrorCode() == 200) {*/
1424 restResponse = LifecycleRestUtils.changeResourceState(resourceDetails, sdncDesignerDetails,
1425 LifeCycleStatesEnum.CERTIFY);
1426 if (restResponse.getErrorCode() == 200) {
1427 String newVersion = ResponseParser.getVersionFromResponse(restResponse);
1428 resourceDetails.setVersion(newVersion);
1429 resourceDetails.setLifecycleState(LifecycleStateEnum.CERTIFIED);
1430 resourceDetails.setLastUpdaterUserId(sdncTesterDetails.getUserId());
1431 resourceDetails.setLastUpdaterFullName(sdncTesterDetails.getFullName());
1432 String uniqueIdFromRresponse = ResponseParser.getValueFromJsonResponse(restResponse.getResponse(),
1434 resourceDetails.setUniqueId(uniqueIdFromRresponse);
1436 return restResponse;
1439 private void certifyVf(ResourceReqDetails resource, ResourceReqDetails computeResource,
1440 ResourceReqDetails cpResource) throws Exception {
1441 RestResponse createAtomicResourceInstance = createAtomicInstanceForVFDuringSetup(resource, cpResource,
1442 sdncDesignerDetails);
1443 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1444 String fromCompInstId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
1446 createAtomicResourceInstance = createAtomicInstanceForVFDuringSetup(resource, computeResource,
1447 sdncDesignerDetails);
1448 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1449 String toCompInstId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
1451 RestResponse response = ArtifactRestUtils.addInformationalArtifactToResource(heatArtifactDetails,
1452 sdncDesignerDetails, resource.getUniqueId());
1453 ResourceRestUtils.checkSuccess(response);
1455 String capOwnerId = toCompInstId;
1456 User user = sdncDesignerDetails;
1457 ComponentTypeEnum containerCompType = ComponentTypeEnum.RESOURCE;
1459 fulfillCpRequirement(resource, fromCompInstId, toCompInstId, capOwnerId, user, containerCompType);
1461 RestResponse changeResourceStateToCertified = changeResourceStateToCertified(resource);
1462 ResourceRestUtils.checkSuccess(changeResourceStateToCertified);