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.service;
23 import org.codehaus.jettison.json.JSONException;
24 import org.json.JSONArray;
25 import org.junit.rules.TestName;
26 import org.openecomp.sdc.be.dao.api.ActionStatus;
27 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
28 import org.openecomp.sdc.be.model.*;
29 import org.openecomp.sdc.ci.tests.api.ComponentInstanceBaseTest;
30 import org.openecomp.sdc.ci.tests.datatypes.*;
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.BaseValidationUtils;
38 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
39 import org.slf4j.Logger;
40 import org.slf4j.LoggerFactory;
41 import org.testng.AssertJUnit;
42 import org.testng.annotations.BeforeMethod;
43 import org.testng.annotations.Test;
45 import java.io.FileNotFoundException;
46 import java.io.IOException;
47 import java.util.ArrayList;
48 import java.util.Arrays;
49 import java.util.List;
51 import static org.testng.Assert.assertEquals;
52 import static org.testng.Assert.assertTrue;
54 public class ServiceComponentInstanceCRUDTest extends ComponentInstanceBaseTest {
55 private static Logger log = LoggerFactory.getLogger(ServiceComponentInstanceCRUDTest.class.getName());
56 private static final String SPACE_STRING = " ";
57 private static String REQUIREMENT_NAME = "host";
58 private static String CAPABILITY_TYPE = "tosca.capabilities.Container";
60 private String reqOwnerId;
61 private String capOwnerId;
63 public ServiceComponentInstanceCRUDTest() {
64 super(new TestName(), ServiceComponentInstanceCRUDTest.class.getSimpleName());
67 @BeforeMethod(alwaysRun = true)
68 public void before() throws Exception {
73 private void createComponents() throws Exception {
74 createAtomicResource(resourceDetailsVFC_01);
75 createAtomicResource(resourceDetailsVFC_02);
76 createAtomicResource(resourceDetailsCP_01);
77 createAtomicResource(resourceDetailsVL_01);
78 createAtomicResource(resourceDetailsVL_02);
79 createVF(resourceDetailsVF_01);
80 createVF(resourceDetailsVF_02);
81 createService(serviceDetails_01);
82 certifyResource(resourceDetailsVFC_01);
83 certifyResource(resourceDetailsVFC_02);
84 RestResponse createAtomicResourceInstance = createAtomicInstanceForVFDuringSetup(resourceDetailsVF_01,
85 resourceDetailsVFC_01, sdncDesignerDetails);
86 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
87 reqOwnerId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
88 createAtomicResourceInstance = createAtomicInstanceForVFDuringSetup(resourceDetailsVF_02, resourceDetailsVFC_02,
90 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
91 capOwnerId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);// should
95 // getUniqueIdOfFirstInstance
101 private void certifyResource(ResourceReqDetails resource) throws Exception {
102 /*changeResourceLifecycleState(resource, sdncDesignerDetails.getUserId(),
103 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
104 changeResourceLifecycleState(resource, sdncTesterDetails.getUserId(), LifeCycleStatesEnum.STARTCERTIFICATION);*/
105 changeResourceLifecycleState(resource, sdncTesterDetails.getUserId(), LifeCycleStatesEnum.CERTIFY);
108 private void changeResourceLifecycleState(ResourceReqDetails resourceDetails, String userUserId,
109 LifeCycleStatesEnum lifeCycleStates) throws Exception {
110 RestResponse response = LifecycleRestUtils.changeResourceState(resourceDetails, userUserId, lifeCycleStates);
111 LifecycleRestUtils.checkLCS_Response(response);
114 private void changeServiceLifecycleState(ServiceReqDetails serviceDetails, User user,
115 LifeCycleStatesEnum lifeCycleStates) throws Exception {
116 RestResponse response = LifecycleRestUtils.changeServiceState(serviceDetails, user, lifeCycleStates);
117 LifecycleRestUtils.checkLCS_Response(response);
120 private void createVFInstanceFailWithoutChangeState(ActionStatus actionStatus, List<String> variables,
121 ResourceReqDetails vfResource, User user, int errorCode) throws Exception {
122 RestResponse createVFInstanceSuccessfullyWithoutChangeStateResp = createVFInstance(serviceDetails_01,
124 checkErrorMessage(actionStatus, variables, errorCode, createVFInstanceSuccessfullyWithoutChangeStateResp);
127 private void createVFInstanceFail(ActionStatus actionStatus, List<String> variables, ResourceReqDetails vfResource,
128 User user, int errorCode) throws Exception, FileNotFoundException, JSONException {
129 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, vfResource, user);
130 checkErrorMessage(actionStatus, variables, errorCode, createVFInstResp);
133 private void deleteVFInstanceFail(ActionStatus actionStatus, List<String> variables, ResourceReqDetails vfResource,
134 User user, int errorCode) throws Exception, FileNotFoundException, JSONException {
135 RestResponse deleteVFInstResp = deleteVFInstance(vfResource.getUniqueId(), serviceDetails_01, user);
136 checkErrorMessage(actionStatus, variables, errorCode, deleteVFInstResp);
139 private void createAtomicResourceInstanceFailWithoutChangeState(ActionStatus actionStatus, List<String> variables,
140 ResourceReqDetails atomicResource, User user, int errorCode)
141 throws Exception, FileNotFoundException, JSONException {
142 RestResponse createAtomicInstResp = createAtomicInstanceForService(serviceDetails_01, atomicResource, user);
143 checkErrorMessage(actionStatus, variables, errorCode, createAtomicInstResp);
146 private void createAtomicResourceInstanceFail(ActionStatus actionStatus, List<String> variables,
147 ResourceReqDetails atomicResource, User user, int errorCode)
148 throws Exception, FileNotFoundException, JSONException {
149 RestResponse createAtomicInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, atomicResource,
151 checkErrorMessage(actionStatus, variables, errorCode, createAtomicInstResp);
154 private void deleteAtomicResourceInstanceFail(ActionStatus actionStatus, List<String> variables,
155 ResourceReqDetails atomicResource, User user, int errorCode)
156 throws Exception, FileNotFoundException, JSONException {
157 RestResponse deleteAtomicInstResp = deleteAtomicInstanceForService(atomicResource.getUniqueId(),
158 serviceDetails_01, user);
159 checkErrorMessage(actionStatus, variables, errorCode, deleteAtomicInstResp);
162 private void checkErrorMessage(ActionStatus actionStatus, List<String> variables, int errorCode,
163 RestResponse response) throws Exception {
165 log.debug(response.getResponse());
166 AssertJUnit.assertEquals(errorCode, response.getErrorCode().intValue());
167 ErrorValidationUtils.checkBodyResponseOnError(actionStatus.name(), variables, response.getResponse());
170 private RestResponse createCheckedinVFInstance(ServiceReqDetails containerDetails,
171 ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
172 changeResourceLifecycleState(compInstOriginDetails, compInstOriginDetails.getCreatorUserId(),
173 LifeCycleStatesEnum.CHECKIN);
174 return createVFInstance(containerDetails, compInstOriginDetails, modifier);
177 private RestResponse createCheckedinAtomicInstanceForService(ServiceReqDetails containerDetails,
178 ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
179 changeResourceLifecycleState(compInstOriginDetails, compInstOriginDetails.getCreatorUserId(),
180 LifeCycleStatesEnum.CHECKIN);
181 return createAtomicInstanceForService(containerDetails, compInstOriginDetails, modifier);
184 private void createVFInstanceAndAtomicResourceInstanceWithoutCheckin(ResourceReqDetails vf,
185 ResourceReqDetails atomicResource, User user) throws Exception {
186 RestResponse createVFInstance = createVFInstance(serviceDetails_01, vf, user);
187 ResourceRestUtils.checkCreateResponse(createVFInstance);
188 RestResponse atomicInstanceForService = createAtomicInstanceForService(serviceDetails_01, atomicResource, user);
189 ResourceRestUtils.checkCreateResponse(atomicInstanceForService);
192 private void createVFInstanceAndAtomicResourceInstanceSuccessully(ResourceReqDetails vf,
193 ResourceReqDetails atomicResource) throws Exception, IOException {
194 createVFInstanceAndAtomicResourceInstanceSuccessully(vf, atomicResource, sdncDesignerDetails);
197 private void createVFInstanceAndAtomicResourceInstanceSuccessully(ResourceReqDetails vf,
198 ResourceReqDetails atomicResource, User user) throws Exception, IOException {
199 changeResourceLifecycleState(vf, vf.getCreatorUserId(), LifeCycleStatesEnum.CHECKIN);
200 changeResourceLifecycleState(atomicResource, atomicResource.getCreatorUserId(), LifeCycleStatesEnum.CHECKIN);
201 createVFInstanceAndAtomicResourceInstanceWithoutCheckin(vf, atomicResource, user);
205 public void createVFInstanceSuccessfullyTest() throws Exception {
206 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
207 sdncDesignerDetails);
208 ResourceRestUtils.checkCreateResponse(createVFInstResp);
209 createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
210 ResourceRestUtils.checkCreateResponse(createVFInstResp);
211 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
215 public void createVFAndAtomicInstanceTest() throws Exception {
216 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
217 sdncDesignerDetails);
218 ResourceRestUtils.checkCreateResponse(createVFInstResp);
219 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01,
220 sdncDesignerDetails);
221 ResourceRestUtils.checkCreateResponse(createVFInstResp);
222 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_01,
223 sdncDesignerDetails);
224 ResourceRestUtils.checkCreateResponse(createVFInstResp);
225 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_02,
226 sdncDesignerDetails);
227 ResourceRestUtils.checkCreateResponse(createVFInstResp);
228 getComponentAndValidateRIs(serviceDetails_01, 4, 0);
232 public void deleteAtomicInstanceTest() throws Exception {
233 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
234 sdncDesignerDetails);
236 ResourceRestUtils.checkCreateResponse(createVFInstResp);
237 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01,
238 sdncDesignerDetails);
240 ResourceRestUtils.checkCreateResponse(createVFInstResp);
241 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_01,
242 sdncDesignerDetails);
244 ResourceRestUtils.checkCreateResponse(createVFInstResp);
245 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_02,
246 sdncDesignerDetails);
248 ResourceRestUtils.checkCreateResponse(createVFInstResp);
250 String compInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
252 createVFInstResp = deleteAtomicInstanceForService(compInstId, serviceDetails_01, sdncDesignerDetails);
253 ResourceRestUtils.checkDeleteResponse(createVFInstResp);
254 getComponentAndValidateRIs(serviceDetails_01, 3, 0);
258 public void deleteVFInstanceTest() throws Exception {
259 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
260 sdncDesignerDetails);
262 ResourceRestUtils.checkCreateResponse(createVFInstResp);
263 createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
264 String compInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
266 ResourceRestUtils.checkCreateResponse(createVFInstResp);
267 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01,
268 sdncDesignerDetails);
270 ResourceRestUtils.checkCreateResponse(createVFInstResp);
272 createVFInstResp = deleteVFInstance(compInstId, serviceDetails_01, sdncDesignerDetails);
273 ResourceRestUtils.checkDeleteResponse(createVFInstResp);
274 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
278 public void associateDissociateTwoVFs() throws Exception {
280 RestResponse createVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
281 ResourceRestUtils.checkCreateResponse(createVFInstResp);
282 String fromCompInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
283 createVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
284 ResourceRestUtils.checkCreateResponse(createVFInstResp);
285 String toCompInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
287 String capType = CAPABILITY_TYPE;
288 String reqName = REQUIREMENT_NAME;
290 RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails,
292 ResourceRestUtils.checkSuccess(getResourceResponse);
293 CapReqDef capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
294 List<CapabilityDefinition> capList = capReqDef.getCapabilities().get(capType);
295 List<RequirementDefinition> reqList = capReqDef.getRequirements().get(capType);
297 RequirementCapabilityRelDef requirementDef = getReqCapRelation(fromCompInstId, toCompInstId, capType, reqName,
300 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
301 getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails,
303 capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
304 List<RequirementDefinition> list = capReqDef.getRequirements().get(capType);
305 AssertJUnit.assertEquals("Check requirement", null, list);
306 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
308 dissociateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
309 getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails,
311 capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
312 list = capReqDef.getRequirements().get(capType);
313 AssertJUnit.assertEquals("Check requirement", 1, list.size());
314 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
317 private RequirementCapabilityRelDef getReqCapRelation(String reqCompInstId, String capCompInstId, String capType,
318 String reqName, List<CapabilityDefinition> capList, List<RequirementDefinition> reqList) {
319 return ElementFactory.getReqCapRelation(reqCompInstId, capCompInstId, reqOwnerId, capOwnerId, capType, reqName,
324 public void createResourceInstanceByDifferentDesignerTest() throws Exception {
325 createVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01,
326 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), 409);
327 createAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(),
328 resourceDetailsCP_01, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), 409);
329 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
333 public void createResourceInstanceByDifferentDesignerTest_ServiceIsCheckedin() throws Exception {
334 User designer2 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2);
336 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
337 changeServiceLifecycleState(serviceDetails_01, designer2, LifeCycleStatesEnum.CHECKOUT);
339 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01, designer2);
340 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
345 public void createResourceInstanceByTester() throws Exception {
346 createVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01,
347 ElementFactory.getDefaultUser(UserRoleEnum.TESTER), 409);
348 createAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(),
349 resourceDetailsCP_01, ElementFactory.getDefaultUser(UserRoleEnum.TESTER), 409);
350 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
354 public void createResourceInstanceWithNotASDCUserTest() throws Exception {
355 sdncDesignerDetails.setUserId("ab0001");
356 createVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01,
357 sdncDesignerDetails, 409);
358 createAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(),
359 resourceDetailsCP_01, sdncDesignerDetails, 409);
360 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
364 public void createResourceInstanceWithEmptyUserIdTest() throws Exception {
365 sdncDesignerDetails.setUserId("");
366 createVFInstanceFail(ActionStatus.MISSING_INFORMATION, new ArrayList<String>(), resourceDetailsVF_01,
367 sdncDesignerDetails, 403);
368 createAtomicResourceInstanceFail(ActionStatus.MISSING_INFORMATION, new ArrayList<String>(),
369 resourceDetailsCP_01, sdncDesignerDetails, 403);
370 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
374 public void createResourceInstanceWithEmptyServiceUidTest() throws Exception {
375 serviceDetails_01.setUniqueId("");
376 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
377 sdncDesignerDetails);
378 assertEquals(404, createVFInstResp.getErrorCode().intValue());
379 RestResponse createAtomicInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01,
380 resourceDetailsCP_01, sdncDesignerDetails);
381 assertEquals(404, createAtomicInstResp.getErrorCode().intValue());
385 public void createResourceInstanceWhileResourceNotExistTest() throws Exception {
386 String vfResourceUniqueId = "1234";
387 String atomicResourceUniqueId = "5678";
389 resourceDetailsVF_01.setUniqueId(vfResourceUniqueId);
390 resourceDetailsCP_01.setUniqueId(atomicResourceUniqueId);
392 createVFInstanceFailWithoutChangeState(ActionStatus.RESOURCE_NOT_FOUND,
393 new ArrayList<String>(Arrays.asList("")), resourceDetailsVF_01, sdncDesignerDetails, 404);
394 createAtomicResourceInstanceFailWithoutChangeState(ActionStatus.RESOURCE_NOT_FOUND,
395 new ArrayList<String>(Arrays.asList("")), resourceDetailsCP_01, sdncDesignerDetails, 404);
399 public void createResourceInstanceInServiceNotExistsTest() throws Exception {
400 serviceDetails_01.setUniqueId("1234");
401 createVFInstanceFail(ActionStatus.SERVICE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")),
402 resourceDetailsVF_01, sdncDesignerDetails, 404);
403 createAtomicResourceInstanceFail(ActionStatus.SERVICE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")),
404 resourceDetailsCP_01, sdncDesignerDetails, 404);
408 public void createResourceInstanceInCheckedinServiceTest() throws Exception {
409 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
411 createVFInstanceFailWithoutChangeState(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(),
412 resourceDetailsVF_01, sdncDesignerDetails, 409);
413 createAtomicResourceInstanceFailWithoutChangeState(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(),
414 resourceDetailsCP_01, sdncDesignerDetails, 409);
415 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
418 @Test(enabled = false)
419 public void createResourceInstance_ResourceInCheckoutStateTest() throws Exception {
420 LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails, "0.1",
421 LifeCycleStatesEnum.CHECKIN);
422 RestResponse createVFInstanceWithoutChangeStateResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01,
423 sdncDesignerDetails);
424 ComponentInstanceRestUtils.checkCreateResponse(createVFInstanceWithoutChangeStateResp);
425 RestResponse createAtomicInstWithoutCheangeStateResp = createAtomicInstanceForService(serviceDetails_01,
426 resourceDetailsCP_01, sdncDesignerDetails);
427 ComponentInstanceRestUtils.checkCreateResponse(createAtomicInstWithoutCheangeStateResp);
428 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
432 public void createResourceInstance_ResourceInCertificationRequestStateTest() throws Exception {
433 changeResourceLifecycleState(resourceDetailsVF_01, sdncDesignerDetails.getUserId(),
434 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
435 changeResourceLifecycleState(resourceDetailsCP_01, sdncDesignerDetails.getUserId(),
436 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
438 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01);
439 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
443 public void createResourceInstance_startCertificationStateTest() throws Exception {
444 changeResourceLifecycleState(resourceDetailsVF_01, sdncDesignerDetails.getUserId(),
445 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
446 changeResourceLifecycleState(resourceDetailsCP_01, sdncDesignerDetails.getUserId(),
447 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
449 changeResourceLifecycleState(resourceDetailsVF_01, sdncTesterDetails.getUserId(),
450 LifeCycleStatesEnum.STARTCERTIFICATION);
451 changeResourceLifecycleState(resourceDetailsCP_01, sdncTesterDetails.getUserId(),
452 LifeCycleStatesEnum.STARTCERTIFICATION);
454 createVFInstanceAndAtomicResourceInstanceWithoutCheckin(resourceDetailsVF_01, resourceDetailsCP_01,
455 sdncDesignerDetails);
456 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
461 public void createResourceInstance_certifiedStateTest() throws Exception {
462 certifyResource(resourceDetailsVF_01);
463 certifyResource(resourceDetailsCP_01);
465 createVFInstanceAndAtomicResourceInstanceWithoutCheckin(resourceDetailsVF_01, resourceDetailsCP_01,
466 sdncDesignerDetails);
470 public void createResourceInstance_OneHasDifferentOwner() throws Exception {
471 User designer2 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2);
473 ResourceReqDetails vfResource = new ResourceReqDetails(resourceDetailsVF_01, "0.1");
474 vfResource.setUniqueId(null);
475 vfResource.setName("newVF");
476 vfResource.setTags(new ArrayList<String>(Arrays.asList(vfResource.getName())));
477 createVF(vfResource, designer2);
479 RestResponse atomicInstanceForService = createCheckedinAtomicInstanceForService(serviceDetails_01,
480 resourceDetailsCP_01, sdncDesignerDetails);
481 ResourceRestUtils.checkCreateResponse(atomicInstanceForService);
482 createVFInstanceFailWithoutChangeState(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), vfResource,
485 getComponentAndValidateRIs(serviceDetails_01, 1, 0);
489 public void indexesOfVFInstancesTest() throws Exception {
490 String firstInstanceName = resourceDetailsVF_01.getName() + SPACE_STRING + "1";
491 String secondInstanceName = resourceDetailsVF_01.getName() + SPACE_STRING + "2";
492 String thirdInstanceName = resourceDetailsVF_01.getName() + SPACE_STRING + "3";
494 LifecycleRestUtils.changeResourceState(resourceDetailsVF_01, sdncDesignerDetails, "0.1",
495 LifeCycleStatesEnum.CHECKIN);
497 RestResponse createFirstVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01,
498 sdncDesignerDetails);
499 ResourceRestUtils.checkCreateResponse(createFirstVFInstResp);
500 RestResponse createSecondVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01,
501 sdncDesignerDetails);
502 ResourceRestUtils.checkCreateResponse(createSecondVFInstResp);
503 RestResponse createThirdVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01,
504 sdncDesignerDetails);
505 ResourceRestUtils.checkCreateResponse(createThirdVFInstResp);
507 Component service = getComponentAndValidateRIs(serviceDetails_01, 3, 0);
508 List<ComponentInstance> componentInstancesList = service.getComponentInstances();
509 for (ComponentInstance instance : componentInstancesList) {
510 String instanceName = instance.getName();
511 boolean isEqualToFirstInstanceName = instanceName.equals(firstInstanceName);
512 boolean isEqualToSecondInstanceName = instanceName.equals(secondInstanceName);
513 boolean isEqualToThirdInstanceName = instanceName.equals(thirdInstanceName);
514 assertTrue(isEqualToFirstInstanceName || isEqualToSecondInstanceName || isEqualToThirdInstanceName);
519 public void vfInstancesAmountInTwoServiceVersionsTest() throws Exception {
520 String oldServiceUniqueId = serviceDetails_01.getUniqueId();
522 createTwoCheckedinVFInstances();
524 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
525 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKOUT);
527 String newSerivceUniqueIdAfterChangeLifecycleState = serviceDetails_01.getUniqueId();
528 getComponentAndValidateRIsAfterChangeLifecycleState(oldServiceUniqueId, serviceDetails_01, 2, 0);
531 checkServiceOldVersionRIs(oldServiceUniqueId, newSerivceUniqueIdAfterChangeLifecycleState, 2, 0);
533 // Add one more resource instance to second version of service
534 LifecycleRestUtils.changeResourceState(resourceDetailsVL_01, sdncDesignerDetails, "0.1",
535 LifeCycleStatesEnum.CHECKIN);
536 RestResponse createAtomicResourceInstResp = createAtomicResourceInstanceToSecondServiceVersion(
537 newSerivceUniqueIdAfterChangeLifecycleState, resourceDetailsVL_01);
538 String atomicResourceUniqueId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstResp);
539 getComponentAndValidateRIsAfterAddingAtomicResourceInstance(oldServiceUniqueId, serviceDetails_01, 3, 0);
541 // Check that RIs are same as in the beginning - like in old version of
543 deleteCompInstReqCapFromExpected(atomicResourceUniqueId);
544 checkServiceOldVersionRIs(oldServiceUniqueId, newSerivceUniqueIdAfterChangeLifecycleState, 2, 0);
548 private void createTwoCheckedinVFInstances() throws Exception {
549 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
550 sdncDesignerDetails);
551 ResourceRestUtils.checkCreateResponse(createFirstVFInstResp);
552 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
553 sdncDesignerDetails);
554 ResourceRestUtils.checkCreateResponse(createSecondVFInstResp);
557 private void getComponentAndValidateRIsAfterAddingAtomicResourceInstance(String oldComponentUniqueId,
558 ComponentReqDetails componentDetails, int numOfRIs, int numOfRelations) throws Exception {
559 getComponentAndValidateRIsAfterChangeLifecycleState(oldComponentUniqueId, componentDetails, numOfRIs,
564 private void checkServiceOldVersionRIs(String oldUniqueId, String newUniqueId, int numOfRIs, int numOfRelations)
565 throws IOException, Exception {
566 serviceDetails_01.setUniqueId(oldUniqueId);
567 getComponentAndValidateRIsAfterChangeLifecycleState(newUniqueId, serviceDetails_01, numOfRIs, numOfRelations);
570 private RestResponse createAtomicResourceInstanceToSecondServiceVersion(String secondServiceUniqueId,
571 ResourceReqDetails resourceToAdd) throws Exception {
572 serviceDetails_01.setUniqueId(secondServiceUniqueId);
573 RestResponse createAtomicResourceInstResp = createAtomicInstanceForService(serviceDetails_01, resourceToAdd,
574 sdncDesignerDetails);
575 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstResp);
576 return createAtomicResourceInstResp;
580 public void createResourceInstanceToUnsupportedComponentTest() throws Exception {
581 String unsupportedType = "unsupported";
582 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
583 .getComponentResourceInstance(resourceDetailsCP_01);
584 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
585 resourceInstanceReqDetails, sdncDesignerDetails, serviceDetails_01.getUniqueId(), unsupportedType);
586 checkErrorMessage(ActionStatus.UNSUPPORTED_ERROR, new ArrayList<String>(Arrays.asList(unsupportedType)), 400,
587 createResourceInstanceResponse);
591 public void deleteResourceInstanceByDifferentDesignerTest() throws Exception {
593 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01);
595 deleteVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01,
596 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), 409);
597 deleteAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(),
598 resourceDetailsCP_01, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), 409);
599 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
603 public void deleteResourceInstanceByDifferentDesignerTest_ServiceIsCheckedin() throws Exception {
605 String oldServiceUniqueId = serviceDetails_01.getUniqueId();
607 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
608 sdncDesignerDetails);
609 ResourceRestUtils.checkCreateResponse(createVFInstResp);
610 RestResponse createAtomicResourceInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01,
611 resourceDetailsCP_01, sdncDesignerDetails);
612 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstResp);
614 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
615 changeServiceLifecycleState(serviceDetails_01, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2),
616 LifeCycleStatesEnum.CHECKOUT);
617 String newServiceUniqueId = serviceDetails_01.getUniqueId();
619 String oldVFInstanceUniqueId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
620 String newVFInstanceUniqueId = oldVFInstanceUniqueId.replaceAll(oldServiceUniqueId,
621 serviceDetails_01.getUniqueId());
622 String oldAtomicResourceInstanceUniqueId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstResp);
623 String newAtomicResourceInstanceUniqueId = oldAtomicResourceInstanceUniqueId.replaceAll(oldServiceUniqueId,
624 serviceDetails_01.getUniqueId());
626 deleteVFInstanceAndAtomicResourceInstanceSuccessfully(newVFInstanceUniqueId, newAtomicResourceInstanceUniqueId,
627 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2));
629 serviceDetails_01.setUniqueId(oldServiceUniqueId);
630 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
632 serviceDetails_01.setUniqueId(newServiceUniqueId);
633 updateExpectedReqCapAfterChangeLifecycleState(oldServiceUniqueId, serviceDetails_01.getUniqueId());
634 deleteCompInstReqCapFromExpected(newVFInstanceUniqueId);
635 deleteCompInstReqCapFromExpected(newAtomicResourceInstanceUniqueId);
636 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
639 private void deleteVFInstanceAndAtomicResourceInstanceSuccessfully(String vfInstanceUniqueId,
640 String atomicResourceInstanceUniqueId) throws IOException, Exception {
641 deleteVFInstanceAndAtomicResourceInstanceSuccessfully(vfInstanceUniqueId, atomicResourceInstanceUniqueId,
642 sdncDesignerDetails);
645 private void deleteVFInstanceAndAtomicResourceInstanceSuccessfully(String vfInstanceUniqueId,
646 String atomicResourceInstanceUniqueId, User user) throws IOException, Exception {
647 RestResponse deleteVFInstResp = deleteVFInstance(vfInstanceUniqueId, serviceDetails_01, user);
648 ResourceRestUtils.checkDeleteResponse(deleteVFInstResp);
649 RestResponse deleteAtomicResourceInsResp = deleteAtomicInstanceForService(atomicResourceInstanceUniqueId,
650 serviceDetails_01, user);
651 ResourceRestUtils.checkDeleteResponse(deleteAtomicResourceInsResp);
655 public void deleteResourceInstanceByTesterUserTest() throws Exception {
656 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01);
657 deleteVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01,
658 ElementFactory.getDefaultUser(UserRoleEnum.TESTER), 409);
659 deleteAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(),
660 resourceDetailsCP_01, ElementFactory.getDefaultUser(UserRoleEnum.TESTER), 409);
661 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
665 public void deleteResourceInstanceByNotASDCUserTest() throws Exception {
666 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01);
667 User notASDCUser = new User();
668 notASDCUser.setUserId("ab0001");
669 deleteVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01,
671 deleteAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(),
672 resourceDetailsCP_01, notASDCUser, 409);
673 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
677 public void deleteResourceInstanceFromCheckedinServiceTest() throws Exception {
678 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01);
679 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
680 deleteVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01,
681 sdncDesignerDetails, 409);
682 deleteAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(),
683 resourceDetailsCP_01, sdncDesignerDetails, 409);
684 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
688 public void deleteResourceInstanceWhileResourceCertifiedStateTest() throws Exception {
689 certifyResource(resourceDetailsVF_01);
690 certifyResource(resourceDetailsCP_01);
692 RestResponse createVFInstance = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
693 ResourceRestUtils.checkCreateResponse(createVFInstance);
694 String vfInstUniqueId = ResponseParser.getUniqueIdFromResponse(createVFInstance);
695 RestResponse atomicInstanceForService = createAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01,
696 sdncDesignerDetails);
697 ResourceRestUtils.checkCreateResponse(atomicInstanceForService);
698 String atomicInstUniqueId = ResponseParser.getUniqueIdFromResponse(atomicInstanceForService);
700 deleteVFInstanceAndAtomicResourceInstanceSuccessfully(vfInstUniqueId, atomicInstUniqueId);
702 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
705 // fail - bug DE191849
707 public void deleteNotFoundResourceInstanceTest() throws Exception, Throwable {
709 resourceDetailsVF_01.setUniqueId("1234");
710 resourceDetailsCP_01.setUniqueId("5678");
712 deleteVFInstanceFail(ActionStatus.RESOURCE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")),
713 resourceDetailsVF_01, sdncDesignerDetails, 404);
714 deleteAtomicResourceInstanceFail(ActionStatus.RESOURCE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")),
715 resourceDetailsCP_01, sdncDesignerDetails, 404);
716 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
718 // {"requestError":{"serviceException":{"messageId":"SVC4503","text":"Error:
719 // Requested '%1' service was not found.","variables":["1234"]}}}>
723 public void deleteResourceInstanceFromServiceNotFoundTest() throws Exception, Throwable {
724 serviceDetails_01.setUniqueId("1234");
725 deleteVFInstanceFail(ActionStatus.SERVICE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")),
726 resourceDetailsVF_01, sdncDesignerDetails, 404);
727 deleteAtomicResourceInstanceFail(ActionStatus.SERVICE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")),
728 resourceDetailsCP_01, sdncDesignerDetails, 404);
732 public void deleteResourceInstanceFromUnsupportedTypeTest() throws Exception {
733 String unsupportedType = "unsupportedType";
734 RestResponse deleteVFInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(sdncDesignerDetails,
735 serviceDetails_01.getUniqueId(), resourceDetailsVF_01.getUniqueId(), unsupportedType);
736 checkErrorMessage(ActionStatus.UNSUPPORTED_ERROR, new ArrayList<String>(Arrays.asList(unsupportedType)), 400,
737 deleteVFInstanceResponse);
738 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
742 public void deleteResourceInstanceWithEmptyServiceUidTest() throws Exception, Throwable {
743 serviceDetails_01.setUniqueId("");
744 RestResponse deleteVFInstResp = deleteVFInstance(resourceDetailsVF_01.getUniqueId(), serviceDetails_01,
745 sdncDesignerDetails);
746 assertEquals(404, deleteVFInstResp.getErrorCode().intValue());
750 public void deleteResourceInstanceWithEmptyResourceInstanceUidTest() throws Exception, Throwable {
751 RestResponse deleteVFInstResp = deleteVFInstance("", serviceDetails_01, sdncDesignerDetails);
752 assertEquals(405, deleteVFInstResp.getErrorCode().intValue());
753 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
757 public void deleteResourceInstanceWithEmptyUserIdTest() throws Exception {
758 sdncDesignerDetails.setUserId("");
759 deleteVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01,
760 sdncDesignerDetails, 409);
761 deleteAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(),
762 resourceDetailsCP_01, sdncDesignerDetails, 409);
763 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
766 // fail - bug DE188994
768 public void associateResourceInstanceToResourceInstanceNotFoundTest() throws Exception, Throwable {
769 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
770 sdncDesignerDetails);
771 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
772 String capCompInstId = "1234";
774 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
775 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
776 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
777 .get(CAPABILITY_TYPE);
778 List<CapabilityDefinition> capListBeforeAssociate = new ArrayList<CapabilityDefinition>();
779 CapabilityDefinition cap = new CapabilityDefinition();
780 cap.setUniqueId(capCompInstId);
781 capListBeforeAssociate.add(cap);
782 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
783 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
785 assocaiteInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESOURCE_INSTANCE_NOT_FOUND, 404,
786 new ArrayList<String>(Arrays.asList(capCompInstId)));
788 CapReqDef capReqDefAfterAssociate = ComponentRestUtils
789 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
790 List<CapabilityDefinition> capabilitiesAfterAssociate = capReqDefAfterAssociate.getCapabilities()
791 .get(CAPABILITY_TYPE);
792 List<RequirementDefinition> requirementsAfterAssoicate = capReqDefAfterAssociate.getRequirements()
793 .get(CAPABILITY_TYPE);
794 // AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate,
795 // requirementsAfterAssoicate);
796 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
797 // capabilitiesAfterAssociate);
799 getComponentAndValidateRIs(serviceDetails_01, 1, 0);
801 // "messageId": "SVC4116",
802 // "text": "Error: Invalid Content.",
805 // "9ae76786-2a9c-4409-95cb-db32885ed07f.eece8aaf-eb9f-4aff-b9a5-a11ca11de9e5.vf1001",
810 // this case is not relevant any more, it is tested as part of occurrences
812 @Test(enabled = false)
813 public void associateOnceAgainExistingRelationTest() throws Exception {
814 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
815 sdncDesignerDetails);
816 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
817 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
818 sdncDesignerDetails);
819 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
821 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
822 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
823 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
824 .get(CAPABILITY_TYPE);
825 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
826 .get(CAPABILITY_TYPE);
828 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
829 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
831 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
832 //////////////////////////////////////////////
833 // NO ERROR - RELATION ALREADY EXIST
834 // assocaiteInstancesFail(requirementDef, sdncDesignerDetails,
835 // ActionStatus.RESOURCE_INSTANCE_NOT_FOUND, 404, new
836 // ArrayList<String>(Arrays.asList(capCompInstId)));
837 //////////////////////////////////////////////
839 CapReqDef capReqDefAfterAssociate = ComponentRestUtils
840 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
841 List<CapabilityDefinition> capListAfterAssociate = capReqDefAfterAssociate.getCapabilities()
842 .get(CAPABILITY_TYPE);
843 List<RequirementDefinition> reqListAfterAssociate = capReqDefAfterAssociate.getRequirements()
844 .get(CAPABILITY_TYPE);
846 // AssertJUnit.assertEquals("Check requirement", null,
847 // reqListAfterAssociate);
848 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
849 // capListAfterAssociate);
851 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
853 // "messageId": "SVC4119",
854 // "text": "Error: No relation found between resource instances
855 // \u0027%1\u0027 and \u0027%2\u0027 for requirement \u0027%3\u0027.",
864 public void associateInstancesInMissingServiceTest() throws Exception {
865 serviceDetails_01.setUniqueId("1234");
866 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
867 assocaiteInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.SERVICE_NOT_FOUND, 404,
868 new ArrayList<String>(Arrays.asList("")));
872 public void associateAfterDeletingResourceTest() throws Exception {
873 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
874 sdncDesignerDetails);
875 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
876 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
877 sdncDesignerDetails);
878 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
880 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
881 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
882 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
883 .get(CAPABILITY_TYPE);
884 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
885 .get(CAPABILITY_TYPE);
887 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
888 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
890 ResourceRestUtils.deleteResource(resourceDetailsVF_01.getUniqueId(), sdncDesignerDetails.getUserId());
892 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
893 CapReqDef capReqDefAfterAssociate = ComponentRestUtils
894 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
895 List<CapabilityDefinition> capListAfterAssociate = capReqDefAfterAssociate.getCapabilities()
896 .get(CAPABILITY_TYPE);
898 // for (CapabilityDefinition capabilityDefinition :
899 // capListBeforeAssociate) {
900 // if (capabilityDefinition.getType().equals(CAPABILITY_TYPE)){
901 // capabilityDefinition.setMinOccurrences("0");
905 // List<RequirementDefinition> reqListAfterAssociate =
906 // capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
908 // AssertJUnit.assertEquals("Check requirement", null,
909 // reqListAfterAssociate);
911 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
912 // capListAfterAssociate);
914 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
918 public void associateInstancesInCheckedinServiceTest() throws Exception {
919 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
920 sdncDesignerDetails);
921 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
922 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
923 sdncDesignerDetails);
924 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
926 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
927 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
928 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
929 .get(CAPABILITY_TYPE);
930 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
931 .get(CAPABILITY_TYPE);
933 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
934 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
936 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
938 assocaiteInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESTRICTED_OPERATION, 409,
939 new ArrayList<String>());
941 CapReqDef capReqDefAfterAssociate = ComponentRestUtils
942 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
943 List<CapabilityDefinition> capabilitiesAfterAssociate = capReqDefAfterAssociate.getCapabilities()
944 .get(CAPABILITY_TYPE);
945 List<RequirementDefinition> requirementsAfterAssoicate = capReqDefAfterAssociate.getRequirements()
946 .get(CAPABILITY_TYPE);
947 AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate, requirementsAfterAssoicate);
948 AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate, capabilitiesAfterAssociate);
950 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
953 // fail - bug DE188994
955 public void associateAfterCheckoutAllInstancesTest() throws Exception {
956 String firstVFUniqueId = resourceDetailsVF_01.getUniqueId();
957 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
958 sdncDesignerDetails);
959 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
960 String secondVFUniqueId = resourceDetailsVF_02.getUniqueId();
961 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
962 sdncDesignerDetails);
963 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
965 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
966 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
967 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
968 .get(CAPABILITY_TYPE);
969 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
970 .get(CAPABILITY_TYPE);
972 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
973 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
975 changeResourceLifecycleState(resourceDetailsVF_01, sdncDesignerDetails.getUserId(),
976 LifeCycleStatesEnum.CHECKOUT);
977 changeResourceLifecycleState(resourceDetailsVF_02, sdncDesignerDetails.getUserId(),
978 LifeCycleStatesEnum.CHECKOUT);
980 requirementDef.setFromNode(
981 requirementDef.getFromNode().replaceAll(firstVFUniqueId, resourceDetailsVF_01.getUniqueId()));
983 .setToNode(requirementDef.getToNode().replaceAll(secondVFUniqueId, resourceDetailsVF_02.getUniqueId()));
985 assocaiteInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESTRICTED_OPERATION, 409,
986 new ArrayList<String>());
988 CapReqDef capReqDefAfterAssociate = ComponentRestUtils
989 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
990 List<CapabilityDefinition> capabilitiesAfterAssociate = capReqDefAfterAssociate.getCapabilities()
991 .get(CAPABILITY_TYPE);
992 List<RequirementDefinition> requirementsAfterAssoicate = capReqDefAfterAssociate.getRequirements()
993 .get(CAPABILITY_TYPE);
994 // AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate,
995 // requirementsAfterAssoicate);
996 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
997 // capabilitiesAfterAssociate);
999 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
1001 // "messageId": "SVC4116",
1002 // "text": "Error: Invalid Content.",
1004 // "e9dcea15-ce27-4381-a554-4278973cefb1.d0b3affd-cf92-4626-adfe-961b44103924.vf1001",
1005 // "e9dcea15-ce27-4381-a554-4278973cefb1.d0b3affd-cf92-4626-adfe-961b44103924.vf1001",
1012 public void associateInstancesByDifferentUsersTest() throws Exception {
1013 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
1014 sdncDesignerDetails);
1015 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1016 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
1017 sdncDesignerDetails);
1018 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1020 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
1021 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1022 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
1023 .get(CAPABILITY_TYPE);
1024 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
1025 .get(CAPABILITY_TYPE);
1027 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
1028 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1030 assocaiteInstancesFail(requirementDef, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2),
1031 ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
1032 assocaiteInstancesFail(requirementDef, ElementFactory.getDefaultUser(UserRoleEnum.TESTER),
1033 ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
1034 assocaiteInstancesFail(requirementDef, ElementFactory.getDefaultUser(UserRoleEnum.GOVERNOR),
1035 ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
1036 assocaiteInstancesFail(requirementDef, ElementFactory.getDefaultUser(UserRoleEnum.OPS),
1037 ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
1038 assocaiteInstancesFail(requirementDef, ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_MANAGER1),
1039 ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
1041 CapReqDef capReqDefAfterAssociate = ComponentRestUtils
1042 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1043 List<CapabilityDefinition> capabilitiesAfterAssociate = capReqDefAfterAssociate.getCapabilities()
1044 .get(CAPABILITY_TYPE);
1045 List<RequirementDefinition> requirementsAfterAssoicate = capReqDefAfterAssociate.getRequirements()
1046 .get(CAPABILITY_TYPE);
1047 AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate, requirementsAfterAssoicate);
1048 AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate, capabilitiesAfterAssociate);
1050 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
1053 private void assocaiteInstancesFail(RequirementCapabilityRelDef requirementDef, User user,
1054 ActionStatus actionStatus, int errorCode, List<String> variables) throws IOException, Exception {
1055 RestResponse associateInstancesResp = ComponentInstanceRestUtils.associateInstances(requirementDef, user,
1056 serviceDetails_01.getUniqueId(), ComponentTypeEnum.SERVICE);
1057 checkErrorMessage(actionStatus, variables, errorCode, associateInstancesResp);
1060 private void dissoicateInstancesFail(RequirementCapabilityRelDef requirementDef, User user,
1061 ActionStatus actionStatus, int errorCode, List<String> variables) throws IOException, Exception {
1062 RestResponse dissoicateInstancesResp = ComponentInstanceRestUtils.dissociateInstances(requirementDef, user,
1063 serviceDetails_01.getUniqueId(), ComponentTypeEnum.SERVICE);
1064 checkErrorMessage(actionStatus, variables, errorCode, dissoicateInstancesResp);
1068 public void associateWithMissingServiceUidTest() throws Exception {
1069 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
1070 serviceDetails_01.setUniqueId("");
1071 RestResponse associateInstancesResp = ComponentInstanceRestUtils.associateInstances(requirementDef,
1072 sdncDesignerDetails, serviceDetails_01.getUniqueId(), ComponentTypeEnum.SERVICE);
1073 assertEquals(404, associateInstancesResp.getErrorCode().intValue());
1076 // fail - bug DE191824
1078 public void associateNotCompitableReqCapTest() throws Exception {
1079 RestResponse createFirstAtomicResourceInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01,
1080 resourceDetailsCP_01, sdncDesignerDetails);
1081 String reqCompInstName = ResponseParser.getNameFromResponse(createFirstAtomicResourceInstResp);
1082 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstAtomicResourceInstResp);
1083 RestResponse createSecondAtomicResourceInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01,
1084 resourceDetailsVL_02, sdncDesignerDetails);
1085 String capCompInstName = ResponseParser.getNameFromResponse(createSecondAtomicResourceInstResp);
1086 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondAtomicResourceInstResp);
1088 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
1089 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1090 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
1091 .get(CAPABILITY_TYPE);
1092 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
1093 .get(CAPABILITY_TYPE);
1095 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
1096 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1098 List<String> variables = new ArrayList<String>();
1099 variables.add(reqCompInstName);
1100 variables.add(capCompInstName);
1101 variables.add(REQUIREMENT_NAME);
1103 assocaiteInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESOURCE_INSTANCE_MATCH_NOT_FOUND, 404,
1106 CapReqDef capReqDefAfterAssociate = ComponentRestUtils
1107 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1108 List<CapabilityDefinition> capabilitiesAfterAssociate = capReqDefAfterAssociate.getCapabilities()
1109 .get(CAPABILITY_TYPE);
1110 List<RequirementDefinition> requirementsAfterAssoicate = capReqDefAfterAssociate.getRequirements()
1111 .get(CAPABILITY_TYPE);
1112 // AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate,
1113 // requirementsAfterAssoicate);
1114 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
1115 // capabilitiesAfterAssociate);
1117 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
1119 // {"requestError":{"serviceException":{"messageId":"SVC4119","text":"Error:
1120 // No relation found between resource instances '%1' and '%2' for
1121 // requirement '%3'.","variables":["CP100 1","VL200 2","host"]}}}>
1125 public void associateInstancesInTwoServiceVersionsTest() throws Exception {
1126 String oldServiceUniqueId = serviceDetails_01.getUniqueId();
1127 RestResponse createFirstVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01,
1128 sdncDesignerDetails);
1129 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1130 RestResponse createSecondVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_02,
1131 sdncDesignerDetails);
1132 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1134 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
1135 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1136 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
1137 .get(CAPABILITY_TYPE);
1138 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
1139 .get(CAPABILITY_TYPE);
1141 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
1142 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1143 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1144 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
1146 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
1147 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKOUT);
1148 String secondServiceUniqueId = serviceDetails_01.getUniqueId();
1150 serviceDetails_01.setUniqueId(oldServiceUniqueId);
1151 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
1153 updateCapabilitiesOwnerId(oldServiceUniqueId, capListBeforeAssociate, secondServiceUniqueId);
1154 updateExpectedReqCapAfterChangeLifecycleState(oldServiceUniqueId, secondServiceUniqueId);
1155 CapReqDef capReqDefAfterAssociate = ComponentRestUtils
1156 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1157 List<CapabilityDefinition> capListAfterAssociate = capReqDefAfterAssociate.getCapabilities()
1158 .get(CAPABILITY_TYPE);
1159 List<RequirementDefinition> reqListAfterAssociate = capReqDefAfterAssociate.getRequirements()
1160 .get(CAPABILITY_TYPE);
1161 // AssertJUnit.assertEquals("Check requirement", null,
1162 // reqListAfterAssociate);
1163 // AssertJUnit.assertEquals("Check capabilities",
1164 // capListBeforeAssociate, capListAfterAssociate);
1165 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
1167 RestResponse createThirdVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01,
1168 sdncDesignerDetails);
1169 String reqSecondCompInstId = ResponseParser.getUniqueIdFromResponse(createThirdVFInstResp);
1171 CapReqDef capReqDefBeforeSeconderyAssociate = ComponentRestUtils
1172 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1173 List<CapabilityDefinition> capListBeforeSeconderyAssociate = capReqDefBeforeSeconderyAssociate.getCapabilities()
1174 .get(CAPABILITY_TYPE);
1175 List<RequirementDefinition> reqListBeforeSeconderyAssociate = capReqDefBeforeSeconderyAssociate
1176 .getRequirements().get(CAPABILITY_TYPE);
1178 capCompInstId = capCompInstId.replaceAll(oldServiceUniqueId, secondServiceUniqueId);
1179 RequirementCapabilityRelDef secondRequirementDef = getReqCapRelation(reqSecondCompInstId, capCompInstId,
1180 CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeSeconderyAssociate, reqListBeforeSeconderyAssociate);
1181 associateComponentInstancesForService(secondRequirementDef, serviceDetails_01, sdncDesignerDetails);
1183 CapReqDef capReqDefAfterSeconderyAssociate = ComponentRestUtils
1184 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1185 List<CapabilityDefinition> capListAfterSeconderyAssociate = capReqDefAfterSeconderyAssociate.getCapabilities()
1186 .get(CAPABILITY_TYPE);
1187 List<RequirementDefinition> reqListAfterSeconderyAssociate = capReqDefAfterSeconderyAssociate.getRequirements()
1188 .get(CAPABILITY_TYPE);
1189 // AssertJUnit.assertEquals("Check requirement", null,
1190 // reqListAfterSeconderyAssociate);
1191 // AssertJUnit.assertEquals("Check capabilities",
1192 // capListBeforeAssociate, capListAfterSeconderyAssociate);
1193 getComponentAndValidateRIs(serviceDetails_01, 3, 2);
1196 private void updateCapabilitiesOwnerId(String oldUniqueId, List<CapabilityDefinition> capList, String newUniqueId) {
1197 serviceDetails_01.setUniqueId(newUniqueId);
1198 for (CapabilityDefinition cap : capList) {
1199 String oldOwnerId = cap.getOwnerId();
1200 String newOwnerId = oldOwnerId.replaceAll(oldUniqueId, newUniqueId);
1201 cap.setOwnerId(newOwnerId);
1206 public void dissociateRelationNotFoundTest() throws Exception {
1207 createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1208 String reqCompInstId = "1234";
1209 createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1210 String capCompInstId = "4567";
1212 CapReqDef capReqDef = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails,
1214 List<CapabilityDefinition> capList = capReqDef.getCapabilities().get(CAPABILITY_TYPE);
1215 List<RequirementDefinition> reqList = capReqDef.getRequirements().get(CAPABILITY_TYPE);
1217 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
1218 REQUIREMENT_NAME, capList, reqList);
1220 List<String> variables = new ArrayList<String>();
1221 variables.add(reqCompInstId);
1222 variables.add(capCompInstId);
1223 variables.add(REQUIREMENT_NAME);
1224 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESOURCE_INSTANCE_RELATION_NOT_FOUND,
1227 CapReqDef capReqDefAfterDissociate = ComponentRestUtils
1228 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1229 List<CapabilityDefinition> capListAfterDissociate = capReqDefAfterDissociate.getCapabilities()
1230 .get(CAPABILITY_TYPE);
1231 List<RequirementDefinition> reqListAfterDissociate = capReqDefAfterDissociate.getRequirements()
1232 .get(CAPABILITY_TYPE);
1234 AssertJUnit.assertEquals("Check requirement", 1, reqListAfterDissociate.size());
1235 AssertJUnit.assertEquals("Check requirement", reqList, reqListAfterDissociate);
1236 AssertJUnit.assertEquals("Check capabilities", capList, capListAfterDissociate);
1238 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
1243 public void dissociateRelationInServiceNotFoundTest() throws Exception {
1244 String uniqueId = "1234";
1245 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
1246 sdncDesignerDetails);
1247 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1248 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
1249 sdncDesignerDetails);
1250 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1252 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
1253 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1254 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
1255 .get(CAPABILITY_TYPE);
1256 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
1257 .get(CAPABILITY_TYPE);
1259 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
1260 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1262 serviceDetails_01.setUniqueId(uniqueId);
1263 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.SERVICE_NOT_FOUND, 404,
1264 new ArrayList<String>(Arrays.asList("")));
1269 public void dissoicateRelationWhileInstanceNotFound() throws Exception {
1270 String capUniqueId = "1234";
1272 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
1273 sdncDesignerDetails);
1274 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1275 createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1276 String capCompInstId = capUniqueId;
1278 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
1279 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1280 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
1281 .get(CAPABILITY_TYPE);
1282 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
1283 .get(CAPABILITY_TYPE);
1285 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
1286 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1288 List<String> variables = new ArrayList<String>();
1289 variables.add(reqCompInstId);
1290 variables.add(capCompInstId);
1291 variables.add(REQUIREMENT_NAME);
1292 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESOURCE_INSTANCE_RELATION_NOT_FOUND,
1295 CapReqDef capReqDefAfterDissociate = ComponentRestUtils
1296 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1297 List<CapabilityDefinition> capListAfterDissociate = capReqDefAfterDissociate.getCapabilities()
1298 .get(CAPABILITY_TYPE);
1299 List<RequirementDefinition> reqListAfterDissociate = capReqDefAfterDissociate.getRequirements()
1300 .get(CAPABILITY_TYPE);
1301 AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate, reqListAfterDissociate);
1302 AssertJUnit.assertEquals("Check capabilities", capListBeforeAssociate, capListAfterDissociate);
1304 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
1308 public void dissociateWhileServiceCheckedinTest() throws Exception {
1309 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
1310 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
1311 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESTRICTED_OPERATION, 409,
1312 new ArrayList<String>());
1316 public void dissoicateWithEmptyUserIdHeaderTest() throws Exception {
1317 sdncDesignerDetails.setUserId("");
1318 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
1319 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESTRICTED_OPERATION, 409,
1320 new ArrayList<String>());
1324 public void dissociateWithMissingUidOfServiceTest() throws Exception {
1325 serviceDetails_01.setUniqueId("");
1326 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
1327 RestResponse dissociateResp = ComponentInstanceRestUtils.dissociateInstances(requirementDef,
1328 sdncDesignerDetails, serviceDetails_01.getUniqueId(), ComponentTypeEnum.SERVICE);
1329 assertEquals(404, dissociateResp.getErrorCode().intValue());
1333 public void relationDeletedAfterDeletingResourceInstanceTest() throws Exception {
1334 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
1335 sdncDesignerDetails);
1336 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1337 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
1338 sdncDesignerDetails);
1339 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1341 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
1342 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1343 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
1344 .get(CAPABILITY_TYPE);
1345 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
1346 .get(CAPABILITY_TYPE);
1348 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
1349 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1351 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1352 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
1354 RestResponse deleteVFInstance = deleteVFInstance(reqCompInstId, serviceDetails_01, sdncDesignerDetails);
1355 ComponentInstanceRestUtils.checkDeleteResponse(deleteVFInstance);
1356 getComponentAndValidateRIs(serviceDetails_01, 1, 0);
1360 public void relationNotFoundInSecondVersionAfterDissociateTest() throws Exception {
1361 String oldContainerUniqueIdToReplace = serviceDetails_01.getUniqueId();
1362 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
1363 sdncDesignerDetails);
1364 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1365 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
1366 sdncDesignerDetails);
1367 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1369 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
1370 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1371 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
1372 .get(CAPABILITY_TYPE);
1373 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
1374 .get(CAPABILITY_TYPE);
1376 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
1377 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1379 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1380 dissociateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1382 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
1383 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKOUT);
1385 updateExpectedReqCapAfterChangeLifecycleState(oldContainerUniqueIdToReplace, serviceDetails_01.getUniqueId());
1386 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
1390 public void dissociateOnceAgainTest() throws Exception {
1391 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
1392 sdncDesignerDetails);
1393 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1394 String reqCompInsName = ResponseParser
1395 .convertComponentInstanceResponseToJavaObject(createFirstVFInstResp.getResponse()).getName();
1396 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
1397 sdncDesignerDetails);
1398 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1399 String capCompInstName = ResponseParser
1400 .convertComponentInstanceResponseToJavaObject(createSecondVFInstResp.getResponse()).getName();
1402 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
1403 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1404 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
1405 .get(CAPABILITY_TYPE);
1406 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
1407 .get(CAPABILITY_TYPE);
1409 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE,
1410 REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1412 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1413 dissociateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1415 List<String> variables = new ArrayList<String>();
1416 variables.add(reqCompInsName);
1417 variables.add(capCompInstName);
1418 variables.add(REQUIREMENT_NAME);
1420 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESOURCE_INSTANCE_RELATION_NOT_FOUND,
1424 // fail - bug : DE191707
1426 public void associateTwoRelations_CheckinCheckout_DissoicateOneRelationInSecondVersion() throws Exception {
1427 String oldContainerUniqueIdToReplace = serviceDetails_01.getUniqueId();
1428 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
1429 sdncDesignerDetails);
1430 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1431 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02,
1432 sdncDesignerDetails);
1433 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1434 RestResponse createThirdVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01,
1435 sdncDesignerDetails);
1436 String secondReqCompInstId = ResponseParser.getUniqueIdFromResponse(createThirdVFInstResp);
1438 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils
1439 .getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1440 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities()
1441 .get(CAPABILITY_TYPE);
1442 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements()
1443 .get(CAPABILITY_TYPE);
1445 RequirementCapabilityRelDef requirementDefFirstRelation = getReqCapRelation(reqCompInstId, capCompInstId,
1446 CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1447 RequirementCapabilityRelDef requirementDefSecondRelation = getReqCapRelation(secondReqCompInstId, capCompInstId,
1448 CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1450 associateComponentInstancesForService(requirementDefFirstRelation, serviceDetails_01, sdncDesignerDetails);
1451 associateComponentInstancesForService(requirementDefSecondRelation, serviceDetails_01, sdncDesignerDetails);
1452 getComponentAndValidateRIs(serviceDetails_01, 3, 2);
1454 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
1455 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKOUT);
1456 String newContainerUniqueId = serviceDetails_01.getUniqueId();
1458 // check if dissoicate of old relation is possibile
1459 // dissoicateInstancesFail(requirementDefFirstRelation,
1460 // sdncDesignerDetails, actionStatus, errorCode, variables);
1461 getComponentAndValidateRIs(serviceDetails_01, 3, 2);
1463 requirementDefFirstRelation
1464 .setFromNode(reqCompInstId.replaceAll(oldContainerUniqueIdToReplace, newContainerUniqueId));
1465 requirementDefFirstRelation
1466 .setToNode(reqCompInstId.replaceAll(oldContainerUniqueIdToReplace, newContainerUniqueId));
1468 dissociateComponentInstancesForService(requirementDefFirstRelation, serviceDetails_01, sdncDesignerDetails);
1470 // updateCapabilitiesOwnerId(oldContainerUniqueIdToReplace,
1471 // capListBeforeAssociate, newContainerUniqueId);
1472 // CapReqDef capReqDefAfterAssociate =
1473 // ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails,
1474 // serviceDetails_01);
1475 // List<CapabilityDefinition> capListAfterAssociate =
1476 // capReqDefAfterAssociate.getCapabilities().get(CAPABILITY_TYPE);
1477 // List<RequirementDefinition> reqListAfterAssociate =
1478 // capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
1479 // AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate,
1480 // reqListAfterAssociate);
1481 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
1482 // capListAfterAssociate);
1483 updateExpectedReqCapAfterChangeLifecycleState(oldContainerUniqueIdToReplace, serviceDetails_01.getUniqueId());
1484 getComponentAndValidateRIs(serviceDetails_01, 3, 1);
1488 public void createResourceInstancesAndUpdatedServiceMetadataTest() throws Exception, Exception {
1489 serviceDetails_02.setUniqueId(serviceDetails_01.getUniqueId());
1490 createTwoCheckedinVFInstances();
1491 LifecycleRestUtils.changeResourceState(resourceDetailsCP_01, sdncDesignerDetails, "0.1",
1492 LifeCycleStatesEnum.CHECKIN);
1493 createVFInstanceAndAtomicResourceInstanceWithoutCheckin(resourceDetailsVF_01, resourceDetailsCP_01,
1494 sdncDesignerDetails);
1495 RestResponse updateServiceResp = ServiceRestUtils.updateService(serviceDetails_02, sdncDesignerDetails);
1496 ServiceRestUtils.checkSuccess(updateServiceResp);
1497 getComponentAndValidateRIs(serviceDetails_01, 4, 0);
1500 @Test(enabled = false)
1501 public void forAcceptanceUserStory() throws Exception {
1502 RestResponse createVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1503 ResourceRestUtils.checkCreateResponse(createVFInstResp);
1504 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
1505 createVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1506 ResourceRestUtils.checkCreateResponse(createVFInstResp);
1507 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
1509 String capType = CAPABILITY_TYPE;
1510 String reqName = REQUIREMENT_NAME;
1512 RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails,
1514 ResourceRestUtils.checkSuccess(getResourceResponse);
1515 CapReqDef capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
1516 List<CapabilityDefinition> capList = capReqDef.getCapabilities().get(capType);
1517 List<RequirementDefinition> reqList = capReqDef.getRequirements().get(capType);
1519 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, capType, reqName,
1522 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1523 getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails,
1525 capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
1526 List<RequirementDefinition> list = capReqDef.getRequirements().get(capType);
1527 AssertJUnit.assertEquals("Check requirement", null, list);
1529 serviceDetails_02.setUniqueId(serviceDetails_01.getUniqueId());
1530 RestResponse updateServiceResp = ServiceRestUtils.updateService(serviceDetails_02, sdncDesignerDetails);
1531 ServiceRestUtils.checkSuccess(updateServiceResp);
1532 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
1533 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
1537 public void testUnsatisfiedCpReqInService() throws Exception {
1539 // Certify all the needed atomic resources
1540 RestResponse response = LifecycleRestUtils.certifyResource(resourceDetailsCP_01);
1541 ResourceRestUtils.checkSuccess(response);
1543 ArtifactReqDetails heatArtifactDetails = ElementFactory
1544 .getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
1545 response = ArtifactRestUtils.addInformationalArtifactToResource(heatArtifactDetails, sdncDesignerDetails,
1546 resourceDetailsVF_02.getUniqueId());
1547 ResourceRestUtils.checkSuccess(response);
1548 response = LifecycleRestUtils.certifyResource(resourceDetailsVF_02);
1549 ResourceRestUtils.checkSuccess(response);
1550 capOwnerId = getUniqueIdOfFirstInstanceFromResponse(response);
1552 RestResponse createAtomicResourceInstance = createVFInstance(serviceDetails_01, resourceDetailsVF_02,
1553 sdncDesignerDetails);
1554 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1555 String vfCompInstId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
1557 createAtomicResourceInstance = createAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01,
1558 sdncDesignerDetails);
1559 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1560 String compInstName = ResponseParser.getNameFromResponse(createAtomicResourceInstance);
1561 String cpCompInstId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
1563 RestResponse submitForTesting = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1564 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
1565 String[] variables = new String[] { serviceDetails_01.getName(), "service", "CP (Connection Point)",
1566 compInstName, "requirement", "tosca.capabilities.network.Bindable", "fulfilled" };
1567 BaseValidationUtils.checkErrorResponse(submitForTesting,
1568 ActionStatus.REQ_CAP_NOT_SATISFIED_BEFORE_CERTIFICATION, variables);
1570 fulfillCpRequirement(serviceDetails_01, cpCompInstId, vfCompInstId, capOwnerId, sdncDesignerDetails,
1571 ComponentTypeEnum.SERVICE);
1573 submitForTesting = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails,
1574 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
1575 BaseValidationUtils.checkSuccess(submitForTesting);
1579 public void getVFInstanceSuccessfullyTest() throws Exception {
1580 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01,
1581 sdncDesignerDetails);
1582 ResourceRestUtils.checkCreateResponse(createVFInstResp);
1583 System.out.println("instance successfuly created");
1584 RestResponse getInstancesResponce = ComponentInstanceRestUtils.getComponentInstances(ComponentTypeEnum.SERVICE,
1585 serviceDetails_01.getUniqueId(), sdncDesignerDetails);
1587 for (int i = 0; i < 1500; i++) {
1588 createVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1589 ResourceRestUtils.checkCreateResponse(createVFInstResp);
1590 System.out.println("instance " + i + "successfuly created");
1593 getInstancesResponce = ComponentInstanceRestUtils.getComponentInstances(ComponentTypeEnum.SERVICE,
1594 serviceDetails_01.getUniqueId(), sdncDesignerDetails);
1596 BaseValidationUtils.checkSuccess(getInstancesResponce);
1600 private String getUniqueIdOfFirstInstanceFromResponse(RestResponse response) {
1602 JSONArray value = ResponseParser.getListFromJson(response, "componentInstances");
1603 return ResponseParser.getValueFromJsonResponse(value.get(0).toString(), "uniqueId");
1604 } catch (Exception e) {