update sdc to version 1.3.2
[sdc.git] / openecomp-be / backend / openecomp-sdc-vendor-software-product-manager / src / test / java / org / openecomp / sdc / vendorsoftwareproduct / DeploymentFlavorTest.java
1 package org.openecomp.sdc.vendorsoftwareproduct;
2
3 public class DeploymentFlavorTest {
4   /*private static final String USER1 = "deploymentTestUser1";
5   private static final String USER2 = "deploymentTestUser2";
6   private static final Version VERSION01 = new Version(0, 1);
7   private static final VendorSoftwareProductManager vendorSoftwareProductManager =
8       new VendorSoftwareProductManagerImpl();
9   private static final VendorSoftwareProductDao vendorSoftwareProductDao =
10       VendorSoftwareProductDaoFactory.getInstance().createInterface();
11
12   private static String vsp1Id;
13   private static String vsp2Id;
14   private static String vsp3Id;
15   private static String component11Id;
16   private static String component21Id;
17   private static String deployment1Id = "deployment1";
18   private static String deployment2Id = "deployment2";
19
20   @BeforeClass
21   private void init() {
22     List<String> featureGroups = new ArrayList<>();
23     featureGroups.add("fg01");
24     featureGroups.add("fg02");
25     vsp1Id = vendorSoftwareProductManager.createNewVsp(VSPCommon
26         .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp1", "vendorName1",
27             "vlm1Id", "icon", "category", "subCategory", "123", featureGroups,
28             VSPCommon.OnboardingMethod.
29                 Manual.name()), USER1).getId();
30     component11Id = ComponentsTest.createComponent(vsp1Id, VERSION01, "component11").getId();
31
32     vsp2Id = vendorSoftwareProductManager.createNewVsp(VSPCommon
33         .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp2", "vendorName1",
34             "vlm1Id", "icon", "category", "subCategory", "123", null,
35             VSPCommon.OnboardingMethod.Manual.name()), USER1).getId();
36     component21Id = ComponentsTest.createComponent(vsp2Id, VERSION01, "component21").getId();
37
38     vsp3Id = vendorSoftwareProductManager.createNewVsp(VSPCommon
39         .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp3forDeployment",
40             "vendorName1",
41             "vlm1Id", "icon", "category", "subCategory", "123", null,
42             VSPCommon.OnboardingMethod.HEAT.name()), USER1).getId();
43   }
44
45     static DeploymentFlavorEntity createDeploymentFlavor(String vspId, Version version, String deploymentFlavorId) {
46         DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vspId, version, deploymentFlavorId);
47         DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
48         deploymentFlavor.setModel(deploymentFlavorId + " name");
49         deploymentFlavor.setDescription(deploymentFlavorId + " desc");
50         deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
51         DeploymentFlavorEntity createdDeployment = vendorSoftwareProductManager
52                 .createDeploymentFlavor(deploymentFlavorEntity, USER1);
53         deployment2Id = createdDeployment.getId();
54         return deploymentFlavorEntity;
55     }
56
57   @Test
58   public void testCreate() {
59     DeploymentFlavorEntity deploymentFlavorEntity =
60         new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
61     DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
62     deploymentFlavor.setModel("TestDeploymentcreatewithoutFG");
63     deploymentFlavor.setDescription("creating a deployment flavor without any FG and any " +
64         "association");
65     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
66     DeploymentFlavorEntity createddeployment = vendorSoftwareProductManager.createDeploymentFlavor
67         (deploymentFlavorEntity, USER1);
68     Assert.assertEquals((createddeployment.getId() != null), true);
69     deployment1Id = createddeployment.getId();
70   }
71
72   @Test(dependsOnMethods = "testCreate")
73   public void testUniqueModelCreate() {
74     DeploymentFlavorEntity deploymentFlavorEntity =
75         new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
76     DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
77     deploymentFlavor.setModel("TestDeploymentcreatewithoutFG");
78     deploymentFlavor.setDescription("creating a deployment flavor without any FG and any " +
79         "association");
80     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
81     try {
82       vendorSoftwareProductManager.createDeploymentFlavor
83           (deploymentFlavorEntity, USER1);
84     } catch (CoreException exception) {
85       Assert.assertEquals(exception.code().id(), DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED);
86     }
87   }
88
89   @Test
90   public void testInvalidFeatureGroup() {
91     DeploymentFlavorEntity deploymentFlavorEntity =
92         new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
93     DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
94     deploymentFlavor.setModel("TestInvalidFeatureGroup");
95     deploymentFlavor.setDescription("creating a deployment flavor with invalid FG and without any" +
96         " " +
97         "association");
98     deploymentFlavor.setFeatureGroupId("fg01");
99     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
100     try {
101       vendorSoftwareProductManager.createDeploymentFlavor
102           (deploymentFlavorEntity, USER1);
103     } catch (CoreException exception) {
104       Assert.assertEquals(exception.code().id(), FEATURE_GROUP_NOT_EXIST_FOR_VSP);
105     }
106   }
107
108   @Test
109   public void testInvalidAssociation() {
110     DeploymentFlavorEntity deploymentFlavorEntity =
111         new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
112     DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
113     deploymentFlavor.setModel("testInvalidAssociation");
114     deploymentFlavor.setDescription("creating a deployment flavor with wrong association with " +
115         "null compute flavor id");
116     List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>();
117     ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation();
118     componentComputeAssociation.setComputeFlavorId("72138712");
119     componentComputeAssociationList.add(componentComputeAssociation);
120     deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList);
121     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
122     try {
123       vendorSoftwareProductManager.createDeploymentFlavor
124           (deploymentFlavorEntity, USER1);
125     } catch (CoreException exception) {
126       Assert.assertEquals(exception.code().id(), INVALID_COMPONENT_COMPUTE_ASSOCIATION);
127     }
128
129   }
130
131   @Test
132   public void testInvalidComputeFlavorIdAssociation() {
133     DeploymentFlavorEntity deploymentFlavorEntity =
134         new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
135     DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
136     deploymentFlavor.setModel("testInvalidComputeFlavorIdAssociation");
137     deploymentFlavor.setDescription("creating a deployment flavor with wrong compute flavor id in" +
138         " assocation");
139     List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>();
140     ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation();
141     componentComputeAssociation.setComponentId(component21Id);
142     componentComputeAssociation.setComputeFlavorId("123123");
143     componentComputeAssociationList.add(componentComputeAssociation);
144     deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList);
145     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
146     try {
147       vendorSoftwareProductManager.createDeploymentFlavor
148           (deploymentFlavorEntity, USER1);
149     } catch (CoreException exception) {
150       Assert.assertEquals(exception.code().id(), INVALID_COMPUTE_FLAVOR_ID);
151     }
152
153   }
154
155   @Test
156   public void testInvalidVfcIdAssociation() {
157     DeploymentFlavorEntity deploymentFlavorEntity =
158         new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
159     DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
160     deploymentFlavor.setModel("testInvalidVfcIdAssociation");
161     deploymentFlavor.setDescription("creating a deployment flavor with invalid vfcid association");
162     List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>();
163     ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation();
164     componentComputeAssociation.setComponentId("WRONGVFCID");
165     componentComputeAssociation.setComputeFlavorId("123123");
166     componentComputeAssociationList.add(componentComputeAssociation);
167     deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList);
168     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
169     try {
170       vendorSoftwareProductManager.createDeploymentFlavor
171           (deploymentFlavorEntity, USER1);
172     } catch (CoreException exception) {
173       Assert.assertEquals(exception.code().id(), VERSIONABLE_SUB_ENTITY_NOT_FOUND);
174     }
175   }
176
177   @Test
178   public void testNegativeforVspHeatOnboarded() {
179     DeploymentFlavorEntity deploymentFlavorEntity =
180         new DeploymentFlavorEntity(vsp3Id, VERSION01, deployment1Id);
181     DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
182     deploymentFlavor.setModel("TestDeploymentcreatewithoutFG");
183     deploymentFlavor.setDescription("creating a deployment flavor for VSP onboarded with HEAT");
184     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
185     try {
186       vendorSoftwareProductManager.createDeploymentFlavor
187           (deploymentFlavorEntity, USER1);
188     } catch (CoreException exception) {
189       Assert.assertEquals(exception.code().id(),
190           CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING);
191     }
192   }
193
194   @Test
195   public void testGetNegative_InvalidVspId(){
196       testGetNegative("InvalidVspId", VERSION01, deployment1Id, USER1, VERSIONABLE_ENTITY_NOT_EXIST);
197   }
198
199   @Test
200   public void testGetNegative_InvalidDeploymentFlavorId(){
201       testGetNegative(vsp1Id, VERSION01, deployment1Id, USER1, VERSIONABLE_SUB_ENTITY_NOT_FOUND);
202   }
203
204   @Test
205   public void testGet(){
206       DeploymentFlavorEntity expected = createDeploymentFlavor(vsp1Id, VERSION01,deployment2Id);
207       testGet(vsp1Id, VERSION01, deployment2Id, USER1, expected);
208   }
209
210   private void testGet(String vspId, Version version, String componentId, String user,
211                        DeploymentFlavorEntity expected) {
212       CompositionEntityResponse<DeploymentFlavor> response = vendorSoftwareProductManager
213               .getDeploymentFlavor(vspId, null, componentId, user);
214       Assert.assertEquals(response.getId(), expected.getId());
215       Assert.assertEquals(response.getData().getDescription(),
216               expected.getDeploymentFlavorCompositionData().getDescription());
217       Assert.assertEquals(response.getData().getModel(),
218               expected.getDeploymentFlavorCompositionData().getModel());
219       Assert.assertEquals(response.getData().getFeatureGroupId(),
220               expected.getDeploymentFlavorCompositionData().getFeatureGroupId());
221       Assert.assertEquals(response.getData().getComponentComputeAssociations(),
222               expected.getDeploymentFlavorCompositionData().getComponentComputeAssociations());
223       Assert.assertNotNull(response.getSchema());
224   }
225
226   private void testGetNegative(String vspId, Version version, String deploymentFlavorId, String User,
227                                String expectedErrorCode){
228       try{
229           vendorSoftwareProductManager.getDeploymentFlavor(vspId, version, deploymentFlavorId, User);
230           Assert.fail();
231       } catch (CoreException exception){
232           Assert.assertEquals(exception.code().id(), expectedErrorCode);
233       }
234   }
235
236   @Test
237   public void testUpdateNegative_InvalidVspId(){
238     DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity("InvalidVspId",
239             VERSION01,deployment2Id);
240     DeploymentFlavor deploymentFlavorData = new DeploymentFlavor();
241     deploymentFlavorData.setModel(deployment2Id);
242     deploymentFlavorData.setDescription("updating a deployment flavor with invalid VspId and without any" +
243             "association");
244     deploymentFlavorData.setFeatureGroupId("fg01");
245     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData);
246
247     testUpdateNegative(deploymentFlavorEntity, USER1, VERSIONABLE_ENTITY_NOT_EXIST);
248   }
249
250   @Test
251   public void testUpdateNegative_InvalidDeploymentFlavorId(){
252     DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp1Id,
253             VERSION01,"InvalidDeploymentFlavorId");
254     testUpdateNegative(deploymentFlavorEntity, USER1, VERSIONABLE_SUB_ENTITY_NOT_FOUND);
255   }
256
257   @Test(dependsOnMethods = "testCreate")
258   public void testUpdateNegative_InvalidFeatureGroup(){
259     DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp2Id,
260             VERSION01,deployment1Id);
261     DeploymentFlavor deploymentFlavorData = new DeploymentFlavor();
262     deploymentFlavorData.setModel("TestDeploymentCreateWithoutFG");
263     deploymentFlavorData.setDescription("updating a deployment flavor with invalid FeatureGroupId and without any" +
264             "association");
265     deploymentFlavorData.setFeatureGroupId("fg01");
266     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData);
267     String expectedError = "#/featureGroupId: "
268             +deploymentFlavorData.getFeatureGroupId()+" is not a valid value. Possible values: ";
269
270       final CompositionEntityValidationData validationData = vendorSoftwareProductManager
271               .updateDeploymentFlavor(deploymentFlavorEntity, USER1);
272       final Collection<String> errors = validationData.getErrors();
273       final Object[] objects = errors.toArray();
274       Assert.assertEquals(errors.size(), 1);
275       Assert.assertEquals(objects[0], expectedError);
276   }
277
278   @Test(dependsOnMethods = "testCreate")
279   public void testUpdateNegative_InvalidComputeFlavorIdAssociation(){
280     DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp2Id,
281             VERSION01,deployment1Id);
282     DeploymentFlavor deploymentFlavorData = new DeploymentFlavor();
283     deploymentFlavorData.setModel("TestDeploymentcreatewithInvalidComputFlavorId");
284     deploymentFlavorData.setDescription("updating a deployment flavor with wrong compute flavor id in" +
285             " assocation");
286     List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>();
287     ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation();
288     componentComputeAssociation.setComponentId(component21Id);
289     componentComputeAssociation.setComputeFlavorId("123123");
290     componentComputeAssociationList.add(componentComputeAssociation);
291     deploymentFlavorData.setComponentComputeAssociations(componentComputeAssociationList);
292     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData);
293
294     testUpdateNegative(deploymentFlavorEntity, USER1, INVALID_COMPUTE_FLAVOR_ID);
295   }
296
297   @Test
298   public void testUpdate(){
299     //Creating a separate deployment flavor for testing deletion
300     DeploymentFlavorEntity deploymentFlavorEntity =
301             new DeploymentFlavorEntity(vsp1Id, VERSION01, deployment2Id);
302     DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
303     deploymentFlavor.setModel("TestDeploymentCreateforUpdate");
304     deploymentFlavor.setDescription("creating a deployment flavor for updation");
305     deploymentFlavor.setFeatureGroupId("fg01");
306     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
307     DeploymentFlavorEntity createdDeployment = vendorSoftwareProductManager.createDeploymentFlavor
308             (deploymentFlavorEntity, USER1);
309     deployment2Id = createdDeployment.getId();
310
311     final DeploymentFlavor deploymentFlavorCompositionData = createdDeployment.getDeploymentFlavorCompositionData();
312     deploymentFlavorCompositionData.setModel("TestDeploymentCreateforUpdate"); //no change
313     deploymentFlavorCompositionData.setDescription("updating deployment flavor"); //allow change
314     deploymentFlavorCompositionData.setFeatureGroupId("fg01"); //no change
315     createdDeployment.setDeploymentFlavorCompositionData(deploymentFlavorCompositionData);
316
317     vendorSoftwareProductManager.updateDeploymentFlavor(createdDeployment, USER1);
318     CompositionEntityResponse<DeploymentFlavor> deploymentFlavorCompositionEntityResponse = vendorSoftwareProductManager
319             .getDeploymentFlavor(vsp1Id, VERSION01, deployment2Id, USER1);
320     final DeploymentFlavor data = deploymentFlavorCompositionEntityResponse.getData();
321
322     Assert.assertEquals(
323             data.getDescription(),createdDeployment.getDeploymentFlavorCompositionData().getDescription());
324   }
325
326   @Test
327   public void testUpdateVspWithNoFeatureGroup(){
328       //Creating a separate deployment flavor for testing deletion
329       DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
330       DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
331       deploymentFlavor.setModel("TestDeploymentCreateforUpdate");
332       deploymentFlavor.setDescription("creating a deployment flavor for updation");
333       deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
334       DeploymentFlavorEntity createdDeployment = vendorSoftwareProductManager
335               .createDeploymentFlavor(deploymentFlavorEntity, USER1);
336       deployment1Id = createdDeployment.getId();
337
338       final DeploymentFlavor deploymentFlavorCompositionData = createdDeployment.getDeploymentFlavorCompositionData();
339       deploymentFlavorCompositionData.setModel("TestDeploymentCreateforUpdate"); //no change
340       deploymentFlavorCompositionData.setDescription("updating deployment flavor"); //allow change
341       createdDeployment.setDeploymentFlavorCompositionData(deploymentFlavorCompositionData);
342
343       vendorSoftwareProductManager.updateDeploymentFlavor(createdDeployment, USER1);
344       CompositionEntityResponse<DeploymentFlavor> deploymentFlavorCompositionEntityResponse =
345               vendorSoftwareProductManager.getDeploymentFlavor(vsp2Id, VERSION01, deployment1Id, USER1);
346       final DeploymentFlavor data = deploymentFlavorCompositionEntityResponse.getData();
347
348       Assert.assertEquals(data.getDescription(),createdDeployment.getDeploymentFlavorCompositionData()
349               .getDescription());
350     }
351
352   private void testUpdateNegative(DeploymentFlavorEntity deploymentFlavorEntity, String user,
353                                    String expectedErrorCode) {
354     try {
355       vendorSoftwareProductManager
356               .updateDeploymentFlavor(deploymentFlavorEntity, user);
357       System.out.print("updated");
358       Assert.fail();
359     } catch (CoreException exception) {
360       Assert.assertEquals(exception.code().id(), expectedErrorCode);
361     }
362   }
363
364   @Test
365   public void testDelete(){
366       //Creating a separate deployment flavor for testing deletion
367       DeploymentFlavorEntity deploymentFlavorEntity =
368               new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment2Id);
369       DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
370       deploymentFlavor.setModel("TestDeploymentcreateWithoutFG");
371       deploymentFlavor.setDescription("creating a deployment flavor without any FG and any " +
372               "association");
373       deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
374       DeploymentFlavorEntity createddeployment = vendorSoftwareProductManager.createDeploymentFlavor
375               (deploymentFlavorEntity, USER1);
376       deployment2Id = createddeployment.getId();
377       vendorSoftwareProductManager.deleteDeploymentFlavor(vsp2Id, deployment2Id, USER1);
378       testDeleteNegative(vsp2Id, deployment2Id, USER1,
379               VERSIONABLE_SUB_ENTITY_NOT_FOUND);
380   }
381
382   @Test
383   public void testDeleteNegative_InvalidVspId(){
384     testDeleteNegative("InvalidVspId", deployment2Id, USER1,
385             VERSIONABLE_ENTITY_NOT_EXIST);
386   }
387
388   @Test
389   public void testDeleteNegative_NonExistingDeploymentFlavorId(){
390     testDeleteNegative(vsp2Id, "NonExistingDeploymentFlavorId", USER1,
391             VERSIONABLE_SUB_ENTITY_NOT_FOUND);
392   }
393
394   private void testDeleteNegative(String vspId, String deploymentId, String user,
395                                    String expectedErrorCode) {
396     try {
397       vendorSoftwareProductManager
398               .deleteDeploymentFlavor(vspId, deploymentId, user);
399       Assert.fail();
400     } catch (CoreException exception) {
401       Assert.assertEquals(exception.code().id(), expectedErrorCode);
402     }
403   }*/
404 }