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 static org.testng.Assert.assertEquals;
24 import static org.testng.Assert.assertTrue;
26 import java.io.FileNotFoundException;
27 import java.io.IOException;
28 import java.util.ArrayList;
29 import java.util.Arrays;
30 import java.util.List;
32 import org.codehaus.jettison.json.JSONException;
33 import org.json.JSONArray;
34 import org.junit.rules.TestName;
35 import org.openecomp.sdc.be.dao.api.ActionStatus;
36 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
37 import org.openecomp.sdc.be.model.CapReqDef;
38 import org.openecomp.sdc.be.model.CapabilityDefinition;
39 import org.openecomp.sdc.be.model.Component;
40 import org.openecomp.sdc.be.model.ComponentInstance;
41 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
42 import org.openecomp.sdc.be.model.RequirementDefinition;
43 import org.openecomp.sdc.be.model.User;
44 import org.openecomp.sdc.ci.tests.api.ComponentInstanceBaseTest;
45 import org.openecomp.sdc.ci.tests.api.Urls;
46 import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
47 import org.openecomp.sdc.ci.tests.datatypes.ComponentInstanceReqDetails;
48 import org.openecomp.sdc.ci.tests.datatypes.ComponentReqDetails;
49 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
50 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
51 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
52 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
53 import org.openecomp.sdc.ci.tests.datatypes.enums.ServiceCategoriesEnum;
54 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
55 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
56 import org.openecomp.sdc.ci.tests.utils.Utils;
57 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
58 import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
59 import org.openecomp.sdc.ci.tests.utils.rest.ComponentInstanceRestUtils;
60 import org.openecomp.sdc.ci.tests.utils.rest.ComponentRestUtils;
61 import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
62 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
63 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
64 import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
65 import org.openecomp.sdc.ci.tests.utils.validation.BaseValidationUtils;
66 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
67 import org.slf4j.Logger;
68 import org.slf4j.LoggerFactory;
69 import org.testng.AssertJUnit;
70 import org.testng.annotations.BeforeMethod;
71 import org.testng.annotations.Test;
73 public class ServiceComponentInstanceCRUDTest extends ComponentInstanceBaseTest {
74 private static Logger log = LoggerFactory.getLogger(ServiceComponentInstanceCRUDTest.class.getName());
75 private static final String SPACE_STRING = " ";
76 private static String REQUIREMENT_NAME = "host";
77 private static String CAPABILITY_TYPE = "tosca.capabilities.Container";
79 private String reqOwnerId;
80 private String capOwnerId;
82 public ServiceComponentInstanceCRUDTest() {
83 super(new TestName(), ServiceComponentInstanceCRUDTest.class.getSimpleName());
86 @BeforeMethod(alwaysRun = true)
87 public void before() throws Exception {
92 private void createComponents() throws Exception {
93 createAtomicResource(resourceDetailsVFC_01);
94 createAtomicResource(resourceDetailsVFC_02);
95 createAtomicResource(resourceDetailsCP_01);
96 createAtomicResource(resourceDetailsVL_01);
97 createAtomicResource(resourceDetailsVL_02);
98 createVF(resourceDetailsVF_01);
99 createVF(resourceDetailsVF_02);
100 createService(serviceDetails_01);
101 certifyResource(resourceDetailsVFC_01);
102 certifyResource(resourceDetailsVFC_02);
103 RestResponse createAtomicResourceInstance = createAtomicInstanceForVFDuringSetup(resourceDetailsVF_01, resourceDetailsVFC_01, sdncDesignerDetails);
104 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
105 reqOwnerId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
106 createAtomicResourceInstance = createAtomicInstanceForVFDuringSetup(resourceDetailsVF_02, resourceDetailsVFC_02, sdncDesignerDetails);
107 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
108 capOwnerId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);// should
112 // getUniqueIdOfFirstInstance
118 private void certifyResource(ResourceReqDetails resource) throws Exception {
119 changeResourceLifecycleState(resource, sdncDesignerDetails.getUserId(), LifeCycleStatesEnum.CERTIFICATIONREQUEST);
120 changeResourceLifecycleState(resource, sdncTesterDetails.getUserId(), LifeCycleStatesEnum.STARTCERTIFICATION);
121 changeResourceLifecycleState(resource, sdncTesterDetails.getUserId(), LifeCycleStatesEnum.CERTIFY);
124 private void changeResourceLifecycleState(ResourceReqDetails resourceDetails, String userUserId, LifeCycleStatesEnum lifeCycleStates) throws Exception {
125 RestResponse response = LifecycleRestUtils.changeResourceState(resourceDetails, userUserId, lifeCycleStates);
126 LifecycleRestUtils.checkLCS_Response(response);
129 private void changeServiceLifecycleState(ServiceReqDetails serviceDetails, User user, LifeCycleStatesEnum lifeCycleStates) throws Exception {
130 RestResponse response = LifecycleRestUtils.changeServiceState(serviceDetails, user, lifeCycleStates);
131 LifecycleRestUtils.checkLCS_Response(response);
134 private void createVFInstanceFailWithoutChangeState(ActionStatus actionStatus, List<String> variables, ResourceReqDetails vfResource, User user, int errorCode) throws Exception {
135 RestResponse createVFInstanceSuccessfullyWithoutChangeStateResp = createVFInstance(serviceDetails_01, vfResource, user);
136 checkErrorMessage(actionStatus, variables, errorCode, createVFInstanceSuccessfullyWithoutChangeStateResp);
139 private void createVFInstanceFail(ActionStatus actionStatus, List<String> variables, ResourceReqDetails vfResource, User user, int errorCode) throws Exception, FileNotFoundException, JSONException {
140 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, vfResource, user);
141 checkErrorMessage(actionStatus, variables, errorCode, createVFInstResp);
144 private void deleteVFInstanceFail(ActionStatus actionStatus, List<String> variables, ResourceReqDetails vfResource, User user, int errorCode) throws Exception, FileNotFoundException, JSONException {
145 RestResponse deleteVFInstResp = deleteVFInstance(vfResource.getUniqueId(), serviceDetails_01, user);
146 checkErrorMessage(actionStatus, variables, errorCode, deleteVFInstResp);
149 private void createAtomicResourceInstanceFailWithoutChangeState(ActionStatus actionStatus, List<String> variables, ResourceReqDetails atomicResource, User user, int errorCode) throws Exception, FileNotFoundException, JSONException {
150 RestResponse createAtomicInstResp = createAtomicInstanceForService(serviceDetails_01, atomicResource, user);
151 checkErrorMessage(actionStatus, variables, errorCode, createAtomicInstResp);
154 private void createAtomicResourceInstanceFail(ActionStatus actionStatus, List<String> variables, ResourceReqDetails atomicResource, User user, int errorCode) throws Exception, FileNotFoundException, JSONException {
155 RestResponse createAtomicInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, atomicResource, user);
156 checkErrorMessage(actionStatus, variables, errorCode, createAtomicInstResp);
159 private void deleteAtomicResourceInstanceFail(ActionStatus actionStatus, List<String> variables, ResourceReqDetails atomicResource, User user, int errorCode) throws Exception, FileNotFoundException, JSONException {
160 RestResponse deleteAtomicInstResp = deleteAtomicInstanceForService(atomicResource.getUniqueId(), serviceDetails_01, user);
161 checkErrorMessage(actionStatus, variables, errorCode, deleteAtomicInstResp);
164 private void checkErrorMessage(ActionStatus actionStatus, List<String> variables, int errorCode, RestResponse response) throws Exception {
166 log.debug(response.getResponse());
167 AssertJUnit.assertEquals(errorCode, response.getErrorCode().intValue());
168 ErrorValidationUtils.checkBodyResponseOnError(actionStatus.name(), variables, response.getResponse());
171 private RestResponse createCheckedinVFInstance(ServiceReqDetails containerDetails, ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
172 changeResourceLifecycleState(compInstOriginDetails, compInstOriginDetails.getCreatorUserId(), LifeCycleStatesEnum.CHECKIN);
173 return createVFInstance(containerDetails, compInstOriginDetails, modifier);
176 private RestResponse createCheckedinAtomicInstanceForService(ServiceReqDetails containerDetails, ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
177 changeResourceLifecycleState(compInstOriginDetails, compInstOriginDetails.getCreatorUserId(), LifeCycleStatesEnum.CHECKIN);
178 return createAtomicInstanceForService(containerDetails, compInstOriginDetails, modifier);
181 private void createVFInstanceAndAtomicResourceInstanceWithoutCheckin(ResourceReqDetails vf, ResourceReqDetails atomicResource, User user) throws Exception {
182 RestResponse createVFInstance = createVFInstance(serviceDetails_01, vf, user);
183 ResourceRestUtils.checkCreateResponse(createVFInstance);
184 RestResponse atomicInstanceForService = createAtomicInstanceForService(serviceDetails_01, atomicResource, user);
185 ResourceRestUtils.checkCreateResponse(atomicInstanceForService);
188 private void createVFInstanceAndAtomicResourceInstanceSuccessully(ResourceReqDetails vf, ResourceReqDetails atomicResource) throws Exception, IOException {
189 createVFInstanceAndAtomicResourceInstanceSuccessully(vf, atomicResource, sdncDesignerDetails);
192 private void createVFInstanceAndAtomicResourceInstanceSuccessully(ResourceReqDetails vf, ResourceReqDetails atomicResource, User user) throws Exception, IOException {
193 changeResourceLifecycleState(vf, vf.getCreatorUserId(), LifeCycleStatesEnum.CHECKIN);
194 changeResourceLifecycleState(atomicResource, atomicResource.getCreatorUserId(), LifeCycleStatesEnum.CHECKIN);
195 createVFInstanceAndAtomicResourceInstanceWithoutCheckin(vf, atomicResource, user);
199 public void createVFInstanceSuccessfullyTest() throws Exception {
200 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
201 ResourceRestUtils.checkCreateResponse(createVFInstResp);
202 createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
203 ResourceRestUtils.checkCreateResponse(createVFInstResp);
204 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
208 public void createVFAndAtomicInstanceTest() throws Exception {
209 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
210 ResourceRestUtils.checkCreateResponse(createVFInstResp);
211 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01, sdncDesignerDetails);
212 ResourceRestUtils.checkCreateResponse(createVFInstResp);
213 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_01, sdncDesignerDetails);
214 ResourceRestUtils.checkCreateResponse(createVFInstResp);
215 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_02, sdncDesignerDetails);
216 ResourceRestUtils.checkCreateResponse(createVFInstResp);
217 getComponentAndValidateRIs(serviceDetails_01, 4, 0);
221 public void deleteAtomicInstanceTest() throws Exception {
222 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
224 ResourceRestUtils.checkCreateResponse(createVFInstResp);
225 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01, sdncDesignerDetails);
227 ResourceRestUtils.checkCreateResponse(createVFInstResp);
228 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_01, sdncDesignerDetails);
230 ResourceRestUtils.checkCreateResponse(createVFInstResp);
231 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_02, sdncDesignerDetails);
233 ResourceRestUtils.checkCreateResponse(createVFInstResp);
235 String compInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
237 createVFInstResp = deleteAtomicInstanceForService(compInstId, serviceDetails_01, sdncDesignerDetails);
238 ResourceRestUtils.checkDeleteResponse(createVFInstResp);
239 getComponentAndValidateRIs(serviceDetails_01, 3, 0);
243 public void deleteVFInstanceTest() throws Exception {
244 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
246 ResourceRestUtils.checkCreateResponse(createVFInstResp);
247 createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
248 String compInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
250 ResourceRestUtils.checkCreateResponse(createVFInstResp);
251 createVFInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01, sdncDesignerDetails);
253 ResourceRestUtils.checkCreateResponse(createVFInstResp);
255 createVFInstResp = deleteVFInstance(compInstId, serviceDetails_01, sdncDesignerDetails);
256 ResourceRestUtils.checkDeleteResponse(createVFInstResp);
257 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
261 public void associateDissociateTwoVFs() throws Exception {
263 RestResponse createVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
264 ResourceRestUtils.checkCreateResponse(createVFInstResp);
265 String fromCompInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
266 createVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
267 ResourceRestUtils.checkCreateResponse(createVFInstResp);
268 String toCompInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
270 String capType = CAPABILITY_TYPE;
271 String reqName = REQUIREMENT_NAME;
273 RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
274 ResourceRestUtils.checkSuccess(getResourceResponse);
275 CapReqDef capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
276 List<CapabilityDefinition> capList = capReqDef.getCapabilities().get(capType);
277 List<RequirementDefinition> reqList = capReqDef.getRequirements().get(capType);
279 RequirementCapabilityRelDef requirementDef = getReqCapRelation(fromCompInstId, toCompInstId, capType, reqName, capList, reqList);
281 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
282 getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
283 capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
284 List<RequirementDefinition> list = capReqDef.getRequirements().get(capType);
285 AssertJUnit.assertEquals("Check requirement", null, list);
286 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
288 dissociateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
289 getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
290 capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
291 list = capReqDef.getRequirements().get(capType);
292 AssertJUnit.assertEquals("Check requirement", 1, list.size());
293 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
296 private RequirementCapabilityRelDef getReqCapRelation(String reqCompInstId, String capCompInstId, String capType, String reqName, List<CapabilityDefinition> capList, List<RequirementDefinition> reqList) {
297 return ElementFactory.getReqCapRelation(reqCompInstId, capCompInstId, reqOwnerId, capOwnerId, capType, reqName, capList, reqList);
301 public void createResourceInstanceByDifferentDesignerTest() throws Exception {
302 createVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), 409);
303 createAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsCP_01, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), 409);
304 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
308 public void createResourceInstanceByDifferentDesignerTest_ServiceIsCheckedin() throws Exception {
309 User designer2 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2);
311 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
312 changeServiceLifecycleState(serviceDetails_01, designer2, LifeCycleStatesEnum.CHECKOUT);
314 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01, designer2);
315 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
320 public void createResourceInstanceByTester() throws Exception {
321 createVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01, ElementFactory.getDefaultUser(UserRoleEnum.TESTER), 409);
322 createAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsCP_01, ElementFactory.getDefaultUser(UserRoleEnum.TESTER), 409);
323 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
327 public void createResourceInstanceWithNotASDCUserTest() throws Exception {
328 sdncDesignerDetails.setUserId("ab0001");
329 createVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01, sdncDesignerDetails, 409);
330 createAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsCP_01, sdncDesignerDetails, 409);
331 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
335 public void createResourceInstanceWithEmptyUserIdTest() throws Exception {
336 sdncDesignerDetails.setUserId("");
337 createVFInstanceFail(ActionStatus.MISSING_INFORMATION, new ArrayList<String>(), resourceDetailsVF_01, sdncDesignerDetails, 403);
338 createAtomicResourceInstanceFail(ActionStatus.MISSING_INFORMATION, new ArrayList<String>(), resourceDetailsCP_01, sdncDesignerDetails, 403);
339 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
343 public void createResourceInstanceWithEmptyServiceUidTest() throws Exception {
344 serviceDetails_01.setUniqueId("");
345 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
346 assertEquals(404, createVFInstResp.getErrorCode().intValue());
347 RestResponse createAtomicInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01, sdncDesignerDetails);
348 assertEquals(404, createAtomicInstResp.getErrorCode().intValue());
352 public void createResourceInstanceWhileResourceNotExistTest() throws Exception {
353 String vfResourceUniqueId = "1234";
354 String atomicResourceUniqueId = "5678";
356 resourceDetailsVF_01.setUniqueId(vfResourceUniqueId);
357 resourceDetailsCP_01.setUniqueId(atomicResourceUniqueId);
359 createVFInstanceFailWithoutChangeState(ActionStatus.RESOURCE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")), resourceDetailsVF_01, sdncDesignerDetails, 404);
360 createAtomicResourceInstanceFailWithoutChangeState(ActionStatus.RESOURCE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")), resourceDetailsCP_01, sdncDesignerDetails, 404);
364 public void createResourceInstanceInServiceNotExistsTest() throws Exception {
365 serviceDetails_01.setUniqueId("1234");
366 createVFInstanceFail(ActionStatus.SERVICE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")), resourceDetailsVF_01, sdncDesignerDetails, 404);
367 createAtomicResourceInstanceFail(ActionStatus.SERVICE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")), resourceDetailsCP_01, sdncDesignerDetails, 404);
371 public void createResourceInstanceInCheckedinServiceTest() throws Exception {
372 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
374 createVFInstanceFailWithoutChangeState(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01, sdncDesignerDetails, 409);
375 createAtomicResourceInstanceFailWithoutChangeState(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsCP_01, sdncDesignerDetails, 409);
376 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
379 @Test(enabled = false)
380 public void createResourceInstance_ResourceInCheckoutStateTest() throws Exception {
381 LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails, "0.1", LifeCycleStatesEnum.CHECKIN);
382 RestResponse createVFInstanceWithoutChangeStateResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
383 ComponentInstanceRestUtils.checkCreateResponse(createVFInstanceWithoutChangeStateResp);
384 RestResponse createAtomicInstWithoutCheangeStateResp = createAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01, sdncDesignerDetails);
385 ComponentInstanceRestUtils.checkCreateResponse(createAtomicInstWithoutCheangeStateResp);
386 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
390 public void createResourceInstance_ResourceInCertificationRequestStateTest() throws Exception {
391 changeResourceLifecycleState(resourceDetailsVF_01, sdncDesignerDetails.getUserId(), LifeCycleStatesEnum.CERTIFICATIONREQUEST);
392 changeResourceLifecycleState(resourceDetailsCP_01, sdncDesignerDetails.getUserId(), LifeCycleStatesEnum.CERTIFICATIONREQUEST);
394 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01);
395 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
399 public void createResourceInstance_startCertificationStateTest() throws Exception {
400 changeResourceLifecycleState(resourceDetailsVF_01, sdncDesignerDetails.getUserId(), LifeCycleStatesEnum.CERTIFICATIONREQUEST);
401 changeResourceLifecycleState(resourceDetailsCP_01, sdncDesignerDetails.getUserId(), LifeCycleStatesEnum.CERTIFICATIONREQUEST);
403 changeResourceLifecycleState(resourceDetailsVF_01, sdncTesterDetails.getUserId(), LifeCycleStatesEnum.STARTCERTIFICATION);
404 changeResourceLifecycleState(resourceDetailsCP_01, sdncTesterDetails.getUserId(), LifeCycleStatesEnum.STARTCERTIFICATION);
406 createVFInstanceAndAtomicResourceInstanceWithoutCheckin(resourceDetailsVF_01, resourceDetailsCP_01, sdncDesignerDetails);
407 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
412 public void createResourceInstance_certifiedStateTest() throws Exception {
413 certifyResource(resourceDetailsVF_01);
414 certifyResource(resourceDetailsCP_01);
416 createVFInstanceAndAtomicResourceInstanceWithoutCheckin(resourceDetailsVF_01, resourceDetailsCP_01, sdncDesignerDetails);
420 public void createResourceInstance_OneHasDifferentOwner() throws Exception {
421 User designer2 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2);
423 ResourceReqDetails vfResource = new ResourceReqDetails(resourceDetailsVF_01, "0.1");
424 vfResource.setUniqueId(null);
425 vfResource.setName("newVF");
426 vfResource.setTags(new ArrayList<String>(Arrays.asList(vfResource.getName())));
427 createVF(vfResource, designer2);
429 RestResponse atomicInstanceForService = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01, sdncDesignerDetails);
430 ResourceRestUtils.checkCreateResponse(atomicInstanceForService);
431 createVFInstanceFailWithoutChangeState(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), vfResource, designer2, 409);
433 getComponentAndValidateRIs(serviceDetails_01, 1, 0);
437 public void indexesOfVFInstancesTest() throws Exception {
438 String firstInstanceName = resourceDetailsVF_01.getName() + SPACE_STRING + "1";
439 String secondInstanceName = resourceDetailsVF_01.getName() + SPACE_STRING + "2";
440 String thirdInstanceName = resourceDetailsVF_01.getName() + SPACE_STRING + "3";
442 LifecycleRestUtils.changeResourceState(resourceDetailsVF_01, sdncDesignerDetails, "0.1", LifeCycleStatesEnum.CHECKIN);
444 RestResponse createFirstVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
445 ResourceRestUtils.checkCreateResponse(createFirstVFInstResp);
446 RestResponse createSecondVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
447 ResourceRestUtils.checkCreateResponse(createSecondVFInstResp);
448 RestResponse createThirdVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
449 ResourceRestUtils.checkCreateResponse(createThirdVFInstResp);
451 Component service = getComponentAndValidateRIs(serviceDetails_01, 3, 0);
452 List<ComponentInstance> componentInstancesList = service.getComponentInstances();
453 for (ComponentInstance instance : componentInstancesList) {
454 String instanceName = instance.getName();
455 boolean isEqualToFirstInstanceName = instanceName.equals(firstInstanceName);
456 boolean isEqualToSecondInstanceName = instanceName.equals(secondInstanceName);
457 boolean isEqualToThirdInstanceName = instanceName.equals(thirdInstanceName);
458 assertTrue(isEqualToFirstInstanceName || isEqualToSecondInstanceName || isEqualToThirdInstanceName);
463 public void vfInstancesAmountInTwoServiceVersionsTest() throws Exception {
464 String oldServiceUniqueId = serviceDetails_01.getUniqueId();
466 createTwoCheckedinVFInstances();
468 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
469 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKOUT);
471 String newSerivceUniqueIdAfterChangeLifecycleState = serviceDetails_01.getUniqueId();
472 getComponentAndValidateRIsAfterChangeLifecycleState(oldServiceUniqueId, serviceDetails_01, 2, 0);
475 checkServiceOldVersionRIs(oldServiceUniqueId, newSerivceUniqueIdAfterChangeLifecycleState, 2, 0);
477 // Add one more resource instance to second version of service
478 LifecycleRestUtils.changeResourceState(resourceDetailsVL_01, sdncDesignerDetails, "0.1", LifeCycleStatesEnum.CHECKIN);
479 RestResponse createAtomicResourceInstResp = createAtomicResourceInstanceToSecondServiceVersion(newSerivceUniqueIdAfterChangeLifecycleState, resourceDetailsVL_01);
480 String atomicResourceUniqueId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstResp);
481 getComponentAndValidateRIsAfterAddingAtomicResourceInstance(oldServiceUniqueId, serviceDetails_01, 3, 0);
483 // Check that RIs are same as in the beginning - like in old version of
485 deleteCompInstReqCapFromExpected(atomicResourceUniqueId);
486 checkServiceOldVersionRIs(oldServiceUniqueId, newSerivceUniqueIdAfterChangeLifecycleState, 2, 0);
490 private void createTwoCheckedinVFInstances() throws Exception {
491 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
492 ResourceRestUtils.checkCreateResponse(createFirstVFInstResp);
493 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
494 ResourceRestUtils.checkCreateResponse(createSecondVFInstResp);
497 private void getComponentAndValidateRIsAfterAddingAtomicResourceInstance(String oldComponentUniqueId, ComponentReqDetails componentDetails, int numOfRIs, int numOfRelations) throws Exception {
498 getComponentAndValidateRIsAfterChangeLifecycleState(oldComponentUniqueId, componentDetails, numOfRIs, numOfRelations);
502 private void checkServiceOldVersionRIs(String oldUniqueId, String newUniqueId, int numOfRIs, int numOfRelations) throws IOException, Exception {
503 serviceDetails_01.setUniqueId(oldUniqueId);
504 getComponentAndValidateRIsAfterChangeLifecycleState(newUniqueId, serviceDetails_01, numOfRIs, numOfRelations);
507 private RestResponse createAtomicResourceInstanceToSecondServiceVersion(String secondServiceUniqueId, ResourceReqDetails resourceToAdd) throws Exception {
508 serviceDetails_01.setUniqueId(secondServiceUniqueId);
509 RestResponse createAtomicResourceInstResp = createAtomicInstanceForService(serviceDetails_01, resourceToAdd, sdncDesignerDetails);
510 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstResp);
511 return createAtomicResourceInstResp;
515 public void createResourceInstanceToUnsupportedComponentTest() throws Exception {
516 String unsupportedType = "unsupported";
517 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory.getComponentResourceInstance(resourceDetailsCP_01);
518 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetails, sdncDesignerDetails, serviceDetails_01.getUniqueId(), unsupportedType);
519 checkErrorMessage(ActionStatus.UNSUPPORTED_ERROR, new ArrayList<String>(Arrays.asList(unsupportedType)), 400, createResourceInstanceResponse);
523 public void deleteResourceInstanceByDifferentDesignerTest() throws Exception {
525 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01);
527 deleteVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), 409);
528 deleteAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsCP_01, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), 409);
529 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
533 public void deleteResourceInstanceByDifferentDesignerTest_ServiceIsCheckedin() throws Exception {
535 String oldServiceUniqueId = serviceDetails_01.getUniqueId();
537 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
538 ResourceRestUtils.checkCreateResponse(createVFInstResp);
539 RestResponse createAtomicResourceInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01, sdncDesignerDetails);
540 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstResp);
542 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
543 changeServiceLifecycleState(serviceDetails_01, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), LifeCycleStatesEnum.CHECKOUT);
544 String newServiceUniqueId = serviceDetails_01.getUniqueId();
546 String oldVFInstanceUniqueId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
547 String newVFInstanceUniqueId = oldVFInstanceUniqueId.replaceAll(oldServiceUniqueId, serviceDetails_01.getUniqueId());
548 String oldAtomicResourceInstanceUniqueId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstResp);
549 String newAtomicResourceInstanceUniqueId = oldAtomicResourceInstanceUniqueId.replaceAll(oldServiceUniqueId, serviceDetails_01.getUniqueId());
551 deleteVFInstanceAndAtomicResourceInstanceSuccessfully(newVFInstanceUniqueId, newAtomicResourceInstanceUniqueId, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2));
553 serviceDetails_01.setUniqueId(oldServiceUniqueId);
554 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
556 serviceDetails_01.setUniqueId(newServiceUniqueId);
557 updateExpectedReqCapAfterChangeLifecycleState(oldServiceUniqueId, serviceDetails_01.getUniqueId());
558 deleteCompInstReqCapFromExpected(newVFInstanceUniqueId);
559 deleteCompInstReqCapFromExpected(newAtomicResourceInstanceUniqueId);
560 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
563 private void deleteVFInstanceAndAtomicResourceInstanceSuccessfully(String vfInstanceUniqueId, String atomicResourceInstanceUniqueId) throws IOException, Exception {
564 deleteVFInstanceAndAtomicResourceInstanceSuccessfully(vfInstanceUniqueId, atomicResourceInstanceUniqueId, sdncDesignerDetails);
567 private void deleteVFInstanceAndAtomicResourceInstanceSuccessfully(String vfInstanceUniqueId, String atomicResourceInstanceUniqueId, User user) throws IOException, Exception {
568 RestResponse deleteVFInstResp = deleteVFInstance(vfInstanceUniqueId, serviceDetails_01, user);
569 ResourceRestUtils.checkDeleteResponse(deleteVFInstResp);
570 RestResponse deleteAtomicResourceInsResp = deleteAtomicInstanceForService(atomicResourceInstanceUniqueId, serviceDetails_01, user);
571 ResourceRestUtils.checkDeleteResponse(deleteAtomicResourceInsResp);
575 public void deleteResourceInstanceByTesterUserTest() throws Exception {
576 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01);
577 deleteVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01, ElementFactory.getDefaultUser(UserRoleEnum.TESTER), 409);
578 deleteAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsCP_01, ElementFactory.getDefaultUser(UserRoleEnum.TESTER), 409);
579 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
583 public void deleteResourceInstanceByNotASDCUserTest() throws Exception {
584 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01);
585 User notASDCUser = new User();
586 notASDCUser.setUserId("ab0001");
587 deleteVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01, notASDCUser, 409);
588 deleteAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsCP_01, notASDCUser, 409);
589 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
593 public void deleteResourceInstanceFromCheckedinServiceTest() throws Exception {
594 createVFInstanceAndAtomicResourceInstanceSuccessully(resourceDetailsVF_01, resourceDetailsCP_01);
595 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
596 deleteVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01, sdncDesignerDetails, 409);
597 deleteAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsCP_01, sdncDesignerDetails, 409);
598 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
602 public void deleteResourceInstanceWhileResourceCertifiedStateTest() throws Exception {
603 certifyResource(resourceDetailsVF_01);
604 certifyResource(resourceDetailsCP_01);
606 RestResponse createVFInstance = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
607 ResourceRestUtils.checkCreateResponse(createVFInstance);
608 String vfInstUniqueId = ResponseParser.getUniqueIdFromResponse(createVFInstance);
609 RestResponse atomicInstanceForService = createAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01, sdncDesignerDetails);
610 ResourceRestUtils.checkCreateResponse(atomicInstanceForService);
611 String atomicInstUniqueId = ResponseParser.getUniqueIdFromResponse(atomicInstanceForService);
613 deleteVFInstanceAndAtomicResourceInstanceSuccessfully(vfInstUniqueId, atomicInstUniqueId);
615 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
618 // fail - bug DE191849
620 public void deleteNotFoundResourceInstanceTest() throws Exception, Throwable {
622 resourceDetailsVF_01.setUniqueId("1234");
623 resourceDetailsCP_01.setUniqueId("5678");
625 deleteVFInstanceFail(ActionStatus.RESOURCE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")), resourceDetailsVF_01, sdncDesignerDetails, 404);
626 deleteAtomicResourceInstanceFail(ActionStatus.RESOURCE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")), resourceDetailsCP_01, sdncDesignerDetails, 404);
627 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
629 // {"requestError":{"serviceException":{"messageId":"SVC4503","text":"Error:
630 // Requested '%1' service was not found.","variables":["1234"]}}}>
634 public void deleteResourceInstanceFromServiceNotFoundTest() throws Exception, Throwable {
635 serviceDetails_01.setUniqueId("1234");
636 deleteVFInstanceFail(ActionStatus.SERVICE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")), resourceDetailsVF_01, sdncDesignerDetails, 404);
637 deleteAtomicResourceInstanceFail(ActionStatus.SERVICE_NOT_FOUND, new ArrayList<String>(Arrays.asList("")), resourceDetailsCP_01, sdncDesignerDetails, 404);
641 public void deleteResourceInstanceFromUnsupportedTypeTest() throws Exception {
642 String unsupportedType = "unsupportedType";
643 RestResponse deleteVFInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(sdncDesignerDetails, serviceDetails_01.getUniqueId(), resourceDetailsVF_01.getUniqueId(), unsupportedType);
644 checkErrorMessage(ActionStatus.UNSUPPORTED_ERROR, new ArrayList<String>(Arrays.asList(unsupportedType)), 400, deleteVFInstanceResponse);
645 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
649 public void deleteResourceInstanceWithEmptyServiceUidTest() throws Exception, Throwable {
650 serviceDetails_01.setUniqueId("");
651 RestResponse deleteVFInstResp = deleteVFInstance(resourceDetailsVF_01.getUniqueId(), serviceDetails_01, sdncDesignerDetails);
652 assertEquals(404, deleteVFInstResp.getErrorCode().intValue());
656 public void deleteResourceInstanceWithEmptyResourceInstanceUidTest() throws Exception, Throwable {
657 RestResponse deleteVFInstResp = deleteVFInstance("", serviceDetails_01, sdncDesignerDetails);
658 assertEquals(405, deleteVFInstResp.getErrorCode().intValue());
659 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
663 public void deleteResourceInstanceWithEmptyUserIdTest() throws Exception {
664 sdncDesignerDetails.setUserId("");
665 deleteVFInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsVF_01, sdncDesignerDetails, 409);
666 deleteAtomicResourceInstanceFail(ActionStatus.RESTRICTED_OPERATION, new ArrayList<String>(), resourceDetailsCP_01, sdncDesignerDetails, 409);
667 getComponentAndValidateRIs(serviceDetails_01, 0, 0);
670 // fail - bug DE188994
672 public void associateResourceInstanceToResourceInstanceNotFoundTest() throws Exception, Throwable {
673 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
674 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
675 String capCompInstId = "1234";
677 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
678 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
679 List<CapabilityDefinition> capListBeforeAssociate = new ArrayList<CapabilityDefinition>();
680 CapabilityDefinition cap = new CapabilityDefinition();
681 cap.setUniqueId(capCompInstId);
682 capListBeforeAssociate.add(cap);
683 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
685 assocaiteInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESOURCE_INSTANCE_NOT_FOUND, 404, new ArrayList<String>(Arrays.asList(capCompInstId)));
687 CapReqDef capReqDefAfterAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
688 List<CapabilityDefinition> capabilitiesAfterAssociate = capReqDefAfterAssociate.getCapabilities().get(CAPABILITY_TYPE);
689 List<RequirementDefinition> requirementsAfterAssoicate = capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
690 // AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate,
691 // requirementsAfterAssoicate);
692 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
693 // capabilitiesAfterAssociate);
695 getComponentAndValidateRIs(serviceDetails_01, 1, 0);
697 // "messageId": "SVC4116",
698 // "text": "Error: Invalid Content.",
701 // "9ae76786-2a9c-4409-95cb-db32885ed07f.eece8aaf-eb9f-4aff-b9a5-a11ca11de9e5.vf1001",
706 // this case is not relevant any more, it is tested as part of occurrences
708 @Test(enabled = false)
709 public void associateOnceAgainExistingRelationTest() throws Exception {
710 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
711 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
712 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
713 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
715 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
716 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
717 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
719 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
721 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
722 //////////////////////////////////////////////
723 // NO ERROR - RELATION ALREADY EXIST
724 // assocaiteInstancesFail(requirementDef, sdncDesignerDetails,
725 // ActionStatus.RESOURCE_INSTANCE_NOT_FOUND, 404, new
726 // ArrayList<String>(Arrays.asList(capCompInstId)));
727 //////////////////////////////////////////////
729 CapReqDef capReqDefAfterAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
730 List<CapabilityDefinition> capListAfterAssociate = capReqDefAfterAssociate.getCapabilities().get(CAPABILITY_TYPE);
731 List<RequirementDefinition> reqListAfterAssociate = capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
733 // AssertJUnit.assertEquals("Check requirement", null,
734 // reqListAfterAssociate);
735 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
736 // capListAfterAssociate);
738 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
740 // "messageId": "SVC4119",
741 // "text": "Error: No relation found between resource instances
742 // \u0027%1\u0027 and \u0027%2\u0027 for requirement \u0027%3\u0027.",
751 public void associateInstancesInMissingServiceTest() throws Exception {
752 serviceDetails_01.setUniqueId("1234");
753 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
754 assocaiteInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.SERVICE_NOT_FOUND, 404, new ArrayList<String>(Arrays.asList("")));
758 public void associateAfterDeletingResourceTest() throws Exception {
759 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
760 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
761 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
762 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
764 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
765 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
766 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
768 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
770 ResourceRestUtils.deleteResource(resourceDetailsVF_01.getUniqueId(), sdncDesignerDetails.getUserId());
772 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
773 CapReqDef capReqDefAfterAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
774 List<CapabilityDefinition> capListAfterAssociate = capReqDefAfterAssociate.getCapabilities().get(CAPABILITY_TYPE);
776 // for (CapabilityDefinition capabilityDefinition :
777 // capListBeforeAssociate) {
778 // if (capabilityDefinition.getType().equals(CAPABILITY_TYPE)){
779 // capabilityDefinition.setMinOccurrences("0");
783 // List<RequirementDefinition> reqListAfterAssociate =
784 // capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
786 // AssertJUnit.assertEquals("Check requirement", null,
787 // reqListAfterAssociate);
789 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
790 // capListAfterAssociate);
792 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
796 public void associateInstancesInCheckedinServiceTest() throws Exception {
797 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
798 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
799 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
800 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
802 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
803 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
804 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
806 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
808 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
810 assocaiteInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
812 CapReqDef capReqDefAfterAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
813 List<CapabilityDefinition> capabilitiesAfterAssociate = capReqDefAfterAssociate.getCapabilities().get(CAPABILITY_TYPE);
814 List<RequirementDefinition> requirementsAfterAssoicate = capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
815 AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate, requirementsAfterAssoicate);
816 AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate, capabilitiesAfterAssociate);
818 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
821 // fail - bug DE188994
823 public void associateAfterCheckoutAllInstancesTest() throws Exception {
824 String firstVFUniqueId = resourceDetailsVF_01.getUniqueId();
825 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
826 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
827 String secondVFUniqueId = resourceDetailsVF_02.getUniqueId();
828 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
829 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
831 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
832 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
833 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
835 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
837 changeResourceLifecycleState(resourceDetailsVF_01, sdncDesignerDetails.getUserId(), LifeCycleStatesEnum.CHECKOUT);
838 changeResourceLifecycleState(resourceDetailsVF_02, sdncDesignerDetails.getUserId(), LifeCycleStatesEnum.CHECKOUT);
840 requirementDef.setFromNode(requirementDef.getFromNode().replaceAll(firstVFUniqueId, resourceDetailsVF_01.getUniqueId()));
841 requirementDef.setToNode(requirementDef.getToNode().replaceAll(secondVFUniqueId, resourceDetailsVF_02.getUniqueId()));
843 assocaiteInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
845 CapReqDef capReqDefAfterAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
846 List<CapabilityDefinition> capabilitiesAfterAssociate = capReqDefAfterAssociate.getCapabilities().get(CAPABILITY_TYPE);
847 List<RequirementDefinition> requirementsAfterAssoicate = capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
848 // AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate,
849 // requirementsAfterAssoicate);
850 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
851 // capabilitiesAfterAssociate);
853 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
855 // "messageId": "SVC4116",
856 // "text": "Error: Invalid Content.",
858 // "e9dcea15-ce27-4381-a554-4278973cefb1.d0b3affd-cf92-4626-adfe-961b44103924.vf1001",
859 // "e9dcea15-ce27-4381-a554-4278973cefb1.d0b3affd-cf92-4626-adfe-961b44103924.vf1001",
866 public void associateInstancesByDifferentUsersTest() throws Exception {
867 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
868 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
869 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
870 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
872 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
873 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
874 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
876 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
878 assocaiteInstancesFail(requirementDef, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2), ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
879 assocaiteInstancesFail(requirementDef, ElementFactory.getDefaultUser(UserRoleEnum.TESTER), ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
880 assocaiteInstancesFail(requirementDef, ElementFactory.getDefaultUser(UserRoleEnum.GOVERNOR), ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
881 assocaiteInstancesFail(requirementDef, ElementFactory.getDefaultUser(UserRoleEnum.OPS), ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
882 assocaiteInstancesFail(requirementDef, ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_MANAGER1), ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
884 CapReqDef capReqDefAfterAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
885 List<CapabilityDefinition> capabilitiesAfterAssociate = capReqDefAfterAssociate.getCapabilities().get(CAPABILITY_TYPE);
886 List<RequirementDefinition> requirementsAfterAssoicate = capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
887 AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate, requirementsAfterAssoicate);
888 AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate, capabilitiesAfterAssociate);
890 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
893 private void assocaiteInstancesFail(RequirementCapabilityRelDef requirementDef, User user, ActionStatus actionStatus, int errorCode, List<String> variables) throws IOException, Exception {
894 RestResponse associateInstancesResp = ComponentInstanceRestUtils.associateInstances(requirementDef, user, serviceDetails_01.getUniqueId(), ComponentTypeEnum.SERVICE);
895 checkErrorMessage(actionStatus, variables, errorCode, associateInstancesResp);
898 private void dissoicateInstancesFail(RequirementCapabilityRelDef requirementDef, User user, ActionStatus actionStatus, int errorCode, List<String> variables) throws IOException, Exception {
899 RestResponse dissoicateInstancesResp = ComponentInstanceRestUtils.dissociateInstances(requirementDef, user, serviceDetails_01.getUniqueId(), ComponentTypeEnum.SERVICE);
900 checkErrorMessage(actionStatus, variables, errorCode, dissoicateInstancesResp);
904 public void associateWithMissingServiceUidTest() throws Exception {
905 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
906 serviceDetails_01.setUniqueId("");
907 RestResponse associateInstancesResp = ComponentInstanceRestUtils.associateInstances(requirementDef, sdncDesignerDetails, serviceDetails_01.getUniqueId(), ComponentTypeEnum.SERVICE);
908 assertEquals(404, associateInstancesResp.getErrorCode().intValue());
911 // fail - bug DE191824
913 public void associateNotCompitableReqCapTest() throws Exception {
914 RestResponse createFirstAtomicResourceInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01, sdncDesignerDetails);
915 String reqCompInstName = ResponseParser.getNameFromResponse(createFirstAtomicResourceInstResp);
916 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstAtomicResourceInstResp);
917 RestResponse createSecondAtomicResourceInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_02, sdncDesignerDetails);
918 String capCompInstName = ResponseParser.getNameFromResponse(createSecondAtomicResourceInstResp);
919 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondAtomicResourceInstResp);
921 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
922 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
923 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
925 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
927 List<String> variables = new ArrayList<String>();
928 variables.add(reqCompInstName);
929 variables.add(capCompInstName);
930 variables.add(REQUIREMENT_NAME);
932 assocaiteInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESOURCE_INSTANCE_MATCH_NOT_FOUND, 404, variables);
934 CapReqDef capReqDefAfterAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
935 List<CapabilityDefinition> capabilitiesAfterAssociate = capReqDefAfterAssociate.getCapabilities().get(CAPABILITY_TYPE);
936 List<RequirementDefinition> requirementsAfterAssoicate = capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
937 // AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate,
938 // requirementsAfterAssoicate);
939 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
940 // capabilitiesAfterAssociate);
942 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
944 // {"requestError":{"serviceException":{"messageId":"SVC4119","text":"Error:
945 // No relation found between resource instances '%1' and '%2' for
946 // requirement '%3'.","variables":["CP100 1","VL200 2","host"]}}}>
950 public void associateInstancesInTwoServiceVersionsTest() throws Exception {
951 String oldServiceUniqueId = serviceDetails_01.getUniqueId();
952 RestResponse createFirstVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
953 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
954 RestResponse createSecondVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
955 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
957 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
958 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
959 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
961 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
962 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
963 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
965 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
966 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKOUT);
967 String secondServiceUniqueId = serviceDetails_01.getUniqueId();
969 serviceDetails_01.setUniqueId(oldServiceUniqueId);
970 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
972 updateCapabilitiesOwnerId(oldServiceUniqueId, capListBeforeAssociate, secondServiceUniqueId);
973 updateExpectedReqCapAfterChangeLifecycleState(oldServiceUniqueId, secondServiceUniqueId);
974 CapReqDef capReqDefAfterAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
975 List<CapabilityDefinition> capListAfterAssociate = capReqDefAfterAssociate.getCapabilities().get(CAPABILITY_TYPE);
976 List<RequirementDefinition> reqListAfterAssociate = capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
977 // AssertJUnit.assertEquals("Check requirement", null,
978 // reqListAfterAssociate);
979 // AssertJUnit.assertEquals("Check capabilities",
980 // capListBeforeAssociate, capListAfterAssociate);
981 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
983 RestResponse createThirdVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
984 String reqSecondCompInstId = ResponseParser.getUniqueIdFromResponse(createThirdVFInstResp);
986 CapReqDef capReqDefBeforeSeconderyAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
987 List<CapabilityDefinition> capListBeforeSeconderyAssociate = capReqDefBeforeSeconderyAssociate.getCapabilities().get(CAPABILITY_TYPE);
988 List<RequirementDefinition> reqListBeforeSeconderyAssociate = capReqDefBeforeSeconderyAssociate.getRequirements().get(CAPABILITY_TYPE);
990 capCompInstId = capCompInstId.replaceAll(oldServiceUniqueId, secondServiceUniqueId);
991 RequirementCapabilityRelDef secondRequirementDef = getReqCapRelation(reqSecondCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeSeconderyAssociate, reqListBeforeSeconderyAssociate);
992 associateComponentInstancesForService(secondRequirementDef, serviceDetails_01, sdncDesignerDetails);
994 CapReqDef capReqDefAfterSeconderyAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
995 List<CapabilityDefinition> capListAfterSeconderyAssociate = capReqDefAfterSeconderyAssociate.getCapabilities().get(CAPABILITY_TYPE);
996 List<RequirementDefinition> reqListAfterSeconderyAssociate = capReqDefAfterSeconderyAssociate.getRequirements().get(CAPABILITY_TYPE);
997 // AssertJUnit.assertEquals("Check requirement", null,
998 // reqListAfterSeconderyAssociate);
999 // AssertJUnit.assertEquals("Check capabilities",
1000 // capListBeforeAssociate, capListAfterSeconderyAssociate);
1001 getComponentAndValidateRIs(serviceDetails_01, 3, 2);
1004 private void updateCapabilitiesOwnerId(String oldUniqueId, List<CapabilityDefinition> capList, String newUniqueId) {
1005 serviceDetails_01.setUniqueId(newUniqueId);
1006 for (CapabilityDefinition cap : capList) {
1007 String oldOwnerId = cap.getOwnerId();
1008 String newOwnerId = oldOwnerId.replaceAll(oldUniqueId, newUniqueId);
1009 cap.setOwnerId(newOwnerId);
1014 public void dissociateRelationNotFoundTest() throws Exception {
1015 createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1016 String reqCompInstId = "1234";
1017 createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1018 String capCompInstId = "4567";
1020 CapReqDef capReqDef = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1021 List<CapabilityDefinition> capList = capReqDef.getCapabilities().get(CAPABILITY_TYPE);
1022 List<RequirementDefinition> reqList = capReqDef.getRequirements().get(CAPABILITY_TYPE);
1024 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capList, reqList);
1026 List<String> variables = new ArrayList<String>();
1027 variables.add(reqCompInstId);
1028 variables.add(capCompInstId);
1029 variables.add(REQUIREMENT_NAME);
1030 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESOURCE_INSTANCE_RELATION_NOT_FOUND, 404, variables);
1032 CapReqDef capReqDefAfterDissociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1033 List<CapabilityDefinition> capListAfterDissociate = capReqDefAfterDissociate.getCapabilities().get(CAPABILITY_TYPE);
1034 List<RequirementDefinition> reqListAfterDissociate = capReqDefAfterDissociate.getRequirements().get(CAPABILITY_TYPE);
1036 AssertJUnit.assertEquals("Check requirement", 1, reqListAfterDissociate.size());
1037 AssertJUnit.assertEquals("Check requirement", reqList, reqListAfterDissociate);
1038 AssertJUnit.assertEquals("Check capabilities", capList, capListAfterDissociate);
1040 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
1045 public void dissociateRelationInServiceNotFoundTest() throws Exception {
1046 String uniqueId = "1234";
1047 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1048 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1049 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1050 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1052 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1053 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
1054 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
1056 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1058 serviceDetails_01.setUniqueId(uniqueId);
1059 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.SERVICE_NOT_FOUND, 404, new ArrayList<String>(Arrays.asList("")));
1064 public void dissoicateRelationWhileInstanceNotFound() throws Exception {
1065 String capUniqueId = "1234";
1067 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1068 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1069 createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1070 String capCompInstId = capUniqueId;
1072 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1073 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
1074 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
1076 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1078 List<String> variables = new ArrayList<String>();
1079 variables.add(reqCompInstId);
1080 variables.add(capCompInstId);
1081 variables.add(REQUIREMENT_NAME);
1082 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESOURCE_INSTANCE_RELATION_NOT_FOUND, 404, variables);
1084 CapReqDef capReqDefAfterDissociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1085 List<CapabilityDefinition> capListAfterDissociate = capReqDefAfterDissociate.getCapabilities().get(CAPABILITY_TYPE);
1086 List<RequirementDefinition> reqListAfterDissociate = capReqDefAfterDissociate.getRequirements().get(CAPABILITY_TYPE);
1087 AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate, reqListAfterDissociate);
1088 AssertJUnit.assertEquals("Check capabilities", capListBeforeAssociate, capListAfterDissociate);
1090 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
1094 public void dissociateWhileServiceCheckedinTest() throws Exception {
1095 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
1096 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
1097 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
1101 public void dissoicateWithEmptyUserIdHeaderTest() throws Exception {
1102 sdncDesignerDetails.setUserId("");
1103 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
1104 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESTRICTED_OPERATION, 409, new ArrayList<String>());
1108 public void dissociateWithMissingUidOfServiceTest() throws Exception {
1109 serviceDetails_01.setUniqueId("");
1110 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
1111 RestResponse dissociateResp = ComponentInstanceRestUtils.dissociateInstances(requirementDef, sdncDesignerDetails, serviceDetails_01.getUniqueId(), ComponentTypeEnum.SERVICE);
1112 assertEquals(404, dissociateResp.getErrorCode().intValue());
1116 public void relationDeletedAfterDeletingResourceInstanceTest() throws Exception {
1117 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1118 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1119 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1120 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1122 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1123 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
1124 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
1126 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1128 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1129 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
1131 RestResponse deleteVFInstance = deleteVFInstance(reqCompInstId, serviceDetails_01, sdncDesignerDetails);
1132 ComponentInstanceRestUtils.checkDeleteResponse(deleteVFInstance);
1133 getComponentAndValidateRIs(serviceDetails_01, 1, 0);
1137 public void relationNotFoundInSecondVersionAfterDissociateTest() throws Exception {
1138 String oldContainerUniqueIdToReplace = serviceDetails_01.getUniqueId();
1139 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1140 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1141 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1142 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1144 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1145 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
1146 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
1148 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1150 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1151 dissociateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1153 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
1154 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKOUT);
1156 updateExpectedReqCapAfterChangeLifecycleState(oldContainerUniqueIdToReplace, serviceDetails_01.getUniqueId());
1157 getComponentAndValidateRIs(serviceDetails_01, 2, 0);
1161 public void dissociateOnceAgainTest() throws Exception {
1162 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1163 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1164 String reqCompInsName = ResponseParser.convertComponentInstanceResponseToJavaObject(createFirstVFInstResp.getResponse()).getName();
1165 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1166 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1167 String capCompInstName = ResponseParser.convertComponentInstanceResponseToJavaObject(createSecondVFInstResp.getResponse()).getName();
1169 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1170 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
1171 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
1173 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1175 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1176 dissociateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1178 List<String> variables = new ArrayList<String>();
1179 variables.add(reqCompInsName);
1180 variables.add(capCompInstName);
1181 variables.add(REQUIREMENT_NAME);
1183 dissoicateInstancesFail(requirementDef, sdncDesignerDetails, ActionStatus.RESOURCE_INSTANCE_RELATION_NOT_FOUND, 404, variables);
1186 // fail - bug : DE191707
1188 public void associateTwoRelations_CheckinCheckout_DissoicateOneRelationInSecondVersion() throws Exception {
1189 String oldContainerUniqueIdToReplace = serviceDetails_01.getUniqueId();
1190 RestResponse createFirstVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1191 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createFirstVFInstResp);
1192 RestResponse createSecondVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1193 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createSecondVFInstResp);
1194 RestResponse createThirdVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1195 String secondReqCompInstId = ResponseParser.getUniqueIdFromResponse(createThirdVFInstResp);
1197 CapReqDef capReqDefBeforeAssociate = ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1198 List<CapabilityDefinition> capListBeforeAssociate = capReqDefBeforeAssociate.getCapabilities().get(CAPABILITY_TYPE);
1199 List<RequirementDefinition> reqListBeforeAssociate = capReqDefBeforeAssociate.getRequirements().get(CAPABILITY_TYPE);
1201 RequirementCapabilityRelDef requirementDefFirstRelation = getReqCapRelation(reqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1202 RequirementCapabilityRelDef requirementDefSecondRelation = getReqCapRelation(secondReqCompInstId, capCompInstId, CAPABILITY_TYPE, REQUIREMENT_NAME, capListBeforeAssociate, reqListBeforeAssociate);
1204 associateComponentInstancesForService(requirementDefFirstRelation, serviceDetails_01, sdncDesignerDetails);
1205 associateComponentInstancesForService(requirementDefSecondRelation, serviceDetails_01, sdncDesignerDetails);
1206 getComponentAndValidateRIs(serviceDetails_01, 3, 2);
1208 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
1209 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKOUT);
1210 String newContainerUniqueId = serviceDetails_01.getUniqueId();
1212 // check if dissoicate of old relation is possibile
1213 // dissoicateInstancesFail(requirementDefFirstRelation,
1214 // sdncDesignerDetails, actionStatus, errorCode, variables);
1215 getComponentAndValidateRIs(serviceDetails_01, 3, 2);
1217 requirementDefFirstRelation.setFromNode(reqCompInstId.replaceAll(oldContainerUniqueIdToReplace, newContainerUniqueId));
1218 requirementDefFirstRelation.setToNode(reqCompInstId.replaceAll(oldContainerUniqueIdToReplace, newContainerUniqueId));
1220 dissociateComponentInstancesForService(requirementDefFirstRelation, serviceDetails_01, sdncDesignerDetails);
1222 // updateCapabilitiesOwnerId(oldContainerUniqueIdToReplace,
1223 // capListBeforeAssociate, newContainerUniqueId);
1224 // CapReqDef capReqDefAfterAssociate =
1225 // ComponentRestUtils.getAndParseComponentRequirmentsCapabilities(sdncDesignerDetails,
1226 // serviceDetails_01);
1227 // List<CapabilityDefinition> capListAfterAssociate =
1228 // capReqDefAfterAssociate.getCapabilities().get(CAPABILITY_TYPE);
1229 // List<RequirementDefinition> reqListAfterAssociate =
1230 // capReqDefAfterAssociate.getRequirements().get(CAPABILITY_TYPE);
1231 // AssertJUnit.assertEquals("Check requirement", reqListBeforeAssociate,
1232 // reqListAfterAssociate);
1233 // AssertJUnit.assertEquals("Check requirement", capListBeforeAssociate,
1234 // capListAfterAssociate);
1235 updateExpectedReqCapAfterChangeLifecycleState(oldContainerUniqueIdToReplace, serviceDetails_01.getUniqueId());
1236 getComponentAndValidateRIs(serviceDetails_01, 3, 1);
1240 public void createResourceInstancesAndUpdatedServiceMetadataTest() throws Exception, Exception {
1241 serviceDetails_02.setUniqueId(serviceDetails_01.getUniqueId());
1242 createTwoCheckedinVFInstances();
1243 LifecycleRestUtils.changeResourceState(resourceDetailsCP_01, sdncDesignerDetails, "0.1", LifeCycleStatesEnum.CHECKIN);
1244 createVFInstanceAndAtomicResourceInstanceWithoutCheckin(resourceDetailsVF_01, resourceDetailsCP_01, sdncDesignerDetails);
1245 RestResponse updateServiceResp = ServiceRestUtils.updateService(serviceDetails_02, sdncDesignerDetails);
1246 ServiceRestUtils.checkSuccess(updateServiceResp);
1247 getComponentAndValidateRIs(serviceDetails_01, 4, 0);
1250 @Test(enabled = false)
1251 public void forAcceptanceUserStory() throws Exception {
1252 RestResponse createVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1253 ResourceRestUtils.checkCreateResponse(createVFInstResp);
1254 String reqCompInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
1255 createVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1256 ResourceRestUtils.checkCreateResponse(createVFInstResp);
1257 String capCompInstId = ResponseParser.getUniqueIdFromResponse(createVFInstResp);
1259 String capType = CAPABILITY_TYPE;
1260 String reqName = REQUIREMENT_NAME;
1262 RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1263 ResourceRestUtils.checkSuccess(getResourceResponse);
1264 CapReqDef capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
1265 List<CapabilityDefinition> capList = capReqDef.getCapabilities().get(capType);
1266 List<RequirementDefinition> reqList = capReqDef.getRequirements().get(capType);
1268 RequirementCapabilityRelDef requirementDef = getReqCapRelation(reqCompInstId, capCompInstId, capType, reqName, capList, reqList);
1270 associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
1271 getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
1272 capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
1273 List<RequirementDefinition> list = capReqDef.getRequirements().get(capType);
1274 AssertJUnit.assertEquals("Check requirement", null, list);
1276 serviceDetails_02.setUniqueId(serviceDetails_01.getUniqueId());
1277 RestResponse updateServiceResp = ServiceRestUtils.updateService(serviceDetails_02, sdncDesignerDetails);
1278 ServiceRestUtils.checkSuccess(updateServiceResp);
1279 changeServiceLifecycleState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CHECKIN);
1280 getComponentAndValidateRIs(serviceDetails_01, 2, 1);
1284 public void testUnsatisfiedCpReqInService() throws Exception {
1286 // Certify all the needed atomic resources
1287 RestResponse response = LifecycleRestUtils.certifyResource(resourceDetailsCP_01);
1288 ResourceRestUtils.checkSuccess(response);
1290 ArtifactReqDetails heatArtifactDetails = ElementFactory.getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
1291 response = ArtifactRestUtils.addInformationalArtifactToResource(heatArtifactDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId());
1292 ResourceRestUtils.checkSuccess(response);
1293 response = LifecycleRestUtils.certifyResource(resourceDetailsVF_02);
1294 ResourceRestUtils.checkSuccess(response);
1295 capOwnerId = getUniqueIdOfFirstInstanceFromResponse(response);
1297 RestResponse createAtomicResourceInstance = createVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
1298 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1299 String vfCompInstId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
1301 createAtomicResourceInstance = createAtomicInstanceForService(serviceDetails_01, resourceDetailsCP_01, sdncDesignerDetails);
1302 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1303 String compInstName = ResponseParser.getNameFromResponse(createAtomicResourceInstance);
1304 String cpCompInstId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
1306 RestResponse submitForTesting = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CERTIFICATIONREQUEST);
1307 String[] variables = new String[] { serviceDetails_01.getName(), "service", "CP (Connection Point)", compInstName, "requirement", "tosca.capabilities.network.Bindable", "fulfilled" };
1308 BaseValidationUtils.checkErrorResponse(submitForTesting, ActionStatus.REQ_CAP_NOT_SATISFIED_BEFORE_CERTIFICATION, variables);
1310 fulfillCpRequirement(serviceDetails_01, cpCompInstId, vfCompInstId, capOwnerId, sdncDesignerDetails, ComponentTypeEnum.SERVICE);
1312 submitForTesting = LifecycleRestUtils.changeServiceState(serviceDetails_01, sdncDesignerDetails, LifeCycleStatesEnum.CERTIFICATIONREQUEST);
1313 BaseValidationUtils.checkSuccess(submitForTesting);
1317 public void getVFInstanceSuccessfullyTest() throws Exception {
1318 RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1319 ResourceRestUtils.checkCreateResponse(createVFInstResp);
1320 System.out.println("instance successfuly created");
1321 RestResponse getInstancesResponce = ComponentInstanceRestUtils.getComponentInstances(ComponentTypeEnum.SERVICE, serviceDetails_01.getUniqueId(), sdncDesignerDetails);
1323 for (int i = 0; i < 1500; i++) {
1324 createVFInstResp = createVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
1325 ResourceRestUtils.checkCreateResponse(createVFInstResp);
1326 System.out.println("instance " + i + "successfuly created");
1329 getInstancesResponce = ComponentInstanceRestUtils.getComponentInstances(ComponentTypeEnum.SERVICE, serviceDetails_01.getUniqueId(), sdncDesignerDetails);
1331 BaseValidationUtils.checkSuccess(getInstancesResponce);
1335 private String getUniqueIdOfFirstInstanceFromResponse(RestResponse response) {
1337 JSONArray value = ResponseParser.getListFromJson(response, "componentInstances");
1338 return ResponseParser.getValueFromJsonResponse(value.get(0).toString(), "uniqueId");
1339 } catch (Exception e) {