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