Fix for radio buttons
[sdc.git] / asdc-tests / src / main / java / org / openecomp / sdc / ci / tests / execute / resource / VFResourceInstanceNameCRUD.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.execute.resource;
22
23 import static org.testng.AssertJUnit.assertEquals;
24 import static org.testng.AssertJUnit.assertTrue;
25
26 import java.io.IOException;
27 import java.util.ArrayList;
28 import java.util.Arrays;
29 import java.util.List;
30
31 import org.junit.Rule;
32 import org.junit.rules.TestName;
33 import org.openecomp.sdc.be.dao.api.ActionStatus;
34 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
35 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
36 import org.openecomp.sdc.be.model.ComponentInstance;
37 import org.openecomp.sdc.be.model.Resource;
38 import org.openecomp.sdc.be.model.User;
39 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
40 import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
41 import org.openecomp.sdc.ci.tests.datatypes.ComponentInstanceReqDetails;
42 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
43 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
44 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
45 import org.openecomp.sdc.ci.tests.datatypes.enums.ErrorInfo;
46 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
47 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
48 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
49 import org.openecomp.sdc.ci.tests.utils.Utils;
50 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
51 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
52 import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
53 import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
54 import org.openecomp.sdc.ci.tests.utils.rest.ComponentInstanceRestUtils;
55 import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
56 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
57 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
58 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
59 import org.testng.annotations.BeforeMethod;
60 import org.testng.annotations.Test;
61
62 import com.google.gson.Gson;
63
64 import fj.data.Either;
65
66 public class VFResourceInstanceNameCRUD extends ComponentBaseTest {
67
68         protected static ServiceReqDetails serviceDetails;
69         protected static ResourceReqDetails resourceDetailsVFC;
70         protected static ResourceReqDetails resourceDetailsVL;
71         protected static ResourceReqDetails resourceDetailsVF;
72         protected static ResourceReqDetails resourceDetailsCP;
73         protected static ComponentInstanceReqDetails resourceInstanceReqDetailsVF;
74         protected static ComponentInstanceReqDetails resourceInstanceReqDetailsVFC;
75         protected static ComponentInstanceReqDetails resourceInstanceReqDetailsVL;
76         protected static ComponentInstanceReqDetails resourceInstanceReqDetailsCP;
77         protected static User sdncDesignerDetails1;
78         protected static User sdncTesterDeatails1;
79         protected static User sdncAdminDetails1;
80         protected static ArtifactReqDetails heatArtifactDetails;
81         protected static ArtifactReqDetails defaultArtifactDetails;
82         protected static int maxLength = 50;
83         protected static Resource resourceVF = null;
84
85         @Rule
86         public static TestName name = new TestName();
87
88         public VFResourceInstanceNameCRUD() {
89                 super(name, VFResourceInstanceNameCRUD.class.getName());
90         }
91
92         @BeforeMethod
93
94         public void init() throws Exception {
95
96                 // serviceDetails = ElementFactory.getDefaultService();
97                 // resourceDetailsVFC =
98                 // ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VFC.toString(),
99                 // "resourceVFC");
100                 // resourceDetailsVF =
101                 // ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF.toString(),
102                 // "resourceVF3");
103                 // resourceDetailsVL =
104                 // ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VL.toString(),
105                 // "resourceVL");
106                 // resourceDetailsCP =
107                 // ElementFactory.getDefaultResourceByType(ResourceTypeEnum.CP.toString(),
108                 // "resourceCP");
109                 sdncDesignerDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
110                 sdncTesterDeatails1 = ElementFactory.getDefaultUser(UserRoleEnum.TESTER);
111                 sdncAdminDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
112                 // heatArtifactDetails =
113                 // ElementFactory.getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
114
115                 Either<Resource, RestResponse> resourceDetailsCP_01e = AtomicOperationUtils
116                                 .createResourceByType(ResourceTypeEnum.CP, UserRoleEnum.DESIGNER, true);
117                 AtomicOperationUtils.changeComponentState(resourceDetailsCP_01e.left().value(), UserRoleEnum.DESIGNER,
118                                 LifeCycleStatesEnum.CHECKIN, true);
119                 resourceDetailsCP = new ResourceReqDetails(resourceDetailsCP_01e.left().value());
120                 Either<Resource, RestResponse> resourceDetailsVL_01e = AtomicOperationUtils
121                                 .createResourceByType(ResourceTypeEnum.VL, UserRoleEnum.DESIGNER, true);
122                 AtomicOperationUtils.changeComponentState(resourceDetailsVL_01e.left().value(), UserRoleEnum.DESIGNER,
123                                 LifeCycleStatesEnum.CHECKIN, true);
124                 resourceDetailsVL = new ResourceReqDetails(resourceDetailsVL_01e.left().value());
125                 Either<Resource, RestResponse> resourceDetailsVF_01e = AtomicOperationUtils
126                                 .createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true);
127                 resourceDetailsVF = new ResourceReqDetails(resourceDetailsVF_01e.left().value());
128                 Either<Resource, RestResponse> resourceDetailsVFC_01e = AtomicOperationUtils
129                                 .createResourceByType(ResourceTypeEnum.VFC, UserRoleEnum.DESIGNER, true);
130                 AtomicOperationUtils.changeComponentState(resourceDetailsVFC_01e.left().value(), UserRoleEnum.DESIGNER,
131                                 LifeCycleStatesEnum.CHECKIN, true);
132                 resourceDetailsVFC = new ResourceReqDetails(resourceDetailsVFC_01e.left().value());
133
134                 resourceInstanceReqDetailsVFC = ElementFactory.getDefaultComponentInstance("VFC", resourceDetailsVFC);
135                 resourceInstanceReqDetailsVF = ElementFactory.getDefaultComponentInstance("VF", resourceDetailsVF);
136                 resourceInstanceReqDetailsVL = ElementFactory.getDefaultComponentInstance("VL", resourceDetailsVL);
137                 resourceInstanceReqDetailsCP = ElementFactory.getDefaultComponentInstance("CP", resourceDetailsCP);
138                 sdncDesignerDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
139                 sdncTesterDeatails1 = ElementFactory.getDefaultUser(UserRoleEnum.TESTER);
140                 sdncAdminDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
141
142         }
143
144         @Test
145         public void addResourceInstanceToVF() throws Exception {
146
147                 createVFWithCertifiedResourceInstance(resourceDetailsCP, resourceInstanceReqDetailsCP);
148                 // validate RI name
149                 List<ComponentInstance> resourceInstances = resourceVF.getComponentInstances();
150                 List<String> resourceInstanceListName = new ArrayList<String>();
151                 for (int i = 0; i < resourceInstances.size(); i++) {
152                         resourceInstanceListName.add(resourceInstances.get(i).getName());
153                 }
154                 List<String> resourceInstanceExpectedListName = new ArrayList<String>();
155                 resourceInstanceExpectedListName.add(resourceInstanceReqDetailsCP.getName() + " 1");
156                 String message = "resource instance name";
157                 Utils.compareArrayLists(resourceInstanceListName, resourceInstanceExpectedListName, message);
158
159         }
160
161         @Test
162         public void updateResourceInstanceName() throws Exception {
163
164                 // update resource instance name
165                 String resourceInstanceUpdatedName = "resource New 2";
166
167                 ResourceReqDetails updatedResourceDetailsVLC = changeResouceName(resourceDetailsVFC,
168                                 resourceInstanceUpdatedName);
169                 createVFWithCertifiedResourceInstance(updatedResourceDetailsVLC, resourceInstanceReqDetailsVFC);
170
171                 resourceInstanceReqDetailsVFC.setName(resourceInstanceUpdatedName);
172                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
173                                 resourceInstanceReqDetailsVFC, sdncDesignerDetails1, resourceVF.getUniqueId(),
174                                 ComponentTypeEnum.RESOURCE);
175                 assertTrue(updateResourceInstanceResponse.getErrorCode() == BaseRestUtils.STATUS_CODE_SUCCESS);
176
177                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
178
179                 // validate RI name
180                 List<ComponentInstance> resourceInstances = resourceVF.getComponentInstances();
181                 List<String> resourceInstanceListName = new ArrayList<String>();
182                 for (int i = 0; i < resourceInstances.size(); i++) {
183                         resourceInstanceListName.add(resourceInstances.get(i).getName());
184                 }
185                 List<String> resourceInstanceExpectedListName = new ArrayList<String>();
186                 resourceInstanceExpectedListName.add(resourceInstanceUpdatedName);
187                 String message = "resource instance name";
188                 Utils.compareArrayLists(resourceInstanceListName, resourceInstanceExpectedListName, message);
189
190         }
191
192         @Test
193         public void updateResourceInstanceNameToNextGeneratedName() throws Exception {
194
195                 // update resource instance name
196                 String resourceInstanceUpdatedName = resourceInstanceReqDetailsCP.getName() + " 2";
197
198                 ResourceReqDetails updatedResourceDetailsVL = changeResouceName(resourceDetailsVL, resourceInstanceUpdatedName);
199                 createVFWithCertifiedResourceInstance(updatedResourceDetailsVL, resourceInstanceReqDetailsVL);
200                 resourceInstanceReqDetailsCP.setName(resourceInstanceUpdatedName);
201
202                 // add second resource instance
203                 RestResponse response = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetailsCP,
204                                 sdncDesignerDetails1, resourceVF);
205                 assertEquals("Check response code after create RI", 201, response.getErrorCode().intValue());
206                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
207
208                 // validate RI name
209                 List<ComponentInstance> resourceInstances = resourceVF.getComponentInstances();
210                 List<String> resourceInstanceListName = new ArrayList<String>();
211                 for (int i = 0; i < resourceInstances.size(); i++) {
212                         resourceInstanceListName.add(resourceInstances.get(i).getName());
213                 }
214                 List<String> resourceInstanceExpectedListName = new ArrayList<String>();
215                 resourceInstanceExpectedListName.add(resourceInstanceReqDetailsVL.getName() + " 1");
216                 resourceInstanceExpectedListName.add(resourceInstanceReqDetailsCP.getName() + " 2");
217                 String message = "resource instance name";
218                 Utils.compareArrayLists(resourceInstanceListName, resourceInstanceExpectedListName, message);
219
220         }
221
222         @Test
223         public void normolizeUpdatedResourceInstanceName() throws Exception {
224
225                 String resourceInstanceUpdatedName = "resource   new -  .2";
226                 String normalizedName = "resourcenew2";
227
228                 ResourceReqDetails updatedResourceDetailsVL = changeResouceName(resourceDetailsVL, resourceInstanceUpdatedName);
229
230                 createVFWithCertifiedResourceInstance(updatedResourceDetailsVL, resourceInstanceReqDetailsVL);
231                 // update resource instance name
232                 resourceInstanceReqDetailsCP.setName(resourceInstanceUpdatedName);
233
234                 // add second resource instance
235                 RestResponse response = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetailsCP,
236                                 sdncDesignerDetails1, resourceVF);
237                 assertEquals("Check response code after create RI", 201, response.getErrorCode().intValue());
238                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
239
240                 // validate RI name
241                 List<ComponentInstance> resourceInstances = resourceVF.getComponentInstances();
242                 List<String> resourceInstanceListName = new ArrayList<String>();
243                 for (int i = 0; i < resourceInstances.size(); i++) {
244                         resourceInstanceListName.add(resourceInstances.get(i).getName());
245                 }
246                 List<String> resourceInstanceExpectedListName = new ArrayList<String>();
247                 resourceInstanceExpectedListName.add(resourceInstanceReqDetailsVL.getName() + " 1");
248                 resourceInstanceExpectedListName.add(resourceInstanceReqDetailsCP.getName() + " 2");
249                 String message = "resource instance name";
250                 Utils.compareArrayLists(resourceInstanceListName, resourceInstanceExpectedListName, message);
251
252         }
253
254         @Test
255         public void updatedResourceInstanceNameToEmpty() throws Exception {
256
257                 createVFWithCertifiedResourceInstance(resourceDetailsVL, resourceInstanceReqDetailsVL);
258                 String resourceInstanceUpdatedName = "";
259                 String resourceInstancePreviousName = resourceDetailsCP.getName();
260
261                 // add second resource instance
262                 RestResponse response = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetailsCP,
263                                 sdncDesignerDetails1, resourceVF);
264                 assertEquals("Check response code after create RI", 201, response.getErrorCode().intValue());
265                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
266
267                 resourceInstanceReqDetailsCP.setName(resourceInstanceUpdatedName);
268                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
269                                 resourceInstanceReqDetailsCP, sdncDesignerDetails1, resourceVF.getUniqueId(),
270                                 ComponentTypeEnum.RESOURCE);
271                 assertEquals("Check response code after RI update request", 200,
272                                 updateResourceInstanceResponse.getErrorCode().intValue());
273                 // change request
274                 // ErrorInfo errorInfo =
275                 // Utils.parseYaml(ActionStatus.MISSING_COMPONENT_NAME.name());
276                 // utils.validateResponseCode(updateResourceInstanceResponse,
277                 // errorInfo.getCode(), "update resource instance");
278                 //
279                 // List<String> variables = Arrays.asList("Resource Instance");
280                 // ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.MISSING_COMPONENT_NAME.name(),
281                 // variables, updateResourceInstanceResponse.getResponse());
282
283                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
284
285                 // validate RI name
286                 List<ComponentInstance> resourceInstances = resourceVF.getComponentInstances();
287                 List<String> resourceInstanceListName = new ArrayList<String>();
288                 for (int i = 0; i < resourceInstances.size(); i++) {
289                         resourceInstanceListName.add(resourceInstances.get(i).getName());
290                 }
291                 List<String> resourceInstanceExpectedListName = new ArrayList<String>();
292                 resourceInstanceExpectedListName.add(resourceInstanceReqDetailsVL.getName() + " 1");
293                 resourceInstanceExpectedListName.add(resourceInstancePreviousName + " 3");
294                 String message = "resource instance name";
295                 Utils.compareArrayLists(resourceInstanceListName, resourceInstanceExpectedListName, message);
296
297         }
298
299         @Test
300         public void updatedResourceNameLengthExceedMaximumCharacters() throws Exception {
301
302                 String resourceInstancePreviousName = resourceDetailsCP.getName();
303                 // update resource instance name
304                 String resourceInstanceUpdatedName = "a";
305                 for (int i = 0; i < maxLength; i++) {
306                         resourceInstanceUpdatedName += "b";
307                 }
308                 // ResourceReqDetails updatedResourceDetailsVL =
309                 // changeResouceName(resourceDetailsVL, resourceInstanceUpdatedName);
310
311                 createVFWithCertifiedResourceInstance(resourceDetailsVL, resourceInstanceReqDetailsVL);
312                 // add second resource instance
313                 RestResponse response = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetailsCP,
314                                 sdncDesignerDetails1, resourceVF);
315                 assertEquals("Check response code after create RI", 201, response.getErrorCode().intValue());
316                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
317
318                 String prevName = resourceInstanceReqDetailsCP.getName();
319                 resourceInstanceReqDetailsCP.setName(resourceInstanceUpdatedName);
320                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
321                                 resourceInstanceReqDetailsCP, sdncDesignerDetails1, resourceVF.getUniqueId(),
322                                 ComponentTypeEnum.RESOURCE);
323                 ErrorInfo errorInfo = ErrorValidationUtils
324                                 .parseErrorConfigYaml(ActionStatus.COMPONENT_NAME_EXCEEDS_LIMIT.name());
325                 // utils.validateResponseCode(updateResourceInstanceResponse,
326                 // errorInfo.getCode(), "update resource instance");
327
328                 List<String> variables = Arrays.asList("Resource Instance", "50");
329                 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.COMPONENT_NAME_EXCEEDS_LIMIT.name(), variables,
330                                 updateResourceInstanceResponse.getResponse());
331
332                 resourceInstanceReqDetailsCP.setName(prevName);
333                 // validate RI name
334                 List<ComponentInstance> resourceInstances = resourceVF.getComponentInstances();
335                 List<String> resourceInstanceListName = new ArrayList<String>();
336                 for (int i = 0; i < resourceInstances.size(); i++) {
337                         resourceInstanceListName.add(resourceInstances.get(i).getName());
338                 }
339                 List<String> resourceInstanceExpectedListName = new ArrayList<String>();
340                 resourceInstanceExpectedListName.add(resourceInstanceReqDetailsVL.getName() + " 1");
341                 resourceInstanceExpectedListName.add(resourceInstanceReqDetailsCP.getName() + " 2");
342                 String message = "resource instance name";
343                 Utils.compareArrayLists(resourceInstanceListName, resourceInstanceExpectedListName, message);
344
345         }
346
347         @Test
348         public void updatedResourceNameWithUnSupportedCharacters() throws Exception {
349
350                 createVFWithCertifiedResourceInstance(resourceDetailsVL, resourceInstanceReqDetailsVL);
351                 String resourceInstancePreviousName = resourceDetailsCP.getName();
352                 // update resource instance name
353                 String resourceInstanceUpdatedName = "a???<>";
354
355                 // add second resource instance
356                 RestResponse response = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetailsCP,
357                                 sdncDesignerDetails1, resourceVF);
358                 assertEquals("Check response code after create RI", 201, response.getErrorCode().intValue());
359                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
360
361                 String prevValue = resourceInstanceReqDetailsCP.getName();
362                 resourceInstanceReqDetailsCP.setName(resourceInstanceUpdatedName);
363                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
364                                 resourceInstanceReqDetailsCP, sdncDesignerDetails1, resourceVF.getUniqueId(),
365                                 ComponentTypeEnum.RESOURCE);
366                 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.INVALID_COMPONENT_NAME.name());
367                 // ResourceRestUtils.validateResponseCode(updateResourceInstanceResponse,
368                 // errorInfo.getCode(), "update resource instance");
369
370                 List<String> variables = Arrays.asList("Resource Instance");
371                 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.INVALID_COMPONENT_NAME.name(), variables,
372                                 updateResourceInstanceResponse.getResponse());
373
374                 resourceInstanceReqDetailsCP.setName(prevValue);
375
376                 // validate RI name
377                 List<ComponentInstance> resourceInstances = resourceVF.getComponentInstances();
378                 List<String> resourceInstanceListName = new ArrayList<String>();
379                 for (int i = 0; i < resourceInstances.size(); i++) {
380                         resourceInstanceListName.add(resourceInstances.get(i).getName());
381                 }
382                 List<String> resourceInstanceExpectedListName = new ArrayList<String>();
383                 resourceInstanceExpectedListName.add(resourceInstanceReqDetailsVL.getName() + " 1");
384                 resourceInstanceExpectedListName.add(resourceInstanceReqDetailsCP.getName() + " 2");
385                 String message = "resource instance name";
386                 Utils.compareArrayLists(resourceInstanceListName, resourceInstanceExpectedListName, message);
387
388         }
389
390         private static ResourceReqDetails changeResouceName(ResourceReqDetails resourceDet,
391                         String resourceInstanceUpdatedName) throws Exception {
392
393                 ResourceReqDetails updatedResourceDetails = new ResourceReqDetails();
394                 updatedResourceDetails = resourceDet;
395                 updatedResourceDetails.setName(resourceInstanceUpdatedName);
396                 List<String> tags = new ArrayList<String>();
397                 tags.add(resourceInstanceUpdatedName);
398                 updatedResourceDetails.setTags(tags);
399                 Gson gson = new Gson();
400                 String updatedResourceBodyJson = gson.toJson(updatedResourceDetails);
401                 RestResponse response = LifecycleRestUtils.changeResourceState(resourceDet, sdncDesignerDetails1,
402                                 resourceDet.getVersion(), LifeCycleStatesEnum.CHECKOUT);
403                 assertTrue("change LS state to CHECKOUT, returned status:" + response.getErrorCode(),
404                                 response.getErrorCode() == 200);
405                 response = ResourceRestUtils.updateResourceMetadata(updatedResourceBodyJson, sdncDesignerDetails1,
406                                 updatedResourceDetails.getUniqueId());
407                 assertEquals("Check response code after updateresource name", 200, response.getErrorCode().intValue());
408                 response = LifecycleRestUtils.changeResourceState(updatedResourceDetails, sdncDesignerDetails1,
409                                 resourceDet.getVersion(), LifeCycleStatesEnum.CHECKIN);
410
411                 return updatedResourceDetails;
412
413         }
414
415         // private Component changeResouceName(Resource resourceDet, String
416         // resourceInstanceUpdatedName) throws Exception{
417         //
418         // User defaultUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
419         // Resource updatedResourceDetails = resourceDet;
420         // RestResponse response =
421         // LifecycleRestUtils.changeComponentState(updatedResourceDetails,
422         // defaultUser, LifeCycleStatesEnum.CHECKOUT, "state changed");
423         // assertTrue("change LS state to CHECKOUT, returned status:" +
424         // response.getErrorCode(),response.getErrorCode() == 200);
425         // updatedResourceDetails.setName(resourceInstanceUpdatedName);
426         // List<String> tags = new ArrayList<String>();
427         // tags.add(resourceInstanceUpdatedName);
428         // updatedResourceDetails.setTags(tags);
429         // Gson gson = new Gson();
430         // ResourceReqDetails resourceReqDetails = new
431         // ResourceReqDetails(updatedResourceDetails);
432         // String updatedResourceBodyJson = gson.toJson(resourceReqDetails);
433         // response = ResourceRestUtils.updateResource(updatedResourceBodyJson,
434         // defaultUser, updatedResourceDetails.getUniqueId());
435         // assertEquals("Check response code after updateresource name", 200,
436         // response.getErrorCode().intValue());
437         // response =
438         // LifecycleRestUtils.changeComponentState(updatedResourceDetails,
439         // defaultUser, LifeCycleStatesEnum.CHECKIN, "state changed");
440         // assertEquals("Check response code after updateresource name", 200,
441         // response.getErrorCode().intValue());
442         //
443         // return updatedResourceDetails;
444         //
445         // }
446
447         private void createVFWithCertifiedResourceInstance(ResourceReqDetails resourceDetails,
448                         ComponentInstanceReqDetails resourceInstanceReqDetails) throws Exception {
449
450                 RestResponse response = LifecycleRestUtils.changeResourceState(resourceDetails, sdncDesignerDetails1,
451                                 resourceDetails.getVersion(), LifeCycleStatesEnum.CHECKOUT);
452                 assertEquals("Check response code after CHECKOUT", 200, response.getErrorCode().intValue());
453
454                 // add heat artifact to resource and certify
455                 ArtifactReqDetails heatArtifactDetails = ElementFactory
456                                 .getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
457                 response = ArtifactRestUtils.addInformationalArtifactToResource(heatArtifactDetails, sdncDesignerDetails1,
458                                 resourceDetails.getUniqueId());
459                 assertTrue("add HEAT artifact to resource request returned status:" + response.getErrorCode(),
460                                 response.getErrorCode() == 200);
461                 response = LifecycleRestUtils.certifyResource(resourceDetails);
462                 assertEquals("Check response code after CERTIFY request", 200, response.getErrorCode().intValue());
463
464                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
465
466                 resourceInstanceReqDetails.setComponentUid(resourceDetails.getUniqueId());
467                 response = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetails, sdncDesignerDetails1,
468                                 resourceVF);
469                 assertEquals("Check response code after create RI", 201, response.getErrorCode().intValue());
470
471                 resourceVF = convertResourceGetResponseToJavaObject(resourceDetailsVF);
472         }
473
474         protected Resource convertResourceGetResponseToJavaObject(ResourceReqDetails resourceDetails) throws IOException {
475                 RestResponse response = ResourceRestUtils.getResource(resourceDetails, sdncDesignerDetails1);
476                 assertEquals("Check response code after get resource", 200, response.getErrorCode().intValue());
477                 return ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
478         }
479
480 }