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.sanity;
23 import static org.testng.AssertJUnit.assertTrue;
25 import java.util.ArrayList;
26 import java.util.List;
28 import org.junit.Rule;
29 import org.junit.rules.TestName;
30 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
31 import org.openecomp.sdc.be.model.ComponentInstance;
32 import org.openecomp.sdc.be.model.Resource;
33 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
34 import org.openecomp.sdc.ci.tests.datatypes.ComponentInstanceReqDetails;
35 import org.openecomp.sdc.ci.tests.datatypes.enums.AssocType;
36 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
37 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
38 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
39 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
40 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
41 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
42 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
43 import org.openecomp.sdc.ci.tests.utils.rest.ComponentInstanceRestUtils;
44 import org.openecomp.sdc.ci.tests.utils.rest.ProductRestUtils;
45 import org.testng.annotations.Test;
47 public class MultipleResourceUpdate extends ComponentBaseTest {
50 public static TestName name = new TestName();
52 public MultipleResourceUpdate() {
53 super(name, MultipleResourceUpdate.class.getName());
57 public void simpleScenario() throws Exception {
59 // Creating VF and Resource instances
60 Resource vf = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left()
62 Resource cp1 = AtomicOperationUtils
63 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.CP, NormativeTypesEnum.PORT,
64 ResourceCategoryEnum.NETWORK_CONNECTIVITY_CON_POINT, UserRoleEnum.DESIGNER, true)
66 Resource cp2 = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.CP, UserRoleEnum.DESIGNER, true)
68 Resource vl = AtomicOperationUtils
69 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VL, NormativeTypesEnum.NETWORK,
70 ResourceCategoryEnum.NETWORK_CONNECTIVITY_VIRTUAL_LINK, UserRoleEnum.DESIGNER, true)
73 vf.getCreatorUserId();
76 AtomicOperationUtils.changeComponentState(cp1, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true);
77 AtomicOperationUtils.changeComponentState(cp2, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true);
78 AtomicOperationUtils.changeComponentState(vl, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true);
80 // CheckIn all other except VF
81 ComponentInstance instanceCP1 = AtomicOperationUtils
82 .addComponentInstanceToComponentContainer(cp1, vf, UserRoleEnum.DESIGNER, true).left().value();
83 ComponentInstance instanceVL = AtomicOperationUtils
84 .addComponentInstanceToComponentContainer(vl, vf, UserRoleEnum.DESIGNER, true).left().value();
85 ComponentInstance instanceCP2 = AtomicOperationUtils
86 .addComponentInstanceToComponentContainer(cp2, vf, UserRoleEnum.DESIGNER, true).left().value();
88 vf = (Resource) AtomicOperationUtils.getCompoenntObject(vf, UserRoleEnum.DESIGNER);
90 // Create Vertex(Link/Associate 2 Resource Instances on Canvas)
91 AtomicOperationUtils.associate2ResourceInstances(vf, instanceCP1, instanceVL, AssocType.LINKABLE.getAssocType(),
92 UserRoleEnum.DESIGNER, true);
94 List<ComponentInstanceReqDetails> componentInstanceReqDetailsList = new ArrayList<>();
95 componentInstanceReqDetailsList.add(new ComponentInstanceReqDetails(instanceCP1));
96 componentInstanceReqDetailsList.add(new ComponentInstanceReqDetails(instanceCP2));
97 componentInstanceReqDetailsList.add(new ComponentInstanceReqDetails(instanceVL));
99 ComponentInstanceReqDetails compInstDet = componentInstanceReqDetailsList.get(0);
100 compInstDet.setPosX("150");
101 compInstDet.setPosY("150");
102 compInstDet = componentInstanceReqDetailsList.get(1);
103 compInstDet.setPosX("400");
104 compInstDet.setPosY("150");
105 compInstDet = componentInstanceReqDetailsList.get(2);
106 compInstDet.setPosX("150");
107 compInstDet.setPosY("300");
109 RestResponse response = ComponentInstanceRestUtils.updateMultipleComponentInstance(
110 componentInstanceReqDetailsList, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), vf.getUniqueId(),
111 vf.getComponentType());
112 assertTrue("response code is not 200, returned: " + response.getErrorCode(),
113 response.getErrorCode() == ProductRestUtils.STATUS_CODE_SUCCESS);
115 compInstDet = componentInstanceReqDetailsList.get(0);
116 compInstDet.setPosX("350");
117 compInstDet.setPosY("350");
118 compInstDet = componentInstanceReqDetailsList.get(1);
119 compInstDet.setPosX("600");
120 compInstDet.setPosY("350");
121 compInstDet = componentInstanceReqDetailsList.get(2);
122 compInstDet.setPosX("350");
123 compInstDet.setPosY("500");
125 response = ComponentInstanceRestUtils.updateMultipleComponentInstance(componentInstanceReqDetailsList,
126 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), vf.getUniqueId(), vf.getComponentType());
127 assertTrue("response code is not 200, returned: " + response.getErrorCode(),
128 response.getErrorCode() == ProductRestUtils.STATUS_CODE_SUCCESS);