[SDC-29] rebase continue work to align source
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / execute / resource / VfComponentInstanceCRUDTest.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.junit.Assert.assertTrue;
24 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.STATUS_CODE_ALREADY_EXISTS;
25 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.STATUS_CODE_COMPONENT_NAME_EXCEEDS_LIMIT;
26 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.STATUS_CODE_DELETE;
27 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.STATUS_CODE_INVALID_CONTENT;
28 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.STATUS_CODE_NOT_FOUND;
29 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.STATUS_CODE_RESTRICTED_OPERATION;
30 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.STATUS_CODE_SUCCESS;
31
32 import java.io.IOException;
33 import java.util.ArrayList;
34 import java.util.List;
35
36 import org.junit.Rule;
37 import org.junit.rules.TestName;
38 import org.openecomp.sdc.be.dao.api.ActionStatus;
39 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
40 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
41 import org.openecomp.sdc.be.model.CapReqDef;
42 import org.openecomp.sdc.be.model.CapabilityDefinition;
43 import org.openecomp.sdc.be.model.ComponentInstance;
44 import org.openecomp.sdc.be.model.LifecycleStateEnum;
45 import org.openecomp.sdc.be.model.RelationshipImpl;
46 import org.openecomp.sdc.be.model.RequirementAndRelationshipPair;
47 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
48 import org.openecomp.sdc.be.model.RequirementDefinition;
49 import org.openecomp.sdc.be.model.Resource;
50 import org.openecomp.sdc.be.model.User;
51 import org.openecomp.sdc.ci.tests.api.ComponentInstanceBaseTest;
52 import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
53 import org.openecomp.sdc.ci.tests.datatypes.ComponentInstanceReqDetails;
54 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
55 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
56 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
57 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
58 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
59 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
60 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
61 import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
62 import org.openecomp.sdc.ci.tests.utils.rest.ComponentInstanceRestUtils;
63 import org.openecomp.sdc.ci.tests.utils.rest.ComponentRestUtils;
64 import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
65 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
66 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
67 import org.openecomp.sdc.ci.tests.utils.validation.BaseValidationUtils;
68 import org.testng.AssertJUnit;
69 import org.testng.annotations.BeforeMethod;
70 import org.testng.annotations.Test;
71
72 public class VfComponentInstanceCRUDTest extends ComponentInstanceBaseTest {
73
74         @Rule
75         public static TestName name = new TestName();
76
77         public VfComponentInstanceCRUDTest() {
78                 super(name, VfComponentInstanceCRUDTest.class.getName());
79         }
80
81         @BeforeMethod
82         public void before() throws Exception {
83                 init();
84                 createComponents();
85         }
86
87         // CREATE Resource
88         private void createComponents() throws Exception {
89                 createAtomicResource(resourceDetailsVFC_01);
90                 LifecycleRestUtils.changeResourceState(resourceDetailsVFC_01, sdncAdminDetails, "0.1",
91                                 LifeCycleStatesEnum.CHECKIN);
92                 createAtomicResource(resourceDetailsVFC_02);
93                 LifecycleRestUtils.changeResourceState(resourceDetailsVFC_02, sdncAdminDetails, "0.1",
94                                 LifeCycleStatesEnum.CHECKIN);
95                 createAtomicResource(resourceDetailsCP_01);
96                 LifecycleRestUtils.changeResourceState(resourceDetailsCP_01, sdncAdminDetails, "0.1",
97                                 LifeCycleStatesEnum.CHECKIN);
98                 createAtomicResource(resourceDetailsCP_02);
99                 LifecycleRestUtils.changeResourceState(resourceDetailsCP_02, sdncAdminDetails, "0.1",
100                                 LifeCycleStatesEnum.CHECKIN);
101                 createAtomicResource(resourceDetailsVL_01);
102                 LifecycleRestUtils.changeResourceState(resourceDetailsVL_01, sdncAdminDetails, "0.1",
103                                 LifeCycleStatesEnum.CHECKIN);
104                 createAtomicResource(resourceDetailsVL_02);
105                 LifecycleRestUtils.changeResourceState(resourceDetailsVL_02, sdncAdminDetails, "0.1",
106                                 LifeCycleStatesEnum.CHECKIN);
107                 createVF(resourceDetailsVF_02);
108         }
109
110         @Test
111         public void createVfcInstanceByDesigner() throws Exception {
112                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
113                                 resourceDetailsVFC_01, sdncDesignerDetails);
114                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
115                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
116         }
117
118         @Test(enabled = false) // DE189419
119         public void createInstanceOfVfToItself() throws Exception {
120                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
121                                 resourceDetailsVL_01, sdncDesignerDetails);
122                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
123                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
124                                 .getComponentResourceInstance(resourceDetailsVF_02);
125                 createAtomicResourceInstance = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetails,
126                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), ComponentTypeEnum.RESOURCE);
127                 assertTrue(createAtomicResourceInstance.getErrorCode() == STATUS_CODE_NOT_FOUND);
128                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
129         }
130
131         @Test
132         public void createVfcInstanceByAdmin() throws Exception {
133                 User user = sdncAdminDetails;
134                 createVF(resourceDetailsVF_01, user);
135                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_01,
136                                 resourceDetailsVFC_01, user);
137                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
138                 getComponentAndValidateRIs(resourceDetailsVF_01, 1, 0);
139         }
140
141         @Test
142         public void createCpInstance() throws Exception {
143                 // Create CP instance
144                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
145                                 resourceDetailsCP_01, sdncDesignerDetails);
146                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
147                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
148         }
149
150         @Test
151         public void createVlInstance() throws Exception {
152                 // Create VL instance
153                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
154                                 resourceDetailsVL_01, sdncDesignerDetails);
155                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
156                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
157         }
158
159         @Test
160         public void updateResourceInstanceNameLessMaxLegth() throws Exception {
161                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
162                                 .getComponentResourceInstance(resourceDetailsCP_01);
163                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
164                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
165                                 ComponentTypeEnum.RESOURCE);
166                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
167                 ComponentInstance componentInstance = ResponseParser
168                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
169                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
170                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
171                 vfcResourceInstanceReqDetails.setName("xxxxXthisXstringxisx49XcharcatersXlengthXxxxxxxxx");
172                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
173                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
174                                 ComponentTypeEnum.RESOURCE);
175                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
176
177         }
178
179         @Test
180         public void updateInstanceNameExceedMaxLegth() throws Exception {
181                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
182                                 .getComponentResourceInstance(resourceDetailsCP_01);
183                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
184                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
185                                 ComponentTypeEnum.RESOURCE);
186                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
187                 ComponentInstance componentInstance = ResponseParser
188                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
189                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
190                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
191                 vfcResourceInstanceReqDetails.setName("xxxxXthisXstringxisx51XcharcatersXlengthXxxxxxxxxxx");
192                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
193                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
194                                 ComponentTypeEnum.RESOURCE);
195                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_COMPONENT_NAME_EXCEEDS_LIMIT,
196                                 updateResourceInstanceResponse.getErrorCode().intValue());
197         }
198
199         @Test
200         public void updateResourceInstanceNameHasMaxLegth() throws Exception {
201                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
202                                 .getComponentResourceInstance(resourceDetailsCP_01);
203                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
204                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
205                                 ComponentTypeEnum.RESOURCE);
206                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
207                 ComponentInstance componentInstance = ResponseParser
208                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
209                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
210                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
211                 vfcResourceInstanceReqDetails.setName("xxxxXthisXstringxisx50XcharcatersXlengthXxxxxxxxxx");
212                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
213                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
214                                 ComponentTypeEnum.RESOURCE);
215                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
216         }
217
218         @Test
219         public void resourceInstanceNameIsEmpty() throws Exception {
220                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
221                                 .getComponentResourceInstance(resourceDetailsVFC_01);
222                 resourceInstanceReqDetails.setName("");
223                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
224                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
225                                 ComponentTypeEnum.RESOURCE);
226                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
227                 ComponentInstance componentInstance = ResponseParser
228                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
229                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
230                 String instanceNormalizedName = ResponseParser
231                                 .getValueFromJsonResponse(createResourceInstanceResponse.getResponse(), "normalizedName");
232                 String instanceName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(),
233                                 "name");
234                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
235                                 (resourceDetailsVFC_01.getName() + "1").toLowerCase(), instanceNormalizedName);
236                 AssertJUnit.assertEquals("check Resource Instance Name ", (resourceDetailsVFC_01.getName() + " 1"),
237                                 instanceName);
238         }
239
240         @Test
241         public void resourceInstanceNameIsNull() throws Exception {
242                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
243                                 .getComponentResourceInstance(resourceDetailsVFC_01);
244                 resourceInstanceReqDetails.setName(null);
245                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
246                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
247                                 ComponentTypeEnum.RESOURCE);
248                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
249                 ComponentInstance componentInstance = ResponseParser
250                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
251                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
252                 String instanceNormalizedName = ResponseParser
253                                 .getValueFromJsonResponse(createResourceInstanceResponse.getResponse(), "normalizedName");
254                 String instanceName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(),
255                                 "name");
256                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
257                                 (resourceDetailsVFC_01.getName() + "1").toLowerCase(), instanceNormalizedName);
258                 AssertJUnit.assertEquals("check Resource Instance Name ", (resourceDetailsVFC_01.getName() + " 1"),
259                                 instanceName);
260         }
261
262         @Test
263         public void resourceInstanceNameValidation01() throws Exception {
264                 // 2 Instances
265                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
266                                 .getComponentResourceInstance(resourceDetailsVFC_01);
267                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
268                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
269                                 ComponentTypeEnum.RESOURCE);
270                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
271                 String instanceNormalizedName = ResponseParser
272                                 .getValueFromJsonResponse(createResourceInstanceResponse.getResponse(), "normalizedName");
273                 String instanceName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(),
274                                 "name");
275                 ComponentInstance componentInstance = ResponseParser
276                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
277                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
278                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
279                                 (resourceDetailsVFC_01.getName() + "1").toLowerCase(), instanceNormalizedName);
280                 AssertJUnit.assertEquals("check Resource Instance Name ", (resourceDetailsVFC_01.getName() + " 1"),
281                                 instanceName);
282                 createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetails,
283                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), ComponentTypeEnum.RESOURCE);
284                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
285                 instanceNormalizedName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(),
286                                 "normalizedName");
287                 instanceName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(), "name");
288                 componentInstance = ResponseParser.parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(),
289                                 ComponentInstance.class);
290                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
291                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
292                                 (resourceDetailsVFC_01.getName() + "2").toLowerCase(), instanceNormalizedName);
293                 AssertJUnit.assertEquals("check Resource Instance normalizedName ", (resourceDetailsVFC_01.getName() + " 2"),
294                                 instanceName);
295                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
296         }
297
298         @Test
299         public void resourceInstanceNameValidation02() throws Exception {
300
301                 // 2 Instances
302                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
303                                 .getComponentResourceInstance(resourceDetailsVFC_01);
304                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
305                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
306                                 ComponentTypeEnum.RESOURCE);
307                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
308                 String instanceNormalizedName = ResponseParser
309                                 .getValueFromJsonResponse(createResourceInstanceResponse.getResponse(), "normalizedName");
310                 String instanceName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(),
311                                 "name");
312                 ComponentInstance componentInstance = ResponseParser
313                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
314                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
315                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
316                                 (resourceDetailsVFC_01.getName() + "1").toLowerCase(), instanceNormalizedName);
317                 AssertJUnit.assertEquals("check Resource Instance Name ", (resourceDetailsVFC_01.getName() + " 1"),
318                                 instanceName);
319                 resourceInstanceReqDetails = ElementFactory.getComponentResourceInstance(resourceDetailsCP_01);
320                 createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetails,
321                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), ComponentTypeEnum.RESOURCE);
322                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
323                 instanceNormalizedName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(),
324                                 "normalizedName");
325                 instanceName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(), "name");
326                 componentInstance = ResponseParser.parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(),
327                                 ComponentInstance.class);
328                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
329                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
330                                 (resourceDetailsCP_01.getName() + "2").toLowerCase(), instanceNormalizedName);
331                 AssertJUnit.assertEquals("check Resource Instance normalizedName ", (resourceDetailsCP_01.getName() + " 2"),
332                                 instanceName);
333                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
334         }
335
336         @Test
337         public void createVfcInstanceByTester() throws Exception { // Response 409
338
339                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
340                                 .getComponentResourceInstance(resourceDetailsVFC_01);
341                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
342                                 resourceInstanceReqDetails, sdncTesterDetails, resourceDetailsVF_02.getUniqueId(),
343                                 ComponentTypeEnum.RESOURCE);
344                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
345                                 createResourceInstanceResponse.getErrorCode().intValue());
346                 getComponentAndValidateRIs(resourceDetailsVF_02, 0, 0);
347         }
348
349         @Test
350         public void createVfcInstance_UserIdIsEmpty() throws Exception {
351
352                 User sdncUserDetails = new User();
353                 sdncUserDetails.setUserId("");
354                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
355                                 .getComponentResourceInstance(resourceDetailsVFC_01);
356                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
357                                 resourceInstanceReqDetails, sdncUserDetails, resourceDetailsVF_02.getUniqueId(),
358                                 ComponentTypeEnum.RESOURCE);
359                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
360                                 createResourceInstanceResponse.getErrorCode().intValue());
361                 getComponentAndValidateRIs(resourceDetailsVF_02, 0, 0);
362         }
363
364         @Test
365         public void createVfcInstance_UserIdIsNonAsdcUser() throws Exception {
366
367                 User sdncUserDetails = new User();
368                 sdncUserDetails.setUserId("bt4567");
369                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
370                                 .getComponentResourceInstance(resourceDetailsVFC_01);
371                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
372                                 resourceInstanceReqDetails, sdncUserDetails, resourceDetailsVF_02.getUniqueId(),
373                                 ComponentTypeEnum.RESOURCE);
374                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
375                                 createResourceInstanceResponse.getErrorCode().intValue());
376                 getComponentAndValidateRIs(resourceDetailsVF_02, 0, 0);
377         }
378
379         @Test
380         public void createAllAtomicInstances() throws Exception {
381
382                 // Add to VF resource VFC, CP and VL instances
383                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
384                                 resourceDetailsVL_01, sdncDesignerDetails);
385                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
386                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsCP_01,
387                                 sdncDesignerDetails);
388                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
389                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsVFC_01,
390                                 sdncDesignerDetails);
391                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
392                 getComponentAndValidateRIs(resourceDetailsVF_02, 3, 0);
393         }
394
395         @Test
396         public void createDefferentVfcInstances() throws Exception {
397
398                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
399                                 resourceDetailsVFC_01, sdncDesignerDetails);
400                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
401                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsVFC_02,
402                                 sdncDesignerDetails);
403                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
404                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
405         }
406
407         @Test
408         public void createDefferentCpInstances() throws Exception {
409
410                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
411                                 resourceDetailsCP_01, sdncDesignerDetails);
412                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
413                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsCP_02,
414                                 sdncDesignerDetails);
415                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
416                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
417         }
418
419         @Test
420         public void createDefferentVLInstances() throws Exception {
421
422                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
423                                 resourceDetailsVL_01, sdncDesignerDetails);
424                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
425                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsVL_02,
426                                 sdncDesignerDetails);
427                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
428                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
429         }
430
431         @Test
432         public void createSeveralInstanceOfSameVFC() throws Exception {
433
434                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
435                                 resourceDetailsVFC_01, sdncDesignerDetails);
436                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
437                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsVFC_01,
438                                 sdncDesignerDetails);
439                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
440                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
441         }
442
443         @Test
444         public void createSeveralInstanceOfSameVL() throws Exception {
445
446                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
447                                 resourceDetailsVL_01, sdncDesignerDetails);
448                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
449                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsVL_01,
450                                 sdncDesignerDetails);
451                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
452                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
453         }
454
455         @Test
456         public void createSeveralInstanceOfSameCP() throws Exception {
457
458                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
459                                 resourceDetailsCP_01, sdncDesignerDetails);
460                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
461                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsCP_01,
462                                 sdncDesignerDetails);
463                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
464                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
465         }
466
467         @Test
468         public void createInstanceOfCpToVfc() throws Exception { // Add to CP to VFC
469                                                                                                                                 // (not allowed)
470
471                 ComponentInstanceReqDetails resourceInstanceReqDetailsCP = ElementFactory
472                                 .getComponentResourceInstance(resourceDetailsCP_01);
473                 ComponentInstanceReqDetails resourceInstanceReqDetailsVFC = ElementFactory
474                                 .getComponentResourceInstance(resourceDetailsVFC_01);
475                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
476                                 resourceInstanceReqDetailsCP, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
477                                 ComponentTypeEnum.RESOURCE);
478                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
479                 ComponentInstance componentInstance = ResponseParser
480                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
481                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
482                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
483                 createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
484                                 resourceInstanceReqDetailsCP, sdncDesignerDetails, resourceInstanceReqDetailsVFC.getUniqueId(),
485                                 ComponentTypeEnum.RESOURCE);
486                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
487                                 createResourceInstanceResponse.getErrorCode().intValue());
488                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
489         }
490
491         @Test
492         public void createInstanceVfcToCp() throws Exception { // (not allowed)
493
494                 ComponentInstanceReqDetails resourceInstanceReqDetailsCP = ElementFactory
495                                 .getComponentResourceInstance(resourceDetailsCP_01);
496                 ComponentInstanceReqDetails resourceInstanceReqDetailsVFC = ElementFactory
497                                 .getComponentResourceInstance(resourceDetailsVFC_01);
498                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
499                                 resourceInstanceReqDetailsCP, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
500                                 ComponentTypeEnum.RESOURCE);
501                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
502                 ComponentInstance componentInstance = ResponseParser
503                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
504                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
505                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
506                 createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
507                                 resourceInstanceReqDetailsVFC, sdncDesignerDetails, resourceInstanceReqDetailsCP.getUniqueId(),
508                                 ComponentTypeEnum.RESOURCE);
509                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
510                                 createResourceInstanceResponse.getErrorCode().intValue());
511                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
512         }
513
514         @Test
515         public void createInstanceVlToVfc() throws Exception {
516
517                 ComponentInstanceReqDetails resourceInstanceReqDetailsVL = ElementFactory
518                                 .getComponentResourceInstance(resourceDetailsVL_01);
519                 ComponentInstanceReqDetails resourceInstanceReqDetailsVFC = ElementFactory
520                                 .getComponentResourceInstance(resourceDetailsVFC_01);
521                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
522                                 resourceInstanceReqDetailsVFC, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
523                                 ComponentTypeEnum.RESOURCE);
524                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
525                 ComponentInstance componentInstance = ResponseParser
526                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
527                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
528                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
529                 createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
530                                 resourceInstanceReqDetailsVL, sdncDesignerDetails, resourceInstanceReqDetailsVFC.getUniqueId(),
531                                 ComponentTypeEnum.RESOURCE);
532                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
533                                 createResourceInstanceResponse.getErrorCode().intValue());
534                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
535         }
536
537         @Test
538         public void createInstanceToNonSupportedComponentType() throws Exception {
539
540                 ComponentInstanceReqDetails resourceInstanceReqDetailsCP = ElementFactory
541                                 .getComponentResourceInstance(resourceDetailsCP_01);
542                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
543                                 resourceInstanceReqDetailsCP, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
544                                 ComponentTypeEnum.RESOURCE_INSTANCE);
545                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_INVALID_CONTENT,
546                                 createResourceInstanceResponse.getErrorCode().intValue());
547                 getComponentAndValidateRIs(resourceDetailsVF_02, 0, 0);
548         }
549
550         // ("Create instance without position is allowed")
551         @Test
552         public void createInstanceOfVlWithoutPosXAndPosY() throws Exception { // instance
553                                                                                                                                                         // does
554                                                                                                                                                         // not
555                                                                                                                                                         // have
556                                                                                                                                                         // position
557
558                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
559                                 .getComponentResourceInstance(resourceDetailsVL_01);
560                 resourceInstanceReqDetails.setPosX("");
561                 resourceInstanceReqDetails.setPosY("");
562                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
563                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
564                                 ComponentTypeEnum.RESOURCE);
565                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
566                 ComponentInstance componentInstance = ResponseParser
567                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
568                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
569                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
570         }
571
572         // Create instance without position is allowed")
573         @Test
574         public void createInstanceOfVlWithPositionNull() throws Exception { // instance
575                                                                                                                                                 // does
576                                                                                                                                                 // not
577                                                                                                                                                 // have
578                                                                                                                                                 // position
579
580                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
581                                 .getComponentResourceInstance(resourceDetailsVL_01);
582                 resourceInstanceReqDetails.setPosX(null);
583                 resourceInstanceReqDetails.setPosY(null);
584                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
585                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
586                                 ComponentTypeEnum.RESOURCE);
587                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
588                 ComponentInstance componentInstance = ResponseParser
589                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
590                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
591                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
592         }
593
594         @Test
595         public void createResourceInstanceForNonCheckedOutVF() throws Exception {
596
597                 RestResponse checkInResponse = LifecycleRestUtils.changeResourceState(resourceDetailsVF_02, sdncAdminDetails,
598                                 "0.1", LifeCycleStatesEnum.CHECKIN);
599                 resourceDetailsVF_02.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
600                 AssertJUnit.assertEquals("Check response code after create user", STATUS_CODE_SUCCESS,
601                                 checkInResponse.getErrorCode().intValue());
602                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
603                                 .getComponentResourceInstance(resourceDetailsVFC_01);
604                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
605                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
606                                 ComponentTypeEnum.RESOURCE);
607                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
608                                 createResourceInstanceResponse.getErrorCode().intValue());
609         }
610
611         @Test
612         public void createResourceInstanceVfCheckedOutByOtherUser() throws Exception {
613
614                 // Admin try to add RI to VF which is checked-Out By Designer
615                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
616                                 .getComponentResourceInstance(resourceDetailsVFC_01);
617                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
618                                 resourceInstanceReqDetails, sdncAdminDetails, resourceDetailsVF_02.getUniqueId(),
619                                 ComponentTypeEnum.RESOURCE);
620                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
621                                 createResourceInstanceResponse.getErrorCode().intValue());
622                 getComponentAndValidateRIs(resourceDetailsVF_02, 0, 0);
623         }
624
625         @Test
626         public void createResourceInstanceForNonExistingVF() throws Exception {
627
628                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
629                                 .getComponentResourceInstance(resourceDetailsVFC_01);
630                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
631                                 resourceInstanceReqDetails, sdncDesignerDetails, "blablabla", ComponentTypeEnum.RESOURCE);
632                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
633                                 createResourceInstanceResponse.getErrorCode().intValue());
634                 getComponentAndValidateRIs(resourceDetailsVF_02, 0, 0);
635         }
636
637         // Delete
638         @Test
639         public void deleteVfcInstanceByDesigner() throws Exception {
640
641                 // Create RI
642                 RestResponse createResourceInstanceResponse = createAtomicInstanceForVF(resourceDetailsVF_02,
643                                 resourceDetailsVFC_01, sdncDesignerDetails);
644                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
645                 String compInstId = ResponseParser.getUniqueIdFromResponse(createResourceInstanceResponse);
646                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
647                 // Delete Resource instance
648                 RestResponse deleteResourceInstanceResponse = deleteAtomicInstanceForVF(compInstId, resourceDetailsVF_02,
649                                 sdncDesignerDetails);
650                 ResourceRestUtils.checkDeleteResponse(deleteResourceInstanceResponse);
651                 getComponentAndValidateRIs(resourceDetailsVF_02, 0, 0);
652         }
653
654         @Test
655         public void deleteVfcInstanceByAdmin() throws Exception {
656                 createVF(resourceDetailsVF_01, sdncAdminDetails);
657                 RestResponse createResourceInstanceResponse = createAtomicInstanceForVF(resourceDetailsVF_01,
658                                 resourceDetailsVL_01, sdncAdminDetails);
659                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
660                 String compInstId = ResponseParser.getUniqueIdFromResponse(createResourceInstanceResponse);
661                 getComponentAndValidateRIs(resourceDetailsVF_01, 1, 0);
662                 // Delete Resource instance
663                 RestResponse deleteResourceInstanceResponse = deleteAtomicInstanceForVF(compInstId, resourceDetailsVF_01,
664                                 sdncAdminDetails);
665                 ResourceRestUtils.checkDeleteResponse(deleteResourceInstanceResponse);
666                 getComponentAndValidateRIs(resourceDetailsVF_01, 0, 0);
667         }
668
669         @Test
670         public void deleteCpInstance() throws Exception {
671
672                 RestResponse createResourceInstanceResponse = createAtomicInstanceForVF(resourceDetailsVF_02,
673                                 resourceDetailsCP_01, sdncDesignerDetails);
674                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
675                 String compInstId = ResponseParser.getUniqueIdFromResponse(createResourceInstanceResponse);
676                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
677                 // Delete Resource instance
678                 RestResponse deleteResourceInstanceResponse = deleteAtomicInstanceForVF(compInstId, resourceDetailsVF_02,
679                                 sdncDesignerDetails);
680                 ResourceRestUtils.checkDeleteResponse(deleteResourceInstanceResponse);
681                 getComponentAndValidateRIs(resourceDetailsVF_02, 0, 0);
682         }
683
684         @Test
685         public void deleteVlInstance() throws Exception {
686
687                 RestResponse createResourceInstanceResponse = createAtomicInstanceForVF(resourceDetailsVF_02,
688                                 resourceDetailsVL_01, sdncDesignerDetails);
689                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
690                 String compInstId = ResponseParser.getUniqueIdFromResponse(createResourceInstanceResponse);
691                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
692                 // Delete Resource instance
693                 RestResponse deleteResourceInstanceResponse = deleteAtomicInstanceForVF(compInstId, resourceDetailsVF_02,
694                                 sdncDesignerDetails);
695                 ResourceRestUtils.checkDeleteResponse(deleteResourceInstanceResponse);
696                 getComponentAndValidateRIs(resourceDetailsVF_02, 0, 0);
697         }
698
699         @Test
700         public void deleteOneVlInstance() throws Exception {
701
702                 // RI-1
703                 RestResponse createResourceInstanceResponse = createAtomicInstanceForVF(resourceDetailsVF_02,
704                                 resourceDetailsVL_01, sdncDesignerDetails);
705                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
706                 String compInstId = ResponseParser.getUniqueIdFromResponse(createResourceInstanceResponse);
707                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
708                 // RI-2
709                 createResourceInstanceResponse = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsVL_01,
710                                 sdncDesignerDetails);
711                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
712                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
713                 // Delete Resource instance RI-1
714                 RestResponse deleteResourceInstanceResponse = deleteAtomicInstanceForVF(compInstId, resourceDetailsVF_02,
715                                 sdncDesignerDetails);
716                 ResourceRestUtils.checkDeleteResponse(deleteResourceInstanceResponse);
717                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
718         }
719
720         @Test
721         public void deleteVfcInstanceCheckedByOtherUser() throws Exception {
722
723                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
724                                 .getComponentResourceInstance(resourceDetailsVL_01);
725                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
726                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
727                                 ComponentTypeEnum.RESOURCE);
728                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
729                 ComponentInstance componentInstance = ResponseParser
730                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
731                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
732                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
733                 // Delete Resource instance
734                 RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(
735                                 sdncTesterDetails, resourceDetailsVF_02.getUniqueId(), resourceInstanceReqDetails.getUniqueId(),
736                                 ComponentTypeEnum.RESOURCE);
737                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
738                                 deleteResourceInstanceResponse.getErrorCode().intValue());
739                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
740         }
741
742         @Test
743         public void deleteInstanceNonSupportedComponentType() throws Exception {
744
745                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
746                                 .getComponentResourceInstance(resourceDetailsVL_01);
747                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
748                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
749                                 ComponentTypeEnum.RESOURCE);
750                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
751                 ComponentInstance componentInstance = ResponseParser
752                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
753                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
754                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
755                 RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(
756                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), resourceInstanceReqDetails.getUniqueId(),
757                                 ComponentTypeEnum.RESOURCE_INSTANCE);
758                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_INVALID_CONTENT,
759                                 deleteResourceInstanceResponse.getErrorCode().intValue());
760                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
761         }
762
763         @Test
764         public void deleteInstanceFromNonVF() throws Exception {
765                 // RI-1
766
767                 ComponentInstanceReqDetails resourceInstanceVlReqDetails = ElementFactory
768                                 .getComponentResourceInstance(resourceDetailsVL_01);
769                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
770                                 resourceInstanceVlReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
771                                 ComponentTypeEnum.RESOURCE);
772                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
773                 ComponentInstance componentInstance1 = ResponseParser
774                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
775                 addCompInstReqCapToExpected(componentInstance1, ComponentTypeEnum.RESOURCE);
776                 // RI-2
777                 ComponentInstanceReqDetails resourceInstanceCplReqDetails = ElementFactory
778                                 .getComponentResourceInstance(resourceDetailsCP_01);
779                 createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
780                                 resourceInstanceCplReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
781                                 ComponentTypeEnum.RESOURCE);
782                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
783                 ComponentInstance componentInstance2 = ResponseParser
784                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
785                 addCompInstReqCapToExpected(componentInstance2, ComponentTypeEnum.RESOURCE);
786                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
787                 // Delete VL instance from CP instance
788                 RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(
789                                 sdncDesignerDetails, resourceInstanceCplReqDetails.getUniqueId(),
790                                 resourceInstanceVlReqDetails.getUniqueId(), ComponentTypeEnum.RESOURCE);
791                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
792                                 deleteResourceInstanceResponse.getErrorCode().intValue());
793                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
794         }
795
796         @Test
797         public void deleteNonExistingInstanceFromVF() throws Exception {
798
799                 ComponentInstanceReqDetails resourceInstanceVlReqDetails = ElementFactory
800                                 .getComponentResourceInstance(resourceDetailsVL_01);
801                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
802                                 resourceInstanceVlReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
803                                 ComponentTypeEnum.RESOURCE);
804                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
805                 ComponentInstance componentInstance1 = ResponseParser
806                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
807                 addCompInstReqCapToExpected(componentInstance1, ComponentTypeEnum.RESOURCE);
808                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
809                 resourceInstanceVlReqDetails.setUniqueId("1234567890");
810                 RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(
811                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), resourceInstanceVlReqDetails.getUniqueId(),
812                                 ComponentTypeEnum.RESOURCE);
813                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
814                                 deleteResourceInstanceResponse.getErrorCode().intValue());
815                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
816         }
817
818         @Test
819         public void deleteCpInstanceFromNonCheckOutVF() throws Exception {
820
821                 ComponentInstanceReqDetails resourceInstanceCpReqDetails = ElementFactory
822                                 .getComponentResourceInstance(resourceDetailsCP_01);
823                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
824                                 resourceInstanceCpReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
825                                 ComponentTypeEnum.RESOURCE);
826                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
827                 ComponentInstance componentInstance1 = ResponseParser
828                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
829                 addCompInstReqCapToExpected(componentInstance1, ComponentTypeEnum.RESOURCE);
830                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
831                 RestResponse checkInResponse = LifecycleRestUtils.changeResourceState(resourceDetailsVF_02, sdncDesignerDetails,
832                                 "0.1", LifeCycleStatesEnum.CHECKIN);
833                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_SUCCESS,
834                                 checkInResponse.getErrorCode().intValue());
835                 resourceDetailsVF_02.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
836                 // Delete Resource instance
837                 RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(
838                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), resourceInstanceCpReqDetails.getUniqueId(),
839                                 ComponentTypeEnum.RESOURCE);
840                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
841                                 deleteResourceInstanceResponse.getErrorCode().intValue());
842                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
843         }
844
845         @Test
846         public void deleteVlInstanceFromNonCheckOutVF() throws Exception {
847
848                 ComponentInstanceReqDetails resourceInstanceVlReqDetails = ElementFactory
849                                 .getComponentResourceInstance(resourceDetailsVL_01);
850                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
851                                 resourceInstanceVlReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
852                                 ComponentTypeEnum.RESOURCE);
853                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
854                 ComponentInstance componentInstance1 = ResponseParser
855                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
856                 addCompInstReqCapToExpected(componentInstance1, ComponentTypeEnum.RESOURCE);
857                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
858                 RestResponse checkInResponse = LifecycleRestUtils.changeResourceState(resourceDetailsVF_02, sdncDesignerDetails,
859                                 "0.1", LifeCycleStatesEnum.CHECKIN);
860                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_SUCCESS,
861                                 checkInResponse.getErrorCode().intValue());
862                 resourceDetailsVF_02.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
863                 // Delete Resource instance
864                 RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(
865                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), resourceInstanceVlReqDetails.getUniqueId(),
866                                 ComponentTypeEnum.RESOURCE);
867                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
868                                 deleteResourceInstanceResponse.getErrorCode().intValue());
869                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
870         }
871
872         @Test
873         public void deleteVfcInstanceFromNonCheckOutVF() throws Exception {
874
875                 ComponentInstanceReqDetails resourceInstanceVfcReqDetails = ElementFactory
876                                 .getComponentResourceInstance(resourceDetailsVFC_01);
877                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
878                                 resourceInstanceVfcReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
879                                 ComponentTypeEnum.RESOURCE);
880                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
881                 ComponentInstance componentInstance1 = ResponseParser
882                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
883                 addCompInstReqCapToExpected(componentInstance1, ComponentTypeEnum.RESOURCE);
884                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
885                 RestResponse checkInResponse = LifecycleRestUtils.changeResourceState(resourceDetailsVF_02, sdncDesignerDetails,
886                                 "0.1", LifeCycleStatesEnum.CHECKIN);
887                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_SUCCESS,
888                                 checkInResponse.getErrorCode().intValue());
889                 resourceDetailsVF_02.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
890                 // Delete Resource instance
891                 RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(
892                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), resourceInstanceVfcReqDetails.getUniqueId(),
893                                 ComponentTypeEnum.RESOURCE);
894                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
895                                 deleteResourceInstanceResponse.getErrorCode().intValue());
896                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
897         }
898
899         @Test
900         public void deleteVlInstance_UserIdIsNonAsdcUser() throws Exception {
901
902                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
903                                 .getComponentResourceInstance(resourceDetailsVL_01);
904                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
905                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
906                                 ComponentTypeEnum.RESOURCE);
907                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
908                 ComponentInstance componentInstance = ResponseParser
909                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
910                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
911                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
912                 // Delete Resource instance by non-ASDC User
913                 User sdncUserDetails = new User();
914                 sdncUserDetails.setUserId("bt4567");
915                 RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(
916                                 sdncUserDetails, resourceDetailsVF_02.getUniqueId(), resourceInstanceReqDetails.getUniqueId(),
917                                 ComponentTypeEnum.RESOURCE);
918                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
919                                 deleteResourceInstanceResponse.getErrorCode().intValue());
920                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
921         }
922
923         @Test
924         public void deleteAlreadyDeletedInstance() throws Exception {
925
926                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
927                                 .getComponentResourceInstance(resourceDetailsVL_01);
928                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
929                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
930                                 ComponentTypeEnum.RESOURCE);
931                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
932                 ComponentInstance componentInstance = ResponseParser
933                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
934                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
935                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
936                 RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(
937                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), resourceInstanceReqDetails.getUniqueId(),
938                                 ComponentTypeEnum.RESOURCE);
939                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_DELETE,
940                                 deleteResourceInstanceResponse.getErrorCode().intValue());
941                 deleteCompInstReqCapFromExpected(componentInstance.getUniqueId());
942                 getComponentAndValidateRIs(resourceDetailsVF_02, 0, 0);
943                 deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(sdncDesignerDetails,
944                                 resourceDetailsVF_02.getUniqueId(), resourceInstanceReqDetails.getUniqueId(),
945                                 ComponentTypeEnum.RESOURCE);
946                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
947                                 deleteResourceInstanceResponse.getErrorCode().intValue());
948         }
949
950         @Test
951         public void reCreateDeletedInstance() throws Exception {
952
953                 // 2 Instances
954                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
955                                 .getComponentResourceInstance(resourceDetailsVFC_01);
956                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
957                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
958                                 ComponentTypeEnum.RESOURCE);
959                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
960                 String instanceNormalizedName = ResponseParser
961                                 .getValueFromJsonResponse(createResourceInstanceResponse.getResponse(), "normalizedName");
962                 String instanceName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(),
963                                 "name");
964                 ComponentInstance componentInstance = ResponseParser
965                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
966                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
967                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
968                                 (resourceDetailsVFC_01.getName() + "1").toLowerCase(), instanceNormalizedName);
969                 AssertJUnit.assertEquals("check Resource Instance Name ", (resourceDetailsVFC_01.getName() + " 1"),
970                                 instanceName);
971                 createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetails,
972                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), ComponentTypeEnum.RESOURCE);
973                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
974                 instanceNormalizedName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(),
975                                 "normalizedName");
976                 instanceName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(), "name");
977                 componentInstance = ResponseParser.parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(),
978                                 ComponentInstance.class);
979                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
980                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
981                                 (resourceDetailsVFC_01.getName() + "2").toLowerCase(), instanceNormalizedName);
982                 AssertJUnit.assertEquals("check Resource Instance normalizedName ", (resourceDetailsVFC_01.getName() + " 2"),
983                                 instanceName);
984                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
985                 // Delete one instance
986                 RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(
987                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), resourceInstanceReqDetails.getUniqueId(),
988                                 ComponentTypeEnum.RESOURCE);
989                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_DELETE,
990                                 deleteResourceInstanceResponse.getErrorCode().intValue());
991                 deleteCompInstReqCapFromExpected(componentInstance.getUniqueId());
992                 // Create same instance again
993                 createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetails,
994                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), ComponentTypeEnum.RESOURCE);
995                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
996                 instanceNormalizedName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(),
997                                 "normalizedName");
998                 instanceName = ResponseParser.getValueFromJsonResponse(createResourceInstanceResponse.getResponse(), "name");
999                 componentInstance = ResponseParser.parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(),
1000                                 ComponentInstance.class);
1001                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1002                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
1003                                 (resourceDetailsVFC_01.getName() + "3").toLowerCase(), instanceNormalizedName);
1004                 AssertJUnit.assertEquals("check Resource Instance Name ", (resourceDetailsVFC_01.getName() + " 3"),
1005                                 instanceName);
1006
1007         }
1008
1009         // Update
1010         @Test
1011         public void updateVfcInstanceNameByDesigner() throws Exception {
1012
1013                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1014                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1015                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1016                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1017                                 ComponentTypeEnum.RESOURCE);
1018                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1019                 ComponentInstance componentInstance = ResponseParser
1020                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1021                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1022                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1023                 vfcResourceInstanceReqDetails.setName("abcd");
1024                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1025                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1026                                 ComponentTypeEnum.RESOURCE);
1027                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1028                 String resourceNameFromJsonResponse = ResponseParser.getNameFromResponse(updateResourceInstanceResponse);
1029                 AssertJUnit.assertEquals(resourceNameFromJsonResponse, vfcResourceInstanceReqDetails.getName());
1030                 String riNormalizedName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(),
1031                                 "normalizedName");
1032                 String riName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "name");
1033                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riNormalizedName, "abcd");
1034                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riName, "abcd");
1035         }
1036
1037         @Test
1038         public void updateVfcInstanceNameByAdmin() throws Exception {
1039                 User user = sdncAdminDetails;
1040                 createVF(resourceDetailsVF_01, user);
1041                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1042                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1043                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1044                                 vfcResourceInstanceReqDetails, sdncAdminDetails, resourceDetailsVF_01.getUniqueId(),
1045                                 ComponentTypeEnum.RESOURCE);
1046                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1047                 ComponentInstance componentInstance = ResponseParser
1048                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1049                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1050                 getComponentAndValidateRIs(resourceDetailsVF_01, 1, 0);
1051                 vfcResourceInstanceReqDetails.setName("ABCD E");
1052                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1053                                 vfcResourceInstanceReqDetails, sdncAdminDetails, resourceDetailsVF_01.getUniqueId(),
1054                                 ComponentTypeEnum.RESOURCE);
1055                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1056                 String resourceNameFromJsonResponse = ResponseParser.getNameFromResponse(updateResourceInstanceResponse);
1057                 AssertJUnit.assertEquals(resourceNameFromJsonResponse, vfcResourceInstanceReqDetails.getName());
1058                 String riNormalizedName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(),
1059                                 "normalizedName");
1060                 String riName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "name");
1061                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riNormalizedName, "abcde");
1062                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riName, "ABCD E");
1063         }
1064
1065         @Test
1066         public void updateInstanceNameAllowedCharacters() throws Exception {
1067                 // Allowed characters: Alphanumeric (a-zA-Z0-9), space (' '), underscore
1068                 // ('_'), dash ('-'), dot ('.'))
1069
1070                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1071                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1072                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1073                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1074                                 ComponentTypeEnum.RESOURCE);
1075                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1076                 ComponentInstance componentInstance = ResponseParser
1077                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1078                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1079                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1080                 vfcResourceInstanceReqDetails.setName("Abcd_1234567890-qwert-yuiop.zxcvb");
1081                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1082                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1083                                 ComponentTypeEnum.RESOURCE);
1084                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1085                 String resourceNameFromJsonResponse = ResponseParser.getNameFromResponse(updateResourceInstanceResponse);
1086                 AssertJUnit.assertEquals(resourceNameFromJsonResponse, vfcResourceInstanceReqDetails.getName());
1087                 String riNormalizedName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(),
1088                                 "normalizedName");
1089                 String riName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "name");
1090                 // assertEquals("Check if RI normalizedName is correct ",
1091                 // riNormalizedName, "abcd_1234567890-qwert-yuiop.zxcv" );
1092                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riName, "Abcd_1234567890-qwert-yuiop.zxcvb");
1093                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riNormalizedName,
1094                                 "abcd1234567890qwertyuiopzxcvb");
1095
1096         }
1097
1098         @Test
1099         public void updateVfcInstanceNameEmpty() throws Exception {
1100                 // see US534663 In case a designer removes the current resource instance
1101                 // name then BE has to generate again the "default" resource instance
1102                 // name
1103
1104                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1105                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1106                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1107                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1108                                 ComponentTypeEnum.RESOURCE);
1109                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1110                 ComponentInstance componentInstance = ResponseParser
1111                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1112                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1113                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1114                 String newName = "";
1115                 vfcResourceInstanceReqDetails.setName(newName);
1116                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1117                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1118                                 ComponentTypeEnum.RESOURCE);
1119                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1120                 String instanceNormalizedName = ResponseParser
1121                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "normalizedName");
1122                 String instanceName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(),
1123                                 "name");
1124                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
1125                                 (resourceDetailsVFC_01.getName() + "2").toLowerCase(), instanceNormalizedName);
1126                 AssertJUnit.assertEquals("check Resource Instance normalizedName ", (resourceDetailsVFC_01.getName() + " 2"),
1127                                 instanceName);
1128         }
1129
1130         @Test
1131         public void updateVfcInstanceNameNull() throws Exception {
1132                 // see US534663 In case a designer removes the current resource instance
1133                 // name then BE has to generate again the "default" resource instance
1134                 // name
1135
1136                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1137                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1138                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1139                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1140                                 ComponentTypeEnum.RESOURCE);
1141                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1142                 ComponentInstance componentInstance = ResponseParser
1143                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1144                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1145                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1146                 String newName = null;
1147                 vfcResourceInstanceReqDetails.setName(newName);
1148                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1149                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1150                                 ComponentTypeEnum.RESOURCE);
1151                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1152                 final String updateResponse = updateResourceInstanceResponse.getResponse();
1153                 String instanceNormalizedName = ResponseParser.getValueFromJsonResponse(updateResponse, "normalizedName");
1154                 String instanceName = ResponseParser.getValueFromJsonResponse(updateResponse, "name");
1155                 AssertJUnit.assertEquals("check Resource Instance normalizedName ",
1156                                 (resourceDetailsVFC_01.getName() + "2").toLowerCase(), instanceNormalizedName);
1157                 AssertJUnit.assertEquals("check Resource Instance normalizedName ", (resourceDetailsVFC_01.getName() + " 2"),
1158                                 instanceName);
1159         }
1160
1161         @Test
1162         public void updateCpInstanceName() throws Exception {
1163
1164                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1165                                 .getComponentResourceInstance(resourceDetailsCP_01);
1166                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1167                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1168                                 ComponentTypeEnum.RESOURCE);
1169                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1170                 ComponentInstance componentInstance = ResponseParser
1171                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1172                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1173                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1174                 vfcResourceInstanceReqDetails.setName("AbcD");
1175                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1176                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1177                                 ComponentTypeEnum.RESOURCE);
1178                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1179                 String resourceNameFromJsonResponse = ResponseParser.getNameFromResponse(updateResourceInstanceResponse);
1180                 AssertJUnit.assertEquals(resourceNameFromJsonResponse, vfcResourceInstanceReqDetails.getName());
1181                 String riNormalizedName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(),
1182                                 "normalizedName");
1183                 String riName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "name");
1184                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riNormalizedName, "abcd");
1185                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riName, "AbcD");
1186         }
1187
1188         @Test
1189         public void updateVlInstanceName() throws Exception {
1190
1191                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1192                                 .getComponentResourceInstance(resourceDetailsVL_01);
1193                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1194                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1195                                 ComponentTypeEnum.RESOURCE);
1196                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1197                 ComponentInstance componentInstance = ResponseParser
1198                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1199                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1200                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1201                 vfcResourceInstanceReqDetails.setName("ABCD");
1202                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1203                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1204                                 ComponentTypeEnum.RESOURCE);
1205                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1206                 String resourceNameFromJsonResponse = ResponseParser.getNameFromResponse(updateResourceInstanceResponse);
1207                 AssertJUnit.assertEquals(resourceNameFromJsonResponse, vfcResourceInstanceReqDetails.getName());
1208                 String riNormalizedName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(),
1209                                 "normalizedName");
1210                 String riName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "name");
1211                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riNormalizedName, "abcd");
1212                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riName, "ABCD");
1213         }
1214
1215         @Test
1216         public void updateInstanceNameToArleadyExistInstanceName02() throws Exception {
1217
1218                 // Create VFC instance
1219                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1220                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1221                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1222                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1223                                 ComponentTypeEnum.RESOURCE);
1224                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1225                 ComponentInstance vfcComponentInstance = ResponseParser
1226                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1227                 addCompInstReqCapToExpected(vfcComponentInstance, ComponentTypeEnum.RESOURCE);
1228                 // Create CP instance
1229                 ComponentInstanceReqDetails cpResourceInstanceReqDetails = ElementFactory
1230                                 .getComponentResourceInstance(resourceDetailsCP_01);
1231                 createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1232                                 cpResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1233                                 ComponentTypeEnum.RESOURCE);
1234                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1235                 ComponentInstance cpComponentInstance = ResponseParser
1236                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1237                 addCompInstReqCapToExpected(cpComponentInstance, ComponentTypeEnum.RESOURCE);
1238                 getComponentAndValidateRIs(resourceDetailsVF_02, 2, 0);
1239                 cpResourceInstanceReqDetails.setName(vfcComponentInstance.getName());
1240                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1241                                 cpResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1242                                 ComponentTypeEnum.RESOURCE);
1243                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_ALREADY_EXISTS,
1244                                 updateResourceInstanceResponse.getErrorCode().intValue());
1245         }
1246
1247         @Test
1248         public void updateInstanceNameMaxLength() throws Exception {
1249
1250                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1251                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1252                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1253                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1254                                 ComponentTypeEnum.RESOURCE);
1255                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1256                 ComponentInstance componentInstance = ResponseParser
1257                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1258                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1259                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1260                 String newName = "Qwertyuiop1234567890asdfAhjklzxcvbnmasdfghjkl12345";
1261                 vfcResourceInstanceReqDetails.setName(newName);
1262                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1263                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1264                                 ComponentTypeEnum.RESOURCE);
1265                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1266                 String resourceNameFromJsonResponse = ResponseParser.getNameFromResponse(updateResourceInstanceResponse);
1267                 AssertJUnit.assertEquals(resourceNameFromJsonResponse, vfcResourceInstanceReqDetails.getName());
1268                 String riNormalizedName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(),
1269                                 "normalizedName");
1270                 String riName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "name");
1271                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riNormalizedName, newName.toLowerCase());
1272                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riName, newName);
1273         }
1274
1275         @Test
1276         public void updateInstanceNameExceedMaxLength() throws Exception {
1277
1278                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1279                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1280                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1281                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1282                                 ComponentTypeEnum.RESOURCE);
1283                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1284                 ComponentInstance componentInstance = ResponseParser
1285                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1286                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1287                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1288                 String newName = "Qwertyuiop1234567890asdfAhjklzxcvbnmasdfghjkl123456";
1289                 vfcResourceInstanceReqDetails.setName(newName);
1290                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1291                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1292                                 ComponentTypeEnum.RESOURCE);
1293                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_COMPONENT_NAME_EXCEEDS_LIMIT,
1294                                 updateResourceInstanceResponse.getErrorCode().intValue());
1295                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1296         }
1297
1298         @Test
1299         public void updateCpInstanceCheckedByOtherUser() throws Exception {
1300
1301                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
1302                                 .getComponentResourceInstance(resourceDetailsVL_01);
1303                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1304                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1305                                 ComponentTypeEnum.RESOURCE);
1306                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1307                 ComponentInstance componentInstance = ResponseParser
1308                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1309                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1310                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1311                 String newName = "Qwertyuiop1234567890";
1312                 resourceInstanceReqDetails.setName(newName);
1313                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1314                                 resourceInstanceReqDetails, sdncAdminDetails, resourceDetailsVF_02.getUniqueId(),
1315                                 ComponentTypeEnum.RESOURCE);
1316                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
1317                                 updateResourceInstanceResponse.getErrorCode().intValue());
1318                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1319         }
1320
1321         @Test
1322         public void UpdateVfcInstance_UserIdIsNonAsdcUser() throws Exception {
1323
1324                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
1325                                 .getComponentResourceInstance(resourceDetailsVL_01);
1326                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1327                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1328                                 ComponentTypeEnum.RESOURCE);
1329                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1330                 ComponentInstance componentInstance = ResponseParser
1331                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1332                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1333                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1334                 String newName = "Qwertyuiop1234567890";
1335                 resourceInstanceReqDetails.setName(newName);
1336                 User nonSdncUserDetails = new User();
1337                 nonSdncUserDetails.setUserId("bt4567");
1338                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1339                                 resourceInstanceReqDetails, nonSdncUserDetails, resourceDetailsVF_02.getUniqueId(),
1340                                 ComponentTypeEnum.RESOURCE);
1341                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_RESTRICTED_OPERATION,
1342                                 updateResourceInstanceResponse.getErrorCode().intValue());
1343                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1344         }
1345
1346         @Test
1347         public void UpdateResourceInstanceFormNonExistingVF() throws Exception {
1348
1349                 ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory
1350                                 .getComponentResourceInstance(resourceDetailsVL_01);
1351                 // LifecycleRestUtils.changeResourceState(resourceDetailsVL_01,
1352                 // sdncAdminDetails, "0.1", LifeCycleStatesEnum.CHECKIN);
1353                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1354                                 resourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1355                                 ComponentTypeEnum.RESOURCE);
1356                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1357                 ComponentInstance componentInstance = ResponseParser
1358                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1359                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1360                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1361                 String newName = "Qwertyuiop1234567890";
1362                 resourceInstanceReqDetails.setName(newName);
1363                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1364                                 resourceInstanceReqDetails, sdncDesignerDetails, "blablabla", ComponentTypeEnum.RESOURCE);
1365                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
1366                                 updateResourceInstanceResponse.getErrorCode().intValue());
1367         }
1368
1369         @Test
1370         public void updateNonExistingInstanceFromVF() throws Exception {
1371
1372                 ComponentInstanceReqDetails resourceInstanceVlReqDetails = ElementFactory
1373                                 .getComponentResourceInstance(resourceDetailsVL_01);
1374                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1375                                 resourceInstanceVlReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1376                                 ComponentTypeEnum.RESOURCE);
1377                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1378                 ComponentInstance componentInstance1 = ResponseParser
1379                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1380                 addCompInstReqCapToExpected(componentInstance1, ComponentTypeEnum.RESOURCE);
1381                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1382                 resourceInstanceVlReqDetails.setUniqueId("1234567890");
1383                 // String newName= "Qwertyuiop1234567890";
1384                 // resourceInstanceVlReqDetails.setName(newName);
1385                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1386                                 resourceInstanceVlReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1387                                 ComponentTypeEnum.RESOURCE);
1388                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
1389                                 updateResourceInstanceResponse.getErrorCode().intValue());
1390         }
1391
1392         // Update
1393         @Test
1394         public void updateVfcInstanceNameAsVfName() throws Exception {
1395
1396                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1397                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1398                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1399                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1400                                 ComponentTypeEnum.RESOURCE);
1401                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1402                 ComponentInstance componentInstance = ResponseParser
1403                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1404                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1405                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1406                 vfcResourceInstanceReqDetails.setName(resourceDetailsVF_02.getName());
1407                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1408                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1409                                 ComponentTypeEnum.RESOURCE);
1410                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1411                 String resourceNameFromJsonResponse = ResponseParser.getNameFromResponse(updateResourceInstanceResponse);
1412                 AssertJUnit.assertEquals(resourceNameFromJsonResponse, vfcResourceInstanceReqDetails.getName());
1413                 String riNormalizedName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(),
1414                                 "normalizedName");
1415                 String riName = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "name");
1416                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riNormalizedName,
1417                                 resourceDetailsVF_02.getName().toLowerCase());
1418                 AssertJUnit.assertEquals("Check if RI normalizedName is correct ", riName, resourceDetailsVF_02.getName());
1419         }
1420
1421         @Test
1422         public void updateInstanceNameInvalidCharacters() throws Exception {
1423                 char invalidChars[] = { '~', '!', '$', '%', '^', '*', '(', ')', '"', '{', '}', '[', ']', '?', '>', '<', '/',
1424                                 '|', '\\', ',' };
1425
1426                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1427                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1428                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1429                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1430                                 ComponentTypeEnum.RESOURCE);
1431                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1432                 String newName = "Abcd1";
1433                 String updateName;
1434                 for (int i = 0; i < invalidChars.length; i++) {
1435                         updateName = newName + invalidChars[i];
1436                         vfcResourceInstanceReqDetails.setName(updateName);
1437                         RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1438                                         vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1439                                         ComponentTypeEnum.RESOURCE);
1440                         AssertJUnit.assertEquals("Check response code ", STATUS_CODE_INVALID_CONTENT,
1441                                         updateResourceInstanceResponse.getErrorCode().intValue());
1442                 }
1443         }
1444
1445         // Update Position
1446         @Test
1447         public void updateVfcInstancePosition() throws Exception {
1448
1449                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1450                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1451                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1452                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1453                                 ComponentTypeEnum.RESOURCE);
1454                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1455                 ComponentInstance componentInstance = ResponseParser
1456                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1457                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1458                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1459                 String updatePosX = "130";
1460                 String updatePosY = "180";
1461                 vfcResourceInstanceReqDetails.setPosX(updatePosX);
1462                 vfcResourceInstanceReqDetails.setPosY(updatePosY);
1463                 vfcResourceInstanceReqDetails.setName(null);
1464                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1465                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1466                                 ComponentTypeEnum.RESOURCE);
1467                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1468                 String posXFromJsonResponse = ResponseParser
1469                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "posX");
1470                 String posYFromJsonResponse = ResponseParser
1471                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "posY");
1472                 AssertJUnit.assertEquals(posXFromJsonResponse, updatePosX);
1473                 AssertJUnit.assertEquals(posYFromJsonResponse, updatePosY);
1474         }
1475
1476         @Test
1477         public void updateVlInstancePosition() throws Exception {
1478
1479                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1480                                 .getComponentResourceInstance(resourceDetailsVL_01);
1481                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1482                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1483                                 ComponentTypeEnum.RESOURCE);
1484                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1485                 ComponentInstance componentInstance = ResponseParser
1486                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1487                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1488                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1489                 String updatePosX = "130";
1490                 String updatePosY = "180";
1491                 vfcResourceInstanceReqDetails.setPosX(updatePosX);
1492                 vfcResourceInstanceReqDetails.setPosY(updatePosY);
1493                 vfcResourceInstanceReqDetails.setName(null);
1494                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1495                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1496                                 ComponentTypeEnum.RESOURCE);
1497                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1498                 String posXFromJsonResponse = ResponseParser
1499                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "posX");
1500                 String posYFromJsonResponse = ResponseParser
1501                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "posY");
1502                 AssertJUnit.assertEquals(posXFromJsonResponse, updatePosX);
1503                 AssertJUnit.assertEquals(posYFromJsonResponse, updatePosY);
1504         }
1505
1506         @Test
1507         public void updateCpInstancePosition() throws Exception {
1508
1509                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1510                                 .getComponentResourceInstance(resourceDetailsCP_01);
1511                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1512                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1513                                 ComponentTypeEnum.RESOURCE);
1514                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1515                 ComponentInstance componentInstance = ResponseParser
1516                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1517                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1518                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1519                 String updatePosX = "130";
1520                 String updatePosY = "180";
1521                 vfcResourceInstanceReqDetails.setPosX(updatePosX);
1522                 vfcResourceInstanceReqDetails.setPosY(updatePosY);
1523                 vfcResourceInstanceReqDetails.setName(null);
1524                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1525                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1526                                 ComponentTypeEnum.RESOURCE);
1527                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1528                 String posXFromJsonResponse = ResponseParser
1529                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "posX");
1530                 String posYFromJsonResponse = ResponseParser
1531                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "posY");
1532                 AssertJUnit.assertEquals(posXFromJsonResponse, updatePosX);
1533                 AssertJUnit.assertEquals(posYFromJsonResponse, updatePosY);
1534         }
1535
1536         @Test
1537         public void updateInstancePositionNegativePosition() throws Exception {
1538
1539                 ComponentInstanceReqDetails cpResourceInstanceReqDetails = ElementFactory
1540                                 .getComponentResourceInstance(resourceDetailsCP_01);
1541                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1542                                 cpResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1543                                 ComponentTypeEnum.RESOURCE);
1544                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1545                 ComponentInstance componentInstance = ResponseParser
1546                                 .parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
1547                 addCompInstReqCapToExpected(componentInstance, ComponentTypeEnum.RESOURCE);
1548                 getComponentAndValidateRIs(resourceDetailsVF_02, 1, 0);
1549                 String updatePosX = "-100";
1550                 String updatePosY = "-100";
1551                 cpResourceInstanceReqDetails.setPosX(updatePosX);
1552                 cpResourceInstanceReqDetails.setPosY(updatePosY);
1553                 cpResourceInstanceReqDetails.setName(null);
1554                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1555                                 cpResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1556                                 ComponentTypeEnum.RESOURCE);
1557                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1558                 String posXFromJsonResponse = ResponseParser
1559                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "posX");
1560                 String posYFromJsonResponse = ResponseParser
1561                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "posY");
1562                 AssertJUnit.assertEquals(posXFromJsonResponse, updatePosX);
1563                 AssertJUnit.assertEquals(posYFromJsonResponse, updatePosY);
1564         }
1565
1566         @Test
1567         public void updateInstancesPositionSameLocationForBothInstances() throws Exception {
1568
1569                 ComponentInstanceReqDetails cpResourceInstanceReqDetails = ElementFactory
1570                                 .getComponentResourceInstance(resourceDetailsCP_01);
1571                 RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1572                                 cpResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1573                                 ComponentTypeEnum.RESOURCE);
1574                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1575                 ComponentInstanceReqDetails vfcResourceInstanceReqDetails = ElementFactory
1576                                 .getComponentResourceInstance(resourceDetailsVFC_01);
1577                 createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(
1578                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1579                                 ComponentTypeEnum.RESOURCE);
1580                 ResourceRestUtils.checkCreateResponse(createResourceInstanceResponse);
1581                 String updatePosX = "100";
1582                 String updatePosY = "500";
1583                 vfcResourceInstanceReqDetails.setPosX(updatePosX);
1584                 vfcResourceInstanceReqDetails.setPosY(updatePosY);
1585                 vfcResourceInstanceReqDetails.setName(null);
1586                 cpResourceInstanceReqDetails.setPosX(updatePosX);
1587                 cpResourceInstanceReqDetails.setPosY(updatePosY);
1588                 cpResourceInstanceReqDetails.setName(null);
1589                 RestResponse updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1590                                 vfcResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1591                                 ComponentTypeEnum.RESOURCE);
1592                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1593                 String posXFromJsonResponse = ResponseParser
1594                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "posX");
1595                 String posYFromJsonResponse = ResponseParser
1596                                 .getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(), "posY");
1597                 AssertJUnit.assertEquals(posXFromJsonResponse, updatePosX);
1598                 AssertJUnit.assertEquals(posYFromJsonResponse, updatePosY);
1599                 updateResourceInstanceResponse = ComponentInstanceRestUtils.updateComponentInstance(
1600                                 cpResourceInstanceReqDetails, sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(),
1601                                 ComponentTypeEnum.RESOURCE);
1602                 ResourceRestUtils.checkSuccess(updateResourceInstanceResponse);
1603                 posXFromJsonResponse = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(),
1604                                 "posX");
1605                 posYFromJsonResponse = ResponseParser.getValueFromJsonResponse(updateResourceInstanceResponse.getResponse(),
1606                                 "posY");
1607                 AssertJUnit.assertEquals(posXFromJsonResponse, updatePosX);
1608                 AssertJUnit.assertEquals(posYFromJsonResponse, updatePosY);
1609         }
1610
1611         @Test
1612         public void createAllAtomicInstancesTestGetReqCapAPI_suc() throws Exception {
1613
1614                 // Add to VF resource VFC, CP and VL instances
1615                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
1616                                 resourceDetailsVL_01, sdncDesignerDetails);
1617                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1618                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsCP_01,
1619                                 sdncDesignerDetails);
1620                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1621                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsVFC_01,
1622                                 sdncDesignerDetails);
1623                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1624
1625                 getVfResourceReqCapUsingAPI(3, 0, sdncDesignerDetails);
1626
1627         }
1628
1629         // END of Update
1630
1631         @Test
1632         public void createAllAtomicInstancesTestGetReqCapAPIfailed() throws Exception {
1633
1634                 // Add to VF resource VFC, CP and VL instances
1635                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
1636                                 resourceDetailsVL_01, sdncDesignerDetails);
1637                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1638                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsCP_01,
1639                                 sdncDesignerDetails);
1640                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1641                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsVFC_01,
1642                                 sdncDesignerDetails);
1643                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1644                 resourceDetailsVF_02.setUniqueId("dummy");
1645                 RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncAdminDetails,
1646                                 resourceDetailsVF_02);
1647                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_NOT_FOUND,
1648                                 getResourceResponse.getErrorCode().intValue());
1649
1650         }
1651
1652         @Test
1653         public void associateInVF() throws Exception {
1654
1655                 ResourceReqDetails resourceDetailsReq = ElementFactory.getDefaultResourceByType("SoftCompRouter",
1656                                 NormativeTypesEnum.SOFTWARE_COMPONENT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS,
1657                                 sdncDesignerDetails.getUserId(), ResourceTypeEnum.VFC); // resourceType
1658                                                                                                                                                 // = VFC
1659                 ResourceReqDetails resourceDetailsCap = ElementFactory.getDefaultResourceByType("MyComput",
1660                                 NormativeTypesEnum.COMPUTE, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, sdncDesignerDetails.getUserId(),
1661                                 ResourceTypeEnum.VFC); // resourceType = VFC
1662                 createAtomicResource(resourceDetailsReq);
1663                 LifecycleRestUtils.changeResourceState(resourceDetailsReq, sdncAdminDetails, "0.1",
1664                                 LifeCycleStatesEnum.CHECKIN);
1665                 createAtomicResource(resourceDetailsCap);
1666                 LifecycleRestUtils.changeResourceState(resourceDetailsCap, sdncAdminDetails, "0.1",
1667                                 LifeCycleStatesEnum.CHECKIN);
1668
1669                 RestResponse riReqR = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsReq, sdncDesignerDetails);
1670                 ResourceRestUtils.checkCreateResponse(riReqR);
1671                 RestResponse riCapR = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsCap, sdncDesignerDetails);
1672                 ResourceRestUtils.checkCreateResponse(riCapR);
1673
1674                 ComponentInstance riReq = ResponseParser.parseToObject(riReqR.getResponse(), ComponentInstance.class);
1675                 ComponentInstance riCap = ResponseParser.parseToObject(riCapR.getResponse(), ComponentInstance.class);
1676
1677                 RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails,
1678                                 resourceDetailsVF_02);
1679
1680                 CapReqDef capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
1681
1682                 List<CapabilityDefinition> capList = capReqDef.getCapabilities().get("tosca.capabilities.Container");
1683                 List<RequirementDefinition> reqList = capReqDef.getRequirements().get("tosca.capabilities.Container");
1684
1685                 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
1686                 requirementDef.setFromNode(riReq.getUniqueId());
1687                 requirementDef.setToNode(riCap.getUniqueId());
1688
1689                 RequirementAndRelationshipPair pair = new RequirementAndRelationshipPair();
1690                 pair.setRequirementOwnerId(riReq.getUniqueId());
1691                 pair.setCapabilityOwnerId(riCap.getUniqueId());
1692                 pair.setRequirement("host");
1693                 RelationshipImpl relationship = new RelationshipImpl();
1694                 relationship.setType("tosca.capabilities.Container");
1695                 pair.setRelationships(relationship);
1696                 pair.setCapabilityUid(capList.get(0).getUniqueId());
1697                 pair.setRequirementUid(reqList.get(0).getUniqueId());
1698                 List<RequirementAndRelationshipPair> relationships = new ArrayList<>();
1699                 relationships.add(pair);
1700                 requirementDef.setRelationships(relationships);
1701
1702                 RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef,
1703                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), ComponentTypeEnum.RESOURCE);
1704                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_SUCCESS,
1705                                 associateInstances.getErrorCode().intValue());
1706
1707                 getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails,
1708                                 resourceDetailsVF_02);
1709                 capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
1710
1711                 List<RequirementDefinition> list = capReqDef.getRequirements().get("tosca.capabilities.Container");
1712                 AssertJUnit.assertEquals("Check requirement", null, list);
1713
1714                 RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef,
1715                                 sdncDesignerDetails, resourceDetailsVF_02.getUniqueId(), ComponentTypeEnum.RESOURCE);
1716                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_SUCCESS,
1717                                 dissociateInstances.getErrorCode().intValue());
1718
1719                 getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails,
1720                                 resourceDetailsVF_02);
1721                 capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
1722
1723                 list = capReqDef.getRequirements().get("tosca.capabilities.Container");
1724                 AssertJUnit.assertEquals("Check requirement", 1, list.size());
1725
1726         }
1727
1728         @Test
1729         public void testUnsatisfiedCpReqInVF() throws Exception {
1730
1731                 // Certify all the needed atomic resources
1732                 RestResponse response = LifecycleRestUtils.certifyResource(resourceDetailsVFC_02);
1733                 ResourceRestUtils.checkSuccess(response);
1734                 response = LifecycleRestUtils.certifyResource(resourceDetailsCP_01);
1735                 ResourceRestUtils.checkSuccess(response);
1736
1737                 ArtifactReqDetails heatArtifactDetails = ElementFactory
1738                                 .getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
1739                 response = ArtifactRestUtils.addInformationalArtifactToResource(heatArtifactDetails, sdncDesignerDetails,
1740                                 resourceDetailsVF_02.getUniqueId());
1741                 ResourceRestUtils.checkSuccess(response);
1742
1743                 RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02,
1744                                 resourceDetailsCP_01, sdncDesignerDetails);
1745                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1746                 String compInstName = ResponseParser.getNameFromResponse(createAtomicResourceInstance);
1747                 String cpCompInstId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
1748
1749                 RestResponse submitForTesting = LifecycleRestUtils.changeResourceState(resourceDetailsVF_02,
1750                                 sdncDesignerDetails, LifeCycleStatesEnum.CERTIFICATIONREQUEST);
1751                 String[] variables = new String[] { resourceDetailsVF_02.getName(), "VF", "CP (Connection Point)", compInstName,
1752                                 "requirement", "tosca.capabilities.network.Bindable", "fulfilled" };
1753                 BaseValidationUtils.checkErrorResponse(submitForTesting,
1754                                 ActionStatus.REQ_CAP_NOT_SATISFIED_BEFORE_CERTIFICATION, variables);
1755
1756                 createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsVF_02, resourceDetailsVFC_02,
1757                                 sdncDesignerDetails);
1758                 ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
1759                 String computeCompInstId = ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
1760                 fulfillCpRequirement(resourceDetailsVF_02, cpCompInstId, computeCompInstId, computeCompInstId,
1761                                 sdncDesignerDetails, ComponentTypeEnum.RESOURCE);
1762
1763                 submitForTesting = LifecycleRestUtils.changeResourceState(resourceDetailsVF_02, sdncDesignerDetails,
1764                                 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
1765                 BaseValidationUtils.checkSuccess(submitForTesting);
1766         }
1767
1768         private void getVfResourceReqCapUsingAPI(int numberOfRIs, int numberOfRelations, User user)
1769                         throws IOException, Exception {
1770                 RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncAdminDetails,
1771                                 resourceDetailsVF_02);
1772                 AssertJUnit.assertEquals("Check response code ", STATUS_CODE_SUCCESS,
1773                                 getResourceResponse.getErrorCode().intValue());
1774                 // ResourceValidationUtils.validateResp(getResourceResponse,
1775                 // resourceRespJavaObject);
1776                 // int numberOfActualRIs = resource.getComponentInstances()!=null ?
1777                 // resource.getComponentInstances().size() : 0;
1778                 // int numberOfActualRelations =
1779                 // resource.getComponentInstancesRelations()!=null ?
1780                 // resource.getComponentInstancesRelations().size() : 0;
1781                 // assertEquals("Check number of RIs meet the expected number",
1782                 // numberOfRIs ,numberOfActualRIs);
1783                 // assertEquals("Check number of RI relations meet the expected number",
1784                 // numberOfRelations ,numberOfActualRelations);
1785
1786                 //// get VF actual Capabilities and Requirements and validate according
1787                 //// to expected
1788                 Resource vfResource = ResponseParser.parseToObjectUsingMapper(getResourceResponse.getResponse(),
1789                                 Resource.class);
1790                 verifyReqCap(vfResource);
1791         }
1792 }