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.resource;
23 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.STATUS_CODE_SUCCESS;
24 import static org.testng.AssertJUnit.assertEquals;
25 import static org.testng.AssertJUnit.assertFalse;
26 import static org.testng.AssertJUnit.assertNotNull;
27 import static org.testng.AssertJUnit.assertTrue;
29 import java.io.IOException;
30 import java.util.ArrayList;
31 import java.util.Arrays;
32 import java.util.List;
35 import org.apache.http.client.ClientProtocolException;
36 import org.junit.rules.TestName;
37 import org.openecomp.sdc.be.dao.api.ActionStatus;
38 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
39 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
40 import org.openecomp.sdc.be.model.CapReqDef;
41 import org.openecomp.sdc.be.model.CapabilityDefinition;
42 import org.openecomp.sdc.be.model.CapabilityRequirementRelationship;
43 import org.openecomp.sdc.be.model.ComponentInstance;
44 import org.openecomp.sdc.be.model.RelationshipImpl;
45 import org.openecomp.sdc.be.model.RelationshipInfo;
46 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
47 import org.openecomp.sdc.be.model.RequirementDefinition;
48 import org.openecomp.sdc.be.model.Resource;
49 import org.openecomp.sdc.be.model.User;
50 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
51 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
52 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
53 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
54 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
55 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
56 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
57 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
58 import org.openecomp.sdc.ci.tests.utils.rest.ComponentInstanceRestUtils;
59 import org.openecomp.sdc.ci.tests.utils.rest.ComponentRestUtils;
60 import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
61 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
62 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
63 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
64 import org.testng.annotations.BeforeMethod;
65 import org.testng.annotations.Test;
67 public class ComponentRelationshipInVfTest extends ComponentBaseTest {
69 public ComponentRelationshipInVfTest() {
70 super(new TestName(), ComponentRelationshipInVfTest.class.getName());
73 private ResourceReqDetails resourceDetailsVF;
74 private User designerUser;
75 private ResourceReqDetails resourceDetailsReq;
76 private ResourceReqDetails resourceDetailsCap;
79 public void before() throws Exception {
80 designerUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
82 resourceDetailsVF = ElementFactory.getDefaultResourceByType("VF100", NormativeTypesEnum.ROOT,
83 ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, designerUser.getUserId(), ResourceTypeEnum.VF.toString());
84 createResource(resourceDetailsVF, designerUser);
86 resourceDetailsReq = ElementFactory.getDefaultResourceByType("SoftCompRouter",
87 NormativeTypesEnum.SOFTWARE_COMPONENT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS,
88 designerUser.getUserId(), ResourceTypeEnum.CP.toString()); // resourceType
91 resourceDetailsCap = ElementFactory.getDefaultResourceByType("ciMyCompute", NormativeTypesEnum.COMPUTE,
92 ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, designerUser.getUserId(), ResourceTypeEnum.CP.toString()); // resourceType
98 private void createResource(ResourceReqDetails resourceDetails, User user) throws Exception, IOException {
99 RestResponse createResourceResponse = ResourceRestUtils.createResource(resourceDetails, user);
100 ResourceRestUtils.checkCreateResponse(createResourceResponse);
101 if (!resourceDetails.getResourceType().equals("VF"))
102 LifecycleRestUtils.changeResourceState(resourceDetails, user, "0.1", LifeCycleStatesEnum.CHECKIN);
105 private void createAtomicResource(ResourceReqDetails resourceDetails, User user) throws Exception {
106 createResource(resourceDetails, user);
109 private RequirementCapabilityRelDef setRelationshipBetweenInstances(ComponentInstance riReq,
110 ComponentInstance riCap, CapReqDef capReqDef) throws Exception {
112 String capbilityUid = capReqDef.getCapabilities().get("tosca.capabilities.Container").get(0).getUniqueId();
113 String requirementUid = capReqDef.getRequirements().get("tosca.capabilities.Container").get(0).getUniqueId();
115 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
116 requirementDef.setFromNode(riReq.getUniqueId());
117 requirementDef.setToNode(riCap.getUniqueId());
119 RelationshipInfo pair = new RelationshipInfo();
120 pair.setRequirementOwnerId(riReq.getUniqueId());
121 pair.setCapabilityOwnerId(riCap.getUniqueId());
122 pair.setRequirement("host");
123 RelationshipImpl relationship = new RelationshipImpl();
124 relationship.setType("tosca.capabilities.Container");
125 pair.setRelationships(relationship);
126 pair.setCapabilityUid(capbilityUid);
127 pair.setRequirementUid(requirementUid);
128 List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
129 CapabilityRequirementRelationship capReqRel = new CapabilityRequirementRelationship();
130 capReqRel.setRelation(pair);
131 relationships.add(capReqRel);
132 requirementDef.setRelationships(relationships);
133 return requirementDef;
136 private ComponentInstance createComponentInstance(ResourceReqDetails res) throws Exception {
137 return createComponentInstance(res, designerUser);
140 private ComponentInstance createComponentInstance(ResourceReqDetails res, User user, ResourceReqDetails vf)
142 RestResponse response = ResourceRestUtils.createResourceInstance(res, user, vf.getUniqueId());
143 ResourceRestUtils.checkCreateResponse(response);
144 ComponentInstance compInstance = ResponseParser.parseToObject(response.getResponse(), ComponentInstance.class);
148 private ComponentInstance createComponentInstance(ResourceReqDetails res, User user) throws Exception {
149 return createComponentInstance(res, user, resourceDetailsVF);
152 private void createTwoAtomicResourcesByType(String reqType, String capType, User user1, User user2)
154 resourceDetailsReq.setResourceType(reqType);
155 createAtomicResource(resourceDetailsReq, user1);
156 resourceDetailsCap.setResourceType(capType);
157 createAtomicResource(resourceDetailsCap, user2);
160 private void createTwoAtomicResourcesByType(String reqType, String capType) throws Exception {
161 createTwoAtomicResourcesByType(reqType, capType, designerUser, designerUser);
165 public void associateInVF() throws Exception {
167 createTwoAtomicResourcesByType(ResourceTypeEnum.VFC.toString(), ResourceTypeEnum.VFC.toString());
169 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
170 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
172 CapReqDef capReqDef = getResourceReqCap();
174 List<CapabilityDefinition> capList = capReqDef.getCapabilities().get("tosca.capabilities.Container");
175 List<RequirementDefinition> reqList = capReqDef.getRequirements().get("tosca.capabilities.Container");
177 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
178 requirementDef.setFromNode(riReq.getUniqueId());
179 requirementDef.setToNode(riCap.getUniqueId());
181 RelationshipInfo pair = new RelationshipInfo();
182 pair.setRequirementOwnerId(riReq.getUniqueId());
183 pair.setCapabilityOwnerId(riCap.getUniqueId());
184 pair.setRequirement("host");
185 RelationshipImpl relationship = new RelationshipImpl();
186 relationship.setType("tosca.capabilities.Container");
187 pair.setRelationships(relationship);
188 pair.setCapabilityUid(capList.get(0).getUniqueId());
189 pair.setRequirementUid(reqList.get(0).getUniqueId());
190 List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
191 CapabilityRequirementRelationship capReqRel = new CapabilityRequirementRelationship();
192 capReqRel.setRelation(pair);
193 relationships.add(capReqRel);
194 requirementDef.setRelationships(relationships);
196 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
197 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
198 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
200 RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(designerUser,
202 capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
204 List<RequirementDefinition> list = capReqDef.getRequirements().get("tosca.capabilities.Container");
205 assertEquals("Check requirement", null, list);
207 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, designerUser,
208 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
209 assertEquals("Check response code ", STATUS_CODE_SUCCESS, dissociateInstances.getErrorCode().intValue());
211 getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(designerUser, resourceDetailsVF);
212 capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
214 list = capReqDef.getRequirements().get("tosca.capabilities.Container");
215 assertEquals("Check requirement", 1, list.size());
218 //////////////////////////////// Q A //////////////////////////////
219 private boolean checkRealtionship(String fromNode, String toNode, String resourceUniqueId) throws Exception {
220 List<RequirementCapabilityRelDef> componentInstancesRelations = getComponentInstancesRelations(
222 RequirementCapabilityRelDef requirementCapabilityRelDef = componentInstancesRelations.get(0);
223 boolean fromNodeCheck = requirementCapabilityRelDef.getFromNode().equals(fromNode);
224 boolean toNodeCheck = requirementCapabilityRelDef.getToNode().equals(toNode);
226 return fromNodeCheck && toNodeCheck;
229 private List<RequirementCapabilityRelDef> getComponentInstancesRelations(String resourceUniqueId)
230 throws ClientProtocolException, IOException {
231 Resource resource = getVfAsResourceObject(resourceUniqueId);
232 List<RequirementCapabilityRelDef> componenRelationInstances = resource.getComponentInstancesRelations();
234 return componenRelationInstances;
237 private Resource getVfAsResourceObject(String resourceUniqueId) throws ClientProtocolException, IOException {
238 RestResponse getResource = ResourceRestUtils.getResource(resourceUniqueId);
239 Resource resource = ResponseParser.parseToObjectUsingMapper(getResource.getResponse(), Resource.class);
243 private List<ComponentInstance> getComponentInstancesList(String resourceUniqueId) throws Exception {
244 Resource resource = getVfAsResourceObject(resourceUniqueId);
245 List<ComponentInstance> componentInstances = resource.getComponentInstances();
246 return componentInstances;
250 public void associateCpToCpTest() throws Exception {
251 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.CP.toString());
253 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
254 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
256 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
258 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
260 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
263 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
264 capReqDefBeforeAssociate);
266 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
267 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
268 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
269 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
270 resourceDetailsVF.getUniqueId()));
272 CapReqDef capReqDef = getResourceReqCap();
274 requirementsBeforeAssociate.remove("tosca.capabilities.Container");
275 assertTrue(capReqDef.getRequirements().equals(requirementsBeforeAssociate));
277 List<CapabilityDefinition> list = capabilitiesBeforeAssociate.get("tosca.capabilities.Container");
278 for (CapabilityDefinition cap : list) {
279 cap.setMinOccurrences("0");
282 Map<String, List<CapabilityDefinition>> capabilitiesAfterAssociate = capReqDef.getCapabilities();
283 assertTrue(capabilitiesAfterAssociate.equals(capabilitiesBeforeAssociate));
286 private CapReqDef getResourceReqCap(ResourceReqDetails res) throws IOException {
287 RestResponse getResourceBeforeAssociate = ComponentRestUtils.getComponentRequirmentsCapabilities(designerUser,
289 CapReqDef capReqDef = ResponseParser.parseToObject(getResourceBeforeAssociate.getResponse(), CapReqDef.class);
293 private CapReqDef getResourceReqCap() throws IOException {
294 return getResourceReqCap(resourceDetailsVF);
298 public void associateCpToVLTest() throws Exception {
299 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
301 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
302 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
304 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
305 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
307 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
310 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
311 capReqDefBeforeAssociate);
313 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
314 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
315 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
316 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
317 resourceDetailsVF.getUniqueId()));
319 CapReqDef capReqDef = getResourceReqCap();
321 requirementsBeforeAssociate.remove("tosca.capabilities.Container");
322 assertTrue(capReqDef.getRequirements().equals(requirementsBeforeAssociate));
324 List<CapabilityDefinition> list = capabilitiesBeforeAssociate.get("tosca.capabilities.Container");
325 for (CapabilityDefinition cap : list) {
326 cap.setMinOccurrences("0");
329 Map<String, List<CapabilityDefinition>> capabilitiesAfterAssociate = capReqDef.getCapabilities();
330 assertTrue(capabilitiesAfterAssociate.equals(capabilitiesBeforeAssociate));
335 // ELLA - more informative error
337 public void associateCpToVlInVFCTest() throws Exception {
338 ResourceReqDetails vfcDetails = ElementFactory.getDefaultResourceByType("VFC100", NormativeTypesEnum.ROOT,
339 ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, designerUser.getUserId(), ResourceTypeEnum.VFC.toString());
340 RestResponse createVfcResponse = ResourceRestUtils.createResource(vfcDetails, designerUser);
341 ResourceRestUtils.checkCreateResponse(createVfcResponse);
343 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
345 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
346 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
348 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
350 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
351 capReqDefBeforeAssociate);
353 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
354 vfcDetails.getUniqueId(), ComponentTypeEnum.RESOURCE);
355 assertEquals("Check response code ", 400, associateInstances.getErrorCode().intValue());
357 // "messageId": "SVC4116",
358 // "text": "Error: Invalid Content.",
360 // "SoftCompRouter 1",
368 public void associateCpToVfTest() throws Exception {
369 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
371 createComponentInstance(resourceDetailsCap, designerUser, resourceDetailsVF);
372 createComponentInstance(resourceDetailsReq, designerUser, resourceDetailsVF);
374 ResourceReqDetails vfHigh = new ResourceReqDetails(resourceDetailsVF, "0.1");
375 vfHigh.setName("vfHigh");
376 vfHigh.setTags(new ArrayList<String>(Arrays.asList(vfHigh.getName())));
377 vfHigh.setResourceType(ResourceTypeEnum.VF.toString());
378 createResource(vfHigh, designerUser);
380 ComponentInstance riReq = createComponentInstance(resourceDetailsReq, designerUser, vfHigh);
381 LifecycleRestUtils.changeResourceState(resourceDetailsVF, designerUser, "0.1", LifeCycleStatesEnum.CHECKIN);
382 ComponentInstance riCap = createComponentInstance(resourceDetailsVF, designerUser, vfHigh);
384 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
386 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
387 capReqDefBeforeAssociate);
389 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
390 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
391 assertEquals("Check response code ", 409, associateInstances.getErrorCode().intValue());
392 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
393 associateInstances.getResponse());
394 // "messageId": "SVC4116",
395 // "text": "Error: Invalid Content.",
397 // "SoftCompRouter 1",
405 public void associateVfcToVfcNotFoundTest() throws Exception {
406 createTwoAtomicResourcesByType(ResourceTypeEnum.VFC.toString(), ResourceTypeEnum.VFC.toString());
408 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
409 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
410 riCap.setUniqueId("123");
412 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
414 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
415 capReqDefBeforeAssociate);
417 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
418 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
419 assertEquals("Check response code ", 400, associateInstances.getErrorCode().intValue());
420 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESOURCE_INSTANCE_BAD_REQUEST.name(),
421 new ArrayList<String>(), associateInstances.getResponse());
423 // "messageId": "SVC4116",
424 // "text": "Error: Invalid Content.",
426 // "SoftCompRouter 1",
427 // "012f6dcd-bcdf-4d9b-87be-ff1442b95831.5d265453-0b6a-4453-8f3d-57a253b88432.softcomprouter1",
432 public void associateCpToDeletedVfcTest() throws Exception {
433 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VFC.toString());
435 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
436 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
438 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
440 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
441 capReqDefBeforeAssociate);
443 RestResponse deleteResourceResponse = ResourceRestUtils.deleteResource(resourceDetailsCap.getUniqueId(),
444 designerUser.getUserId());
445 ResourceRestUtils.checkDeleteResponse(deleteResourceResponse);
447 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
448 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
449 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
450 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
451 resourceDetailsVF.getUniqueId()));
456 public void associateCpToDeletedVlTest() throws Exception {
457 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
459 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
460 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
462 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
464 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
465 capReqDefBeforeAssociate);
467 RestResponse deleteResourceResponse = ResourceRestUtils.deleteResource(resourceDetailsCap.getUniqueId(),
468 designerUser.getUserId());
469 ResourceRestUtils.checkDeleteResponse(deleteResourceResponse);
471 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
472 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
473 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
474 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
475 resourceDetailsVF.getUniqueId()));
480 public void associateCpToDeletedCpTest() throws Exception {
481 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.CP.toString());
483 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
484 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
486 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
488 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
489 capReqDefBeforeAssociate);
491 RestResponse deleteResourceResponse = ResourceRestUtils.deleteResource(resourceDetailsCap.getUniqueId(),
492 designerUser.getUserId());
493 ResourceRestUtils.checkDeleteResponse(deleteResourceResponse);
495 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
496 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
497 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
498 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
499 resourceDetailsVF.getUniqueId()));
505 public void associateCpToDeletedCpInstanceTest() throws Exception {
506 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.CP.toString());
508 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
509 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
511 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
513 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
514 capReqDefBeforeAssociate);
516 RestResponse deleteComponentInstance = ComponentInstanceRestUtils.deleteComponentInstance(designerUser,
517 resourceDetailsVF.getUniqueId(), riReq.getUniqueId(), ComponentTypeEnum.RESOURCE);
518 ComponentInstanceRestUtils.checkDeleteResponse(deleteComponentInstance);
520 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
521 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
522 assertEquals("Check response code ", 400, associateInstances.getErrorCode().intValue());
524 // "messageId": "SVC4116",
525 // "text": "Error: Invalid Content.",
527 // "7d6aca08-9321-4ea1-a781-c52c8214a30e.c0e63466-5283-44d8-adff-365c0885a6ba.softcomprouter1",
535 public void associateVfcToDeletedVFCInstanceTest() throws Exception {
536 createTwoAtomicResourcesByType(ResourceTypeEnum.VFC.toString(), ResourceTypeEnum.VFC.toString());
538 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
539 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
541 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
543 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
544 capReqDefBeforeAssociate);
546 RestResponse deleteComponentInstance = ComponentInstanceRestUtils.deleteComponentInstance(designerUser,
547 resourceDetailsVF.getUniqueId(), riReq.getUniqueId(), ComponentTypeEnum.RESOURCE);
548 ComponentInstanceRestUtils.checkDeleteResponse(deleteComponentInstance);
550 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
551 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
552 assertEquals("Check response code ", 400, associateInstances.getErrorCode().intValue());
554 // "messageId": "SVC4116",
555 // "text": "Error: Invalid Content.",
557 // "7d6aca08-9321-4ea1-a781-c52c8214a30e.c0e63466-5283-44d8-adff-365c0885a6ba.softcomprouter1",
564 public void associateWithDifferentOwnerOfVf() throws Exception {
565 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
567 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
568 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
570 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
572 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
573 capReqDefBeforeAssociate);
575 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
577 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
580 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef,
581 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), resourceDetailsVF.getUniqueId(),
582 ComponentTypeEnum.RESOURCE);
583 assertEquals("Check response code ", 409, associateInstances.getErrorCode().intValue());
584 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
585 associateInstances.getResponse());
587 CapReqDef capReqDef = getResourceReqCap();
589 Map<String, List<CapabilityDefinition>> capabilitiesAfterAssociate = capReqDef.getCapabilities();
590 Map<String, List<RequirementDefinition>> requirementsAfterAssociate = capReqDef.getRequirements();
592 assertTrue(capabilitiesAfterAssociate.equals(capabilitiesBeforeAssociate));
593 assertTrue(requirementsAfterAssociate.equals(requirementsBeforeAssociate));
597 public void associateWithTester() throws Exception {
598 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
600 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
601 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
603 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
605 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
606 capReqDefBeforeAssociate);
608 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
610 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
613 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef,
614 ElementFactory.getDefaultUser(UserRoleEnum.TESTER), resourceDetailsVF.getUniqueId(),
615 ComponentTypeEnum.RESOURCE);
616 assertEquals("Check response code ", 409, associateInstances.getErrorCode().intValue());
617 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
618 associateInstances.getResponse());
620 CapReqDef capReqDef = getResourceReqCap();
622 Map<String, List<CapabilityDefinition>> capabilitiesAfterAssociate = capReqDef.getCapabilities();
623 Map<String, List<RequirementDefinition>> requirementsAfterAssociate = capReqDef.getRequirements();
625 assertTrue(capabilitiesAfterAssociate.equals(capabilitiesBeforeAssociate));
626 assertTrue(requirementsAfterAssociate.equals(requirementsBeforeAssociate));
631 public void associateCpToVLIntoVFNotFound() throws Exception {
632 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
634 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
635 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
637 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
639 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
640 capReqDefBeforeAssociate);
642 String uidNotFound = "123";
643 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
644 uidNotFound, ComponentTypeEnum.RESOURCE);
645 assertEquals("Check response code ", 404, associateInstances.getErrorCode().intValue());
646 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESOURCE_NOT_FOUND.name(),
647 new ArrayList<String>(Arrays.asList("")), associateInstances.getResponse());
649 // {"serviceException":{"messageId":"SVC4063","text":"Error: Requested
650 // '%1' resource was not found.","variables":[""]}}}
655 public void associateCpToVlWithMissingUid() throws Exception {
656 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
658 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
659 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
661 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
663 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
664 capReqDefBeforeAssociate);
666 requirementDef.setToNode("");
667 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
668 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
669 assertEquals("Check response code ", 400, associateInstances.getErrorCode().intValue());
670 // ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(),
671 // new ArrayList<String>(), associateInstances.getResponse());
673 // "messageId": "SVC4116",
674 // "text": "Error: Invalid Content.",
676 // "SoftCompRouter 1",
677 // "fd3a689b-fa1c-4105-933d-d1310e642f05.95bce626-ce73-413b-8c14-2388d1589d5c.softcomprouter1",
683 public void associateInServiceWithUidOfVf() throws Exception {
684 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
686 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
687 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
689 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
691 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
692 capReqDefBeforeAssociate);
694 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
695 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.SERVICE);
696 assertEquals("Check response code ", 404, associateInstances.getErrorCode().intValue());
697 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.SERVICE_NOT_FOUND.name(),
698 new ArrayList<String>(Arrays.asList("")), associateInstances.getResponse());
702 public void associateCpToVl_DifferentOwners() throws Exception {
703 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString(), designerUser,
704 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2));
706 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
707 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
709 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
711 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
713 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
716 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
717 capReqDefBeforeAssociate);
719 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
720 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
721 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
722 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
723 resourceDetailsVF.getUniqueId()));
725 CapReqDef capReqDef = getResourceReqCap();
727 requirementsBeforeAssociate.remove("tosca.capabilities.Container");
728 assertTrue(capReqDef.getRequirements().equals(requirementsBeforeAssociate));
730 List<CapabilityDefinition> list = capabilitiesBeforeAssociate.get("tosca.capabilities.Container");
731 for (CapabilityDefinition cap : list) {
732 cap.setMinOccurrences("0");
735 Map<String, List<CapabilityDefinition>> capabilitiesAfterAssociate = capReqDef.getCapabilities();
736 assertTrue(capabilitiesAfterAssociate.equals(capabilitiesBeforeAssociate));
739 @Test(enabled = false)
740 public void associateToNotCheckedoutVf() throws Exception {
741 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
743 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
744 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
746 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
747 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
749 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
752 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
753 capReqDefBeforeAssociate);
755 RestResponse changeResourceStateToCheckin = LifecycleRestUtils.changeResourceState(resourceDetailsVF,
756 designerUser, LifeCycleStatesEnum.CHECKIN);
757 LifecycleRestUtils.checkSuccess(changeResourceStateToCheckin);
759 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
760 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
761 assertEquals("Check response code ", 409, associateInstances.getErrorCode().intValue());
762 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
763 associateInstances.getResponse());
765 CapReqDef capReqDef = getResourceReqCap();
766 assertTrue(capReqDef.getRequirements().equals(requirementsBeforeAssociate));
767 assertTrue(capReqDef.getCapabilities().equals(capabilitiesBeforeAssociate));
769 String firstUniqueId = resourceDetailsVF.getUniqueId();
773 RestResponse changeResourceStateToCheckout = LifecycleRestUtils.changeResourceState(resourceDetailsVF,
774 designerUser, LifeCycleStatesEnum.CHECKOUT);
775 LifecycleRestUtils.checkSuccess(changeResourceStateToCheckout);
776 String secondUniqueId = resourceDetailsVF.getUniqueId();
778 CapReqDef capReqDefAfterFirstCheckout = getResourceReqCap();
779 Map<String, List<CapabilityDefinition>> capabilitiesAfterFirstCheckout = capReqDefAfterFirstCheckout
781 Map<String, List<RequirementDefinition>> requirementsAfterFirstCheckout = capReqDefAfterFirstCheckout
784 requirementDef = setUidsOfInstancesAfterLifecycleStateChange(riReq, riCap, capReqDefBeforeAssociate);
786 RestResponse firstAssociateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef,
787 designerUser, resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
788 assertEquals("Check response code ", STATUS_CODE_SUCCESS, firstAssociateInstances.getErrorCode().intValue());
789 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
790 resourceDetailsVF.getUniqueId()));
792 CapReqDef capReqDefAfterFirstAssociate = getResourceReqCap();
793 Map<String, List<CapabilityDefinition>> capabilitiesAfterFirstAssociate = capReqDefAfterFirstAssociate
795 Map<String, List<RequirementDefinition>> requirementsAfterFirstAssociate = capReqDefAfterFirstAssociate
798 requirementsAfterFirstCheckout.remove("tosca.capabilities.Container");
799 assertTrue(requirementsAfterFirstAssociate.equals(requirementsAfterFirstCheckout));
800 assertTrue(capabilitiesAfterFirstAssociate.equals(capabilitiesAfterFirstCheckout));
802 resourceDetailsVF.setUniqueId(firstUniqueId);
803 CapReqDef capReqDefOfFirstVersion = getResourceReqCap();
804 Map<String, List<CapabilityDefinition>> capabilitiesOfFirstVersion = capReqDefOfFirstVersion.getCapabilities();
805 Map<String, List<RequirementDefinition>> requirementsOfFirstVersion = capReqDefOfFirstVersion.getRequirements();
807 assertTrue(getComponentInstancesRelations(resourceDetailsVF.getUniqueId()).isEmpty());
808 assertTrue(requirementsBeforeAssociate.equals(requirementsOfFirstVersion));
809 assertTrue(capabilitiesBeforeAssociate.equals(capabilitiesOfFirstVersion));
812 resourceDetailsVF.setUniqueId(secondUniqueId);
813 RestResponse changeResourceStateToCheckin2 = LifecycleRestUtils.changeResourceState(resourceDetailsVF,
814 designerUser, LifeCycleStatesEnum.CHECKIN);
815 LifecycleRestUtils.checkSuccess(changeResourceStateToCheckin2);
816 RestResponse changeResourceStateToCheckout2 = LifecycleRestUtils.changeResourceState(resourceDetailsVF,
817 designerUser, LifeCycleStatesEnum.CHECKOUT);
818 LifecycleRestUtils.checkSuccess(changeResourceStateToCheckout2);
820 List<RequirementCapabilityRelDef> componentInstancesRelations = getComponentInstancesRelations(
821 resourceDetailsVF.getUniqueId());
822 assertFalse(componentInstancesRelations.isEmpty());
823 assertEquals(1, componentInstancesRelations.size());
824 List<ComponentInstance> componentInstancesList = getComponentInstancesList(resourceDetailsVF.getUniqueId());
825 for (ComponentInstance comp : componentInstancesList) {
826 String instanceUid = comp.getUniqueId();
827 assertTrue(checkNodesInRelations(instanceUid, componentInstancesRelations.get(0)));
829 assertEquals(2, componentInstancesList.size());
833 private RequirementCapabilityRelDef setUidsOfInstancesAfterLifecycleStateChange(ComponentInstance riReq,
834 ComponentInstance riCap, CapReqDef capReqDefBeforeAssociate)
835 throws ClientProtocolException, IOException, Exception {
836 RequirementCapabilityRelDef requirementDef;
837 // RestResponse getResourceResponse =
838 // ResourceRestUtils.getResource(resourceDetailsVF.getUniqueId());
839 // Resource resource_0_2 =
840 // ResponseParser.parseToObjectUsingMapper(getResourceResponse.getResponse(),
842 // List<ComponentInstance> componentInstances =
843 // resource_0_2.getComponentInstances();
844 List<ComponentInstance> componentInstances = getComponentInstancesList(resourceDetailsVF.getUniqueId());
846 for (ComponentInstance comp : componentInstances) {
847 if (comp.getName().equals(riReq.getName())) {
848 riReq.setUniqueId(comp.getUniqueId());
849 } else if (comp.getName().equals(riCap.getName())) {
850 riCap.setUniqueId(comp.getUniqueId());
853 requirementDef = setRelationshipBetweenInstances(riReq, riCap, capReqDefBeforeAssociate);
854 return requirementDef;
857 private boolean checkNodesInRelations(String instanceUid, RequirementCapabilityRelDef relation) {
858 if (relation.getToNode().equals(instanceUid)) {
860 } else if (relation.getFromNode().equals(instanceUid)) {
868 public void associateOneOfTwoCPsToVl_ThenDiscocciate() throws Exception {
869 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
870 ResourceReqDetails secondResourceDetailsReq = new ResourceReqDetails(resourceDetailsReq, "0.1");
871 secondResourceDetailsReq.setName("secondCP");
872 secondResourceDetailsReq.setTags(Arrays.asList(secondResourceDetailsReq.getName()));
873 createAtomicResource(secondResourceDetailsReq, designerUser);
875 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
876 ComponentInstance riReq2 = createComponentInstance(secondResourceDetailsReq);
877 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
879 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
881 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
883 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
886 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
887 capReqDefBeforeAssociate);
889 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
890 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
891 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
892 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
893 resourceDetailsVF.getUniqueId()));
895 CapReqDef capReqDef = getResourceReqCap();
897 List<RequirementDefinition> expectedList = requirementsBeforeAssociate.get("tosca.capabilities.Container");
898 for (RequirementDefinition req : expectedList) {
899 if (req.getOwnerName().equals(riReq2.getName())) {
900 expectedList = new ArrayList<RequirementDefinition>(Arrays.asList(req));
904 requirementsBeforeAssociate.put("tosca.capabilities.Container", expectedList);
905 assertTrue(capReqDef.getRequirements().equals(requirementsBeforeAssociate));
907 List<CapabilityDefinition> list = capabilitiesBeforeAssociate.get("tosca.capabilities.Container");
908 for (CapabilityDefinition cap : list) {
909 cap.setMinOccurrences("0");
912 Map<String, List<CapabilityDefinition>> capabilitiesAfterAssociate = capReqDef.getCapabilities();
913 assertTrue(capabilitiesAfterAssociate.equals(capabilitiesBeforeAssociate));
915 // second relationship
917 RequirementCapabilityRelDef secondRequirementDef = setRelationshipBetweenInstances(riReq2, riCap,
918 capReqDefBeforeAssociate);
919 RestResponse secondAssociateInstances = ComponentInstanceRestUtils.associateInstances(secondRequirementDef,
920 designerUser, resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
921 assertEquals("Check response code ", STATUS_CODE_SUCCESS, secondAssociateInstances.getErrorCode().intValue());
922 assertTrue(checkRealtionship(secondRequirementDef.getFromNode(), secondRequirementDef.getToNode(),
923 resourceDetailsVF.getUniqueId()));
925 CapReqDef capReqDefAfterSecondAssociation = getResourceReqCap();
927 requirementsBeforeAssociate.remove("tosca.capabilities.Container");
928 assertTrue(capReqDefAfterSecondAssociation.getRequirements().equals(requirementsBeforeAssociate));
930 Map<String, List<CapabilityDefinition>> capabilitiesAfterSecondAssociate = capReqDefAfterSecondAssociation
932 assertTrue(capabilitiesAfterSecondAssociate.equals(capabilitiesBeforeAssociate));
936 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(secondRequirementDef,
937 designerUser, resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
938 assertEquals("Check response code ", STATUS_CODE_SUCCESS, dissociateInstances.getErrorCode().intValue());
939 assertTrue(getComponentInstancesRelations(resourceDetailsVF.getUniqueId()).isEmpty());
941 CapReqDef capReqDefAfterDissociation = getResourceReqCap();
942 Map<String, List<CapabilityDefinition>> capabilitiesAfterDissociate = capReqDefAfterDissociation
944 Map<String, List<RequirementDefinition>> requirementsAfterDissociate = capReqDefAfterDissociation
947 assertTrue(capabilitiesAfterDissociate.equals(capReqDef.getCapabilities()));
948 requirementsBeforeAssociate.put("tosca.capabilities.Container", expectedList);
949 assertTrue(requirementsAfterDissociate.equals(requirementsBeforeAssociate));
953 public void associateNotCompitableCapAndReq() throws Exception {
954 resourceDetailsReq = ElementFactory.getDefaultResourceByType("Database", NormativeTypesEnum.DATABASE,
955 ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, designerUser.getUserId(), ResourceTypeEnum.CP.toString()); // resourceType
958 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
960 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
961 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
963 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
965 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
967 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
970 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
971 capReqDefBeforeAssociate);
972 assertTrue(requirementDef.getRelationships().size() == 1);
973 String requirement = requirementDef.getRelationships().get(0).getRelation().getRequirement();
974 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
975 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
976 assertEquals("Check response code ", 404, associateInstances.getErrorCode().intValue());
977 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESOURCE_INSTANCE_MATCH_NOT_FOUND.name(),
978 new ArrayList<String>(Arrays.asList(riReq.getName(), riCap.getName(), requirement)),
979 associateInstances.getResponse());
981 CapReqDef capReqDef = getResourceReqCap();
983 Map<String, List<CapabilityDefinition>> capabilitiesAfterAssociate = capReqDef.getCapabilities();
984 Map<String, List<RequirementDefinition>> requirementsAfterAssociate = capReqDef.getRequirements();
986 assertTrue(capabilitiesAfterAssociate.equals(capabilitiesBeforeAssociate));
987 assertTrue(requirementsAfterAssociate.equals(requirementsBeforeAssociate));
992 public void disassociateCpAndCpTest() throws Exception {
993 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.CP.toString());
995 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
996 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
998 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1000 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1001 capReqDefBeforeAssociate);
1002 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
1004 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
1007 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
1008 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1009 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
1010 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
1011 resourceDetailsVF.getUniqueId()));
1013 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, designerUser,
1014 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1015 assertEquals("Check response code ", STATUS_CODE_SUCCESS, dissociateInstances.getErrorCode().intValue());
1016 assertTrue(getComponentInstancesRelations(resourceDetailsVF.getUniqueId()).isEmpty());
1018 CapReqDef capReqDefAfterDissociate = getResourceReqCap();
1020 List<RequirementDefinition> listOfRequierments = capReqDefAfterDissociate.getRequirements()
1021 .get("tosca.capabilities.Container");
1022 assertEquals("Check requirement", 1, listOfRequierments.size());
1023 assertTrue(capReqDefAfterDissociate.getRequirements().equals(requirementsBeforeAssociate));
1024 assertTrue(capReqDefAfterDissociate.getCapabilities().equals(capabilitiesBeforeAssociate));
1028 public void disassociateCpAndVfcTest() throws Exception {
1029 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VFC.toString());
1031 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
1032 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
1034 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1036 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1037 capReqDefBeforeAssociate);
1038 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
1040 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
1043 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
1044 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1045 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
1046 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
1047 resourceDetailsVF.getUniqueId()));
1049 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, designerUser,
1050 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1051 assertEquals("Check response code ", STATUS_CODE_SUCCESS, dissociateInstances.getErrorCode().intValue());
1052 assertTrue(getComponentInstancesRelations(resourceDetailsVF.getUniqueId()).isEmpty());
1054 CapReqDef capReqDefAfterDissociate = getResourceReqCap();
1056 List<RequirementDefinition> listOfRequierments = capReqDefAfterDissociate.getRequirements()
1057 .get("tosca.capabilities.Container");
1058 assertEquals("Check requirement", 1, listOfRequierments.size());
1059 assertTrue(capReqDefAfterDissociate.getRequirements().equals(requirementsBeforeAssociate));
1060 assertTrue(capReqDefAfterDissociate.getCapabilities().equals(capabilitiesBeforeAssociate));
1064 public void disassociateCpAndVLTest() throws Exception {
1065 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
1067 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
1068 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
1070 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1072 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1073 capReqDefBeforeAssociate);
1074 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
1076 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
1079 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
1080 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1081 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
1082 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
1083 resourceDetailsVF.getUniqueId()));
1085 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, designerUser,
1086 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1087 assertEquals("Check response code ", STATUS_CODE_SUCCESS, dissociateInstances.getErrorCode().intValue());
1088 assertTrue(getComponentInstancesRelations(resourceDetailsVF.getUniqueId()).isEmpty());
1090 CapReqDef capReqDefAfterDissociate = getResourceReqCap();
1092 List<RequirementDefinition> listOfRequierments = capReqDefAfterDissociate.getRequirements()
1093 .get("tosca.capabilities.Container");
1094 assertEquals("Check requirement", 1, listOfRequierments.size());
1095 assertTrue(capReqDefAfterDissociate.getRequirements().equals(requirementsBeforeAssociate));
1096 assertTrue(capReqDefAfterDissociate.getCapabilities().equals(capabilitiesBeforeAssociate));
1100 // in the error should we get the unique id of instances instead of names
1102 public void disassociateNotFoundAssociation() throws Exception {
1103 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
1105 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
1106 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
1108 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1110 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1111 capReqDefBeforeAssociate);
1112 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
1114 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
1116 String requirementName = requirementDef.getRelationships().get(0).getRelation().getRequirement();
1118 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, designerUser,
1119 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1120 assertEquals("Check response code ", 404, dissociateInstances.getErrorCode().intValue());
1121 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESOURCE_INSTANCE_RELATION_NOT_FOUND.name(),
1122 new ArrayList<String>(Arrays.asList(riReq.getName(), riCap.getName(), requirementName)),
1123 dissociateInstances.getResponse());
1125 CapReqDef capReqDefAfterDissociate = getResourceReqCap();
1127 List<RequirementDefinition> listOfRequierments = capReqDefAfterDissociate.getRequirements()
1128 .get("tosca.capabilities.Container");
1129 assertEquals("Check requirement", 1, listOfRequierments.size());
1130 assertTrue(capReqDefAfterDissociate.getRequirements().equals(requirementsBeforeAssociate));
1131 assertTrue(capReqDefAfterDissociate.getCapabilities().equals(capabilitiesBeforeAssociate));
1136 public void disassociateRelationInVfNotFound() throws Exception {
1137 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
1139 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
1140 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
1142 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1144 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1145 capReqDefBeforeAssociate);
1147 String uidNotFound = "123";
1148 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, designerUser,
1149 uidNotFound, ComponentTypeEnum.RESOURCE);
1150 assertEquals("Check response code ", 404, dissociateInstances.getErrorCode().intValue());
1151 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESOURCE_NOT_FOUND.name(),
1152 new ArrayList<String>(Arrays.asList(uidNotFound)), dissociateInstances.getResponse());
1154 // "serviceException": {
1155 // "messageId": "SVC4063",
1156 // "text": "Error: Requested \u0027%1\u0027 resource was not found.",
1163 public void disassociateWithDifferentDesigner() throws Exception {
1164 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
1166 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
1167 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
1169 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1171 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1172 capReqDefBeforeAssociate);
1173 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
1175 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
1178 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef,
1179 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), resourceDetailsVF.getUniqueId(),
1180 ComponentTypeEnum.RESOURCE);
1181 assertEquals("Check response code ", 409, dissociateInstances.getErrorCode().intValue());
1182 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
1183 dissociateInstances.getResponse());
1185 CapReqDef capReqDefAfterDissociate = getResourceReqCap();
1187 List<RequirementDefinition> listOfRequierments = capReqDefAfterDissociate.getRequirements()
1188 .get("tosca.capabilities.Container");
1189 assertEquals("Check requirement", 1, listOfRequierments.size());
1190 assertTrue(capReqDefAfterDissociate.getRequirements().equals(requirementsBeforeAssociate));
1191 assertTrue(capReqDefAfterDissociate.getCapabilities().equals(capabilitiesBeforeAssociate));
1196 public void disassociateWithTester() throws Exception {
1197 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
1199 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
1200 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
1202 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1204 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1205 capReqDefBeforeAssociate);
1206 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
1208 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
1211 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef,
1212 ElementFactory.getDefaultUser(UserRoleEnum.TESTER), resourceDetailsVF.getUniqueId(),
1213 ComponentTypeEnum.RESOURCE);
1214 assertEquals("Check response code ", 409, dissociateInstances.getErrorCode().intValue());
1215 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
1216 dissociateInstances.getResponse());
1218 CapReqDef capReqDefAfterDissociate = getResourceReqCap();
1220 List<RequirementDefinition> listOfRequierments = capReqDefAfterDissociate.getRequirements()
1221 .get("tosca.capabilities.Container");
1222 assertNotNull("Requierment is null after disassociate with tester", listOfRequierments);
1223 assertEquals("Check requirement", 1, listOfRequierments.size());
1224 assertTrue(capReqDefAfterDissociate.getRequirements().equals(requirementsBeforeAssociate));
1225 assertTrue(capReqDefAfterDissociate.getCapabilities().equals(capabilitiesBeforeAssociate));
1229 public void disassociateServiceWithUidOfVF() throws Exception {
1230 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VFC.toString());
1232 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
1233 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
1235 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1237 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1238 capReqDefBeforeAssociate);
1240 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
1241 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1242 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
1243 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
1244 resourceDetailsVF.getUniqueId()));
1246 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, designerUser,
1247 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.SERVICE);
1248 assertEquals("Check response code ", 404, dissociateInstances.getErrorCode().intValue());
1249 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.SERVICE_NOT_FOUND.name(),
1250 new ArrayList<String>(Arrays.asList("")), dissociateInstances.getResponse());
1252 CapReqDef capReqDefAfterDissociate = getResourceReqCap();
1254 List<RequirementDefinition> listOfRequierments = capReqDefAfterDissociate.getRequirements()
1255 .get("tosca.capabilities.Container");
1256 assertTrue(listOfRequierments == null);
1257 assertTrue(getComponentInstancesRelations(resourceDetailsVF.getUniqueId()).size() != 0);
1261 public void disassociateWithEmptyVfUid() throws Exception {
1262 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
1264 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
1265 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
1267 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1269 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1270 capReqDefBeforeAssociate);
1271 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
1273 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
1276 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
1277 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1278 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
1279 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
1280 resourceDetailsVF.getUniqueId()));
1282 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, designerUser,
1283 "", ComponentTypeEnum.RESOURCE);
1284 assertEquals("Check response code ", 404, dissociateInstances.getErrorCode().intValue());
1286 CapReqDef capReqDef = getResourceReqCap();
1288 requirementsBeforeAssociate.remove("tosca.capabilities.Container");
1289 assertTrue(capReqDef.getRequirements().equals(requirementsBeforeAssociate));
1291 List<CapabilityDefinition> list = capabilitiesBeforeAssociate.get("tosca.capabilities.Container");
1292 for (CapabilityDefinition cap : list) {
1293 cap.setMinOccurrences("0");
1296 Map<String, List<CapabilityDefinition>> capabilitiesAfterAssociate = capReqDef.getCapabilities();
1297 assertTrue(capabilitiesAfterAssociate.equals(capabilitiesBeforeAssociate));
1301 public void disassociateOneComponentDeleted() throws Exception {
1302 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
1304 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
1305 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
1307 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1309 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1310 capReqDefBeforeAssociate);
1311 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
1313 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
1316 ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
1317 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1319 RestResponse deleteResourceResponse = ResourceRestUtils.deleteResource(resourceDetailsCap.getUniqueId(),
1320 designerUser.getUserId());
1321 ResourceRestUtils.checkDeleteResponse(deleteResourceResponse);
1323 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, designerUser,
1324 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1325 assertEquals("Check response code ", STATUS_CODE_SUCCESS, dissociateInstances.getErrorCode().intValue());
1326 assertTrue(getComponentInstancesRelations(resourceDetailsVF.getUniqueId()).isEmpty());
1328 CapReqDef capReqDefAfterDissociate = getResourceReqCap();
1330 List<RequirementDefinition> listOfRequierments = capReqDefAfterDissociate.getRequirements()
1331 .get("tosca.capabilities.Container");
1332 assertEquals("Check requirement", 1, listOfRequierments.size());
1333 assertTrue(capReqDefAfterDissociate.getRequirements().equals(requirementsBeforeAssociate));
1334 assertTrue(capReqDefAfterDissociate.getCapabilities().equals(capabilitiesBeforeAssociate));
1338 public void disassociateNotCheckedoutVf() throws Exception {
1339 createTwoAtomicResourcesByType(ResourceTypeEnum.CP.toString(), ResourceTypeEnum.VL.toString());
1341 ComponentInstance riReq = createComponentInstance(resourceDetailsReq);
1342 ComponentInstance riCap = createComponentInstance(resourceDetailsCap);
1344 CapReqDef capReqDefBeforeAssociate = getResourceReqCap();
1345 Map<String, List<CapabilityDefinition>> capabilitiesBeforeAssociate = capReqDefBeforeAssociate
1347 Map<String, List<RequirementDefinition>> requirementsBeforeAssociate = capReqDefBeforeAssociate
1350 RequirementCapabilityRelDef requirementDef = setRelationshipBetweenInstances(riReq, riCap,
1351 capReqDefBeforeAssociate);
1353 RestResponse changeResourceStateToCheckin = LifecycleRestUtils.changeResourceState(resourceDetailsVF,
1354 designerUser, LifeCycleStatesEnum.CHECKIN);
1355 LifecycleRestUtils.checkSuccess(changeResourceStateToCheckin);
1357 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, designerUser,
1358 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1359 assertEquals("Check response code ", 409, dissociateInstances.getErrorCode().intValue());
1360 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.RESTRICTED_OPERATION.name(), new ArrayList<String>(),
1361 dissociateInstances.getResponse());
1363 CapReqDef capReqDefAfterDissociate = getResourceReqCap();
1364 assertTrue(capReqDefAfterDissociate.getRequirements().equals(requirementsBeforeAssociate));
1365 assertTrue(capReqDefAfterDissociate.getCapabilities().equals(capabilitiesBeforeAssociate));
1367 RestResponse changeResourceStateToCheckout = LifecycleRestUtils.changeResourceState(resourceDetailsVF,
1368 designerUser, LifeCycleStatesEnum.CHECKOUT);
1369 LifecycleRestUtils.checkSuccess(changeResourceStateToCheckout);
1371 requirementDef = setUidsOfInstancesAfterLifecycleStateChange(riReq, riCap, capReqDefBeforeAssociate);
1373 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, designerUser,
1374 resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1375 assertEquals("Check response code ", STATUS_CODE_SUCCESS, associateInstances.getErrorCode().intValue());
1376 assertTrue(checkRealtionship(requirementDef.getFromNode(), requirementDef.getToNode(),
1377 resourceDetailsVF.getUniqueId()));
1379 RestResponse secondDisociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef,
1380 designerUser, resourceDetailsVF.getUniqueId(), ComponentTypeEnum.RESOURCE);
1381 assertEquals("Check response code ", STATUS_CODE_SUCCESS, secondDisociateInstances.getErrorCode().intValue());
1382 assertTrue(getComponentInstancesRelations(resourceDetailsVF.getUniqueId()).isEmpty());
1384 RestResponse changeResourceStateToCheckout2 = LifecycleRestUtils.changeResourceState(resourceDetailsVF,
1385 designerUser, LifeCycleStatesEnum.CHECKIN);
1386 LifecycleRestUtils.checkSuccess(changeResourceStateToCheckout2);
1387 RestResponse changeResourceStateToCheckout3 = LifecycleRestUtils.changeResourceState(resourceDetailsVF,
1388 designerUser, LifeCycleStatesEnum.CHECKOUT);
1389 LifecycleRestUtils.checkSuccess(changeResourceStateToCheckout3);
1391 assertTrue(getComponentInstancesRelations(resourceDetailsVF.getUniqueId()).isEmpty());