1 package org.openecomp.sdc.vendorsoftwareproduct;
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();
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";
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();
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();
38 vsp3Id = vendorSoftwareProductManager.createNewVsp(VSPCommon
39 .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp3forDeployment",
41 "vlm1Id", "icon", "category", "subCategory", "123", null,
42 VSPCommon.OnboardingMethod.HEAT.name()), USER1).getId();
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;
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 " +
65 deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
66 DeploymentFlavorEntity createddeployment = vendorSoftwareProductManager.createDeploymentFlavor
67 (deploymentFlavorEntity, USER1);
68 Assert.assertEquals((createddeployment.getId() != null), true);
69 deployment1Id = createddeployment.getId();
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 " +
80 deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
82 vendorSoftwareProductManager.createDeploymentFlavor
83 (deploymentFlavorEntity, USER1);
84 } catch (CoreException exception) {
85 Assert.assertEquals(exception.code().id(), DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED);
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" +
98 deploymentFlavor.setFeatureGroupId("fg01");
99 deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
101 vendorSoftwareProductManager.createDeploymentFlavor
102 (deploymentFlavorEntity, USER1);
103 } catch (CoreException exception) {
104 Assert.assertEquals(exception.code().id(), FEATURE_GROUP_NOT_EXIST_FOR_VSP);
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);
123 vendorSoftwareProductManager.createDeploymentFlavor
124 (deploymentFlavorEntity, USER1);
125 } catch (CoreException exception) {
126 Assert.assertEquals(exception.code().id(), INVALID_COMPONENT_COMPUTE_ASSOCIATION);
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" +
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);
147 vendorSoftwareProductManager.createDeploymentFlavor
148 (deploymentFlavorEntity, USER1);
149 } catch (CoreException exception) {
150 Assert.assertEquals(exception.code().id(), INVALID_COMPUTE_FLAVOR_ID);
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);
170 vendorSoftwareProductManager.createDeploymentFlavor
171 (deploymentFlavorEntity, USER1);
172 } catch (CoreException exception) {
173 Assert.assertEquals(exception.code().id(), VERSIONABLE_SUB_ENTITY_NOT_FOUND);
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);
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);
195 public void testGetNegative_InvalidVspId(){
196 testGetNegative("InvalidVspId", VERSION01, deployment1Id, USER1, VERSIONABLE_ENTITY_NOT_EXIST);
200 public void testGetNegative_InvalidDeploymentFlavorId(){
201 testGetNegative(vsp1Id, VERSION01, deployment1Id, USER1, VERSIONABLE_SUB_ENTITY_NOT_FOUND);
205 public void testGet(){
206 DeploymentFlavorEntity expected = createDeploymentFlavor(vsp1Id, VERSION01,deployment2Id);
207 testGet(vsp1Id, VERSION01, deployment2Id, USER1, expected);
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());
226 private void testGetNegative(String vspId, Version version, String deploymentFlavorId, String User,
227 String expectedErrorCode){
229 vendorSoftwareProductManager.getDeploymentFlavor(vspId, version, deploymentFlavorId, User);
231 } catch (CoreException exception){
232 Assert.assertEquals(exception.code().id(), expectedErrorCode);
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" +
244 deploymentFlavorData.setFeatureGroupId("fg01");
245 deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData);
247 testUpdateNegative(deploymentFlavorEntity, USER1, VERSIONABLE_ENTITY_NOT_EXIST);
251 public void testUpdateNegative_InvalidDeploymentFlavorId(){
252 DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp1Id,
253 VERSION01,"InvalidDeploymentFlavorId");
254 testUpdateNegative(deploymentFlavorEntity, USER1, VERSIONABLE_SUB_ENTITY_NOT_FOUND);
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" +
265 deploymentFlavorData.setFeatureGroupId("fg01");
266 deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData);
267 String expectedError = "#/featureGroupId: "
268 +deploymentFlavorData.getFeatureGroupId()+" is not a valid value. Possible values: ";
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);
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" +
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);
294 testUpdateNegative(deploymentFlavorEntity, USER1, INVALID_COMPUTE_FLAVOR_ID);
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();
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);
317 vendorSoftwareProductManager.updateDeploymentFlavor(createdDeployment, USER1);
318 CompositionEntityResponse<DeploymentFlavor> deploymentFlavorCompositionEntityResponse = vendorSoftwareProductManager
319 .getDeploymentFlavor(vsp1Id, VERSION01, deployment2Id, USER1);
320 final DeploymentFlavor data = deploymentFlavorCompositionEntityResponse.getData();
323 data.getDescription(),createdDeployment.getDeploymentFlavorCompositionData().getDescription());
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();
338 final DeploymentFlavor deploymentFlavorCompositionData = createdDeployment.getDeploymentFlavorCompositionData();
339 deploymentFlavorCompositionData.setModel("TestDeploymentCreateforUpdate"); //no change
340 deploymentFlavorCompositionData.setDescription("updating deployment flavor"); //allow change
341 createdDeployment.setDeploymentFlavorCompositionData(deploymentFlavorCompositionData);
343 vendorSoftwareProductManager.updateDeploymentFlavor(createdDeployment, USER1);
344 CompositionEntityResponse<DeploymentFlavor> deploymentFlavorCompositionEntityResponse =
345 vendorSoftwareProductManager.getDeploymentFlavor(vsp2Id, VERSION01, deployment1Id, USER1);
346 final DeploymentFlavor data = deploymentFlavorCompositionEntityResponse.getData();
348 Assert.assertEquals(data.getDescription(),createdDeployment.getDeploymentFlavorCompositionData()
352 private void testUpdateNegative(DeploymentFlavorEntity deploymentFlavorEntity, String user,
353 String expectedErrorCode) {
355 vendorSoftwareProductManager
356 .updateDeploymentFlavor(deploymentFlavorEntity, user);
357 System.out.print("updated");
359 } catch (CoreException exception) {
360 Assert.assertEquals(exception.code().id(), expectedErrorCode);
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 " +
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);
383 public void testDeleteNegative_InvalidVspId(){
384 testDeleteNegative("InvalidVspId", deployment2Id, USER1,
385 VERSIONABLE_ENTITY_NOT_EXIST);
389 public void testDeleteNegative_NonExistingDeploymentFlavorId(){
390 testDeleteNegative(vsp2Id, "NonExistingDeploymentFlavorId", USER1,
391 VERSIONABLE_SUB_ENTITY_NOT_FOUND);
394 private void testDeleteNegative(String vspId, String deploymentId, String user,
395 String expectedErrorCode) {
397 vendorSoftwareProductManager
398 .deleteDeploymentFlavor(vspId, deploymentId, user);
400 } catch (CoreException exception) {
401 Assert.assertEquals(exception.code().id(), expectedErrorCode);