re base code
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / preRequisites / ComplexResourceBaseTest.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.preRequisites;
22
23 import org.junit.Rule;
24 import org.junit.rules.TestName;
25 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
26 import org.openecomp.sdc.be.model.Resource;
27 import org.openecomp.sdc.be.model.User;
28 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
29 import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
30 import org.openecomp.sdc.ci.tests.datatypes.ComponentInstanceReqDetails;
31 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
32 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
33 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
34 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
35 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
36 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
37 import org.openecomp.sdc.ci.tests.execute.lifecycle.LCSbaseTest;
38 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
39 import org.openecomp.sdc.ci.tests.utils.rest.*;
40 import org.testng.annotations.BeforeMethod;
41
42 import java.io.IOException;
43
44 import static org.testng.AssertJUnit.*;
45
46 public class ComplexResourceBaseTest extends ComponentBaseTest {
47
48         protected ServiceReqDetails serviceDetails;
49         protected ResourceReqDetails resourceDetailsVFC;
50         protected ResourceReqDetails resourceDetailsVL;
51         protected ResourceReqDetails resourceDetailsVF;
52         protected ResourceReqDetails resourceDetailsCP;
53         protected ComponentInstanceReqDetails resourceInstanceReqDetailsVF;
54         protected ComponentInstanceReqDetails resourceInstanceReqDetailsVFC;
55         protected ComponentInstanceReqDetails resourceInstanceReqDetailsVL;
56         protected ComponentInstanceReqDetails resourceInstanceReqDetailsCP;
57         protected User sdncDesignerDetails1;
58         protected User sdncTesterDeatails1;
59         protected User sdncAdminDetails1;
60         protected ArtifactReqDetails heatArtifactDetails;
61
62         protected ArtifactReqDetails defaultArtifactDetails;
63         protected int maxLength = 50;
64         protected Resource resourceVF = null;
65
66         @Rule
67         public static TestName name = new TestName();
68
69         public ComplexResourceBaseTest() {
70                 super(name, ComplexResourceBaseTest.class.getName());
71         }
72
73         @BeforeMethod
74         public void before() throws Exception {
75
76                 initializeMembers();
77
78                 createComponents();
79
80         }
81
82         public void initializeMembers() throws IOException, Exception {
83
84                 serviceDetails = ElementFactory.getDefaultService();
85                 resourceDetailsVFC = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VFC, "resourceVFC");
86                 resourceDetailsVF = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, "resourceVF3");
87                 resourceDetailsVL = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VL, "resourceVL");
88                 resourceDetailsCP = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.CP, "resourceCP");
89                 sdncDesignerDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
90                 sdncTesterDeatails1 = ElementFactory.getDefaultUser(UserRoleEnum.TESTER);
91                 sdncAdminDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
92                 heatArtifactDetails = ElementFactory.getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
93
94         }
95
96         protected void createComponents() throws Exception {
97
98                 RestResponse response = ServiceRestUtils.createService(serviceDetails, sdncDesignerDetails1);
99                 assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
100                 assertNotNull("service uniqueId is null:", serviceDetails.getUniqueId());
101
102                 response = ResourceRestUtils.createResource(resourceDetailsVFC, sdncDesignerDetails1);
103                 assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
104                 assertNotNull("resource uniqueId is null:", resourceDetailsVFC.getUniqueId());
105                 response = LifecycleRestUtils.changeResourceState(resourceDetailsVFC, sdncDesignerDetails1,
106                                 resourceDetailsVFC.getVersion(), LifeCycleStatesEnum.CHECKIN);
107                 assertTrue("change LS state to CHECKIN, returned status:" + response.getErrorCode(),
108                                 response.getErrorCode() == 200);
109
110                 response = ResourceRestUtils.createResource(resourceDetailsVF, sdncDesignerDetails1);
111                 assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
112                 assertNotNull("resource uniqueId is null:", resourceDetailsVF.getUniqueId());
113
114                 response = ResourceRestUtils.createResource(resourceDetailsCP, sdncDesignerDetails1);
115                 assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
116                 assertNotNull("resource uniqueId is null:", resourceDetailsCP.getUniqueId());
117                 response = LifecycleRestUtils.changeResourceState(resourceDetailsCP, sdncDesignerDetails1,
118                                 resourceDetailsCP.getVersion(), LifeCycleStatesEnum.CHECKIN);
119                 assertTrue("change LS state to CHECKIN, returned status:" + response.getErrorCode(),
120                                 response.getErrorCode() == 200);
121
122                 response = ResourceRestUtils.createResource(resourceDetailsVL, sdncDesignerDetails1);
123                 assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
124                 assertNotNull("resource uniqueId is null:", resourceDetailsVL.getUniqueId());
125                 response = LifecycleRestUtils.changeResourceState(resourceDetailsVL, sdncDesignerDetails1,
126                                 resourceDetailsVL.getVersion(), LifeCycleStatesEnum.CHECKIN);
127                 assertTrue("change LS state to CHECKIN, returned status:" + response.getErrorCode(),
128                                 response.getErrorCode() == 200);
129
130                 resourceInstanceReqDetailsVFC = ElementFactory.getDefaultComponentInstance("VFC", resourceDetailsVFC);
131                 resourceInstanceReqDetailsVF = ElementFactory.getDefaultComponentInstance("VF", resourceDetailsVF);
132                 resourceInstanceReqDetailsVL = ElementFactory.getDefaultComponentInstance("VL", resourceDetailsVL);
133                 resourceInstanceReqDetailsCP = ElementFactory.getDefaultComponentInstance("CP", resourceDetailsCP);
134
135         }
136
137         protected void createVFWithCertifiedResourceInstance(ResourceReqDetails resourceDetails,
138                         ComponentInstanceReqDetails resourceInstanceReqDetails) throws Exception {
139
140                 RestResponse response = LifecycleRestUtils.changeResourceState(resourceDetails, sdncDesignerDetails1,
141                                 resourceDetails.getVersion(), LifeCycleStatesEnum.CHECKOUT);
142                 assertEquals("Check response code after CHECKOUT", 200, response.getErrorCode().intValue());
143
144                 // add heat artifact to resource and certify
145                 ArtifactReqDetails heatArtifactDetails = ElementFactory
146                                 .getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
147                 response = ArtifactRestUtils.addInformationalArtifactToResource(heatArtifactDetails, sdncDesignerDetails1,
148                                 resourceDetails.getUniqueId());
149                 assertTrue("add HEAT artifact to resource request returned status:" + response.getErrorCode(),
150                                 response.getErrorCode() == 200);
151                 response = LCSbaseTest.certifyResource(resourceDetails, sdncDesignerDetails1);
152                 assertEquals("Check response code after CERTIFY request", 200, response.getErrorCode().intValue());
153
154                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
155
156                 resourceInstanceReqDetails.setComponentUid(resourceDetails.getUniqueId());
157                 response = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetails, sdncDesignerDetails1,
158                                 resourceVF);
159                 assertEquals("Check response code after create RI", 201, response.getErrorCode().intValue());
160
161                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
162         }
163
164         protected Resource convertResourceGetResponseToJavaObject(ResourceReqDetails resourceDetails) throws IOException {
165                 RestResponse response = ResourceRestUtils.getResource(resourceDetails, sdncDesignerDetails1);
166                 assertEquals("Check response code after get resource", 200, response.getErrorCode().intValue());
167                 return ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
168         }
169
170 }