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