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