[SDC-29] rebase continue work to align source
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / sanity / MultipleResourceUpdate.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.openecomp.sdc.ci.tests.sanity;
22
23 import java.util.ArrayList;
24 import java.util.List;
25 import java.util.Map;
26
27 import org.junit.Rule;
28 import org.junit.rules.TestName;
29 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
30 import org.openecomp.sdc.be.model.Component;
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;
46 import static org.testng.AssertJUnit.assertTrue;
47
48 public class MultipleResourceUpdate extends ComponentBaseTest {
49
50         @Rule
51         public static TestName name = new TestName();
52
53         public MultipleResourceUpdate() {
54                 super(name, MultipleResourceUpdate.class.getName());
55         }
56
57         @Test
58         public void simpleScenario() throws Exception {
59
60                 // Creating VF and Resource instances
61                 Resource vf = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left()
62                                 .value();
63                 Resource cp1 = AtomicOperationUtils
64                                 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.CP, NormativeTypesEnum.PORT,
65                                                 ResourceCategoryEnum.NETWORK_CONNECTIVITY_CON_POINT, UserRoleEnum.DESIGNER, true)
66                                 .left().value();
67                 Resource cp2 = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.CP, UserRoleEnum.DESIGNER, true)
68                                 .left().value();
69                 Resource vl = AtomicOperationUtils
70                                 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VL, NormativeTypesEnum.NETWORK,
71                                                 ResourceCategoryEnum.NETWORK_CONNECTIVITY_VIRTUAL_LINK, UserRoleEnum.DESIGNER, true)
72                                 .left().value();
73
74                 vf.getCreatorUserId();
75
76                 // Check In Resources
77                 AtomicOperationUtils.changeComponentState(cp1, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true);
78                 AtomicOperationUtils.changeComponentState(cp2, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true);
79                 AtomicOperationUtils.changeComponentState(vl, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true);
80
81                 // CheckIn all other except VF
82                 ComponentInstance instanceCP1 = AtomicOperationUtils
83                                 .addComponentInstanceToComponentContainer(cp1, vf, UserRoleEnum.DESIGNER, true).left().value();
84                 ComponentInstance instanceVL = AtomicOperationUtils
85                                 .addComponentInstanceToComponentContainer(vl, vf, UserRoleEnum.DESIGNER, true).left().value();
86                 ComponentInstance instanceCP2 = AtomicOperationUtils
87                                 .addComponentInstanceToComponentContainer(cp2, vf, UserRoleEnum.DESIGNER, true).left().value();
88
89                 vf = (Resource) AtomicOperationUtils.getCompoenntObject(vf, UserRoleEnum.DESIGNER);
90
91                 // Create Vertex(Link/Associate 2 Resource Instances on Canvas)
92                 AtomicOperationUtils.associate2ResourceInstances(vf, instanceCP1, instanceVL, AssocType.LINKABLE.getAssocType(),
93                                 UserRoleEnum.DESIGNER, true);
94
95                 List<ComponentInstanceReqDetails> componentInstanceReqDetailsList = new ArrayList<>();
96                 componentInstanceReqDetailsList.add(new ComponentInstanceReqDetails(instanceCP1));
97                 componentInstanceReqDetailsList.add(new ComponentInstanceReqDetails(instanceCP2));
98                 componentInstanceReqDetailsList.add(new ComponentInstanceReqDetails(instanceVL));
99
100                 ComponentInstanceReqDetails compInstDet = componentInstanceReqDetailsList.get(0);
101                 compInstDet.setPosX("150");
102                 compInstDet.setPosY("150");
103                 compInstDet = componentInstanceReqDetailsList.get(1);
104                 compInstDet.setPosX("400");
105                 compInstDet.setPosY("150");
106                 compInstDet = componentInstanceReqDetailsList.get(2);
107                 compInstDet.setPosX("150");
108                 compInstDet.setPosY("300");
109
110                 RestResponse response = ComponentInstanceRestUtils.updateMultipleComponentInstance(
111                                 componentInstanceReqDetailsList, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), vf.getUniqueId(),
112                                 vf.getComponentType());
113                 assertTrue("response code is not 200, returned: " + response.getErrorCode(),
114                                 response.getErrorCode() == ProductRestUtils.STATUS_CODE_SUCCESS);
115
116                 compInstDet = componentInstanceReqDetailsList.get(0);
117                 compInstDet.setPosX("350");
118                 compInstDet.setPosY("350");
119                 compInstDet = componentInstanceReqDetailsList.get(1);
120                 compInstDet.setPosX("600");
121                 compInstDet.setPosY("350");
122                 compInstDet = componentInstanceReqDetailsList.get(2);
123                 compInstDet.setPosX("350");
124                 compInstDet.setPosY("500");
125
126                 response = ComponentInstanceRestUtils.updateMultipleComponentInstance(componentInstanceReqDetailsList,
127                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), vf.getUniqueId(), vf.getComponentType());
128                 assertTrue("response code is not 200, returned: " + response.getErrorCode(),
129                                 response.getErrorCode() == ProductRestUtils.STATUS_CODE_SUCCESS);
130         }
131 }