diff options
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorTest.java')
-rw-r--r-- | openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorTest.java | 432 |
1 files changed, 432 insertions, 0 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorTest.java new file mode 100644 index 0000000000..e3fa0a8480 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorTest.java @@ -0,0 +1,432 @@ +package org.openecomp.sdc.vendorsoftwareproduct; + +import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING; +import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED; +import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.FEATURE_GROUP_NOT_EXIST_FOR_VSP; +import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.INVALID_COMPONENT_COMPUTE_ASSOCIATION; +import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.INVALID_COMPUTE_FLAVOR_ID; +import static org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST; +import static org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND; + +import org.openecomp.core.utilities.CommonMethods; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity; +import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; +import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator; +import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +public class DeploymentFlavorTest { + /*private static final String USER1 = "deploymentTestUser1"; + private static final String USER2 = "deploymentTestUser2"; + private static final Version VERSION01 = new Version(0, 1); + private static final VendorSoftwareProductManager vendorSoftwareProductManager = + new VendorSoftwareProductManagerImpl(); + private static final VendorSoftwareProductDao vendorSoftwareProductDao = + VendorSoftwareProductDaoFactory.getInstance().createInterface(); + + private static String vsp1Id; + private static String vsp2Id; + private static String vsp3Id; + private static String component11Id; + private static String component21Id; + private static String deployment1Id = "deployment1"; + private static String deployment2Id = "deployment2"; + + @BeforeClass + private void init() { + List<String> featureGroups = new ArrayList<>(); + featureGroups.add("fg01"); + featureGroups.add("fg02"); + vsp1Id = vendorSoftwareProductManager.createNewVsp(VSPCommon + .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp1", "vendorName1", + "vlm1Id", "icon", "category", "subCategory", "123", featureGroups, + VSPCommon.OnboardingMethod. + Manual.name()), USER1).getId(); + component11Id = ComponentsTest.createComponent(vsp1Id, VERSION01, "component11").getId(); + + vsp2Id = vendorSoftwareProductManager.createNewVsp(VSPCommon + .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp2", "vendorName1", + "vlm1Id", "icon", "category", "subCategory", "123", null, + VSPCommon.OnboardingMethod.Manual.name()), USER1).getId(); + component21Id = ComponentsTest.createComponent(vsp2Id, VERSION01, "component21").getId(); + + vsp3Id = vendorSoftwareProductManager.createNewVsp(VSPCommon + .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp3forDeployment", + "vendorName1", + "vlm1Id", "icon", "category", "subCategory", "123", null, + VSPCommon.OnboardingMethod.HEAT.name()), USER1).getId(); + } + + static DeploymentFlavorEntity createDeploymentFlavor(String vspId, Version version, String deploymentFlavorId) { + DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vspId, version, deploymentFlavorId); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel(deploymentFlavorId + " name"); + deploymentFlavor.setDescription(deploymentFlavorId + " desc"); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + DeploymentFlavorEntity createdDeployment = vendorSoftwareProductManager + .createDeploymentFlavor(deploymentFlavorEntity, USER1); + deployment2Id = createdDeployment.getId(); + return deploymentFlavorEntity; + } + + @Test + public void testCreate() { + DeploymentFlavorEntity deploymentFlavorEntity = + new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel("TestDeploymentcreatewithoutFG"); + deploymentFlavor.setDescription("creating a deployment flavor without any FG and any " + + "association"); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + DeploymentFlavorEntity createddeployment = vendorSoftwareProductManager.createDeploymentFlavor + (deploymentFlavorEntity, USER1); + Assert.assertEquals((createddeployment.getId() != null), true); + deployment1Id = createddeployment.getId(); + } + + @Test(dependsOnMethods = "testCreate") + public void testUniqueModelCreate() { + DeploymentFlavorEntity deploymentFlavorEntity = + new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel("TestDeploymentcreatewithoutFG"); + deploymentFlavor.setDescription("creating a deployment flavor without any FG and any " + + "association"); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + try { + vendorSoftwareProductManager.createDeploymentFlavor + (deploymentFlavorEntity, USER1); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED); + } + } + + @Test + public void testInvalidFeatureGroup() { + DeploymentFlavorEntity deploymentFlavorEntity = + new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel("TestInvalidFeatureGroup"); + deploymentFlavor.setDescription("creating a deployment flavor with invalid FG and without any" + + " " + + "association"); + deploymentFlavor.setFeatureGroupId("fg01"); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + try { + vendorSoftwareProductManager.createDeploymentFlavor + (deploymentFlavorEntity, USER1); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), FEATURE_GROUP_NOT_EXIST_FOR_VSP); + } + } + + @Test + public void testInvalidAssociation() { + DeploymentFlavorEntity deploymentFlavorEntity = + new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel("testInvalidAssociation"); + deploymentFlavor.setDescription("creating a deployment flavor with wrong association with " + + "null compute flavor id"); + List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>(); + ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation(); + componentComputeAssociation.setComputeFlavorId("72138712"); + componentComputeAssociationList.add(componentComputeAssociation); + deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + try { + vendorSoftwareProductManager.createDeploymentFlavor + (deploymentFlavorEntity, USER1); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), INVALID_COMPONENT_COMPUTE_ASSOCIATION); + } + + } + + @Test + public void testInvalidComputeFlavorIdAssociation() { + DeploymentFlavorEntity deploymentFlavorEntity = + new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel("testInvalidComputeFlavorIdAssociation"); + deploymentFlavor.setDescription("creating a deployment flavor with wrong compute flavor id in" + + " assocation"); + List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>(); + ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation(); + componentComputeAssociation.setComponentId(component21Id); + componentComputeAssociation.setComputeFlavorId("123123"); + componentComputeAssociationList.add(componentComputeAssociation); + deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + try { + vendorSoftwareProductManager.createDeploymentFlavor + (deploymentFlavorEntity, USER1); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), INVALID_COMPUTE_FLAVOR_ID); + } + + } + + @Test + public void testInvalidVfcIdAssociation() { + DeploymentFlavorEntity deploymentFlavorEntity = + new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel("testInvalidVfcIdAssociation"); + deploymentFlavor.setDescription("creating a deployment flavor with invalid vfcid association"); + List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>(); + ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation(); + componentComputeAssociation.setComponentId("WRONGVFCID"); + componentComputeAssociation.setComputeFlavorId("123123"); + componentComputeAssociationList.add(componentComputeAssociation); + deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + try { + vendorSoftwareProductManager.createDeploymentFlavor + (deploymentFlavorEntity, USER1); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + } + + @Test + public void testNegativeforVspHeatOnboarded() { + DeploymentFlavorEntity deploymentFlavorEntity = + new DeploymentFlavorEntity(vsp3Id, VERSION01, deployment1Id); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel("TestDeploymentcreatewithoutFG"); + deploymentFlavor.setDescription("creating a deployment flavor for VSP onboarded with HEAT"); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + try { + vendorSoftwareProductManager.createDeploymentFlavor + (deploymentFlavorEntity, USER1); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), + CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING); + } + } + + @Test + public void testGetNegative_InvalidVspId(){ + testGetNegative("InvalidVspId", VERSION01, deployment1Id, USER1, VERSIONABLE_ENTITY_NOT_EXIST); + } + + @Test + public void testGetNegative_InvalidDeploymentFlavorId(){ + testGetNegative(vsp1Id, VERSION01, deployment1Id, USER1, VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testGet(){ + DeploymentFlavorEntity expected = createDeploymentFlavor(vsp1Id, VERSION01,deployment2Id); + testGet(vsp1Id, VERSION01, deployment2Id, USER1, expected); + } + + private void testGet(String vspId, Version version, String componentId, String user, + DeploymentFlavorEntity expected) { + CompositionEntityResponse<DeploymentFlavor> response = vendorSoftwareProductManager + .getDeploymentFlavor(vspId, null, componentId, user); + Assert.assertEquals(response.getId(), expected.getId()); + Assert.assertEquals(response.getData().getDescription(), + expected.getDeploymentFlavorCompositionData().getDescription()); + Assert.assertEquals(response.getData().getModel(), + expected.getDeploymentFlavorCompositionData().getModel()); + Assert.assertEquals(response.getData().getFeatureGroupId(), + expected.getDeploymentFlavorCompositionData().getFeatureGroupId()); + Assert.assertEquals(response.getData().getComponentComputeAssociations(), + expected.getDeploymentFlavorCompositionData().getComponentComputeAssociations()); + Assert.assertNotNull(response.getSchema()); + } + + private void testGetNegative(String vspId, Version version, String deploymentFlavorId, String User, + String expectedErrorCode){ + try{ + vendorSoftwareProductManager.getDeploymentFlavor(vspId, version, deploymentFlavorId, User); + Assert.fail(); + } catch (CoreException exception){ + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + @Test + public void testUpdateNegative_InvalidVspId(){ + DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity("InvalidVspId", + VERSION01,deployment2Id); + DeploymentFlavor deploymentFlavorData = new DeploymentFlavor(); + deploymentFlavorData.setModel(deployment2Id); + deploymentFlavorData.setDescription("updating a deployment flavor with invalid VspId and without any" + + "association"); + deploymentFlavorData.setFeatureGroupId("fg01"); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData); + + testUpdateNegative(deploymentFlavorEntity, USER1, VERSIONABLE_ENTITY_NOT_EXIST); + } + + @Test + public void testUpdateNegative_InvalidDeploymentFlavorId(){ + DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp1Id, + VERSION01,"InvalidDeploymentFlavorId"); + testUpdateNegative(deploymentFlavorEntity, USER1, VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test(dependsOnMethods = "testCreate") + public void testUpdateNegative_InvalidFeatureGroup(){ + DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp2Id, + VERSION01,deployment1Id); + DeploymentFlavor deploymentFlavorData = new DeploymentFlavor(); + deploymentFlavorData.setModel("TestDeploymentCreateWithoutFG"); + deploymentFlavorData.setDescription("updating a deployment flavor with invalid FeatureGroupId and without any" + + "association"); + deploymentFlavorData.setFeatureGroupId("fg01"); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData); + String expectedError = "#/featureGroupId: " + +deploymentFlavorData.getFeatureGroupId()+" is not a valid value. Possible values: "; + + final CompositionEntityValidationData validationData = vendorSoftwareProductManager + .updateDeploymentFlavor(deploymentFlavorEntity, USER1); + final Collection<String> errors = validationData.getErrors(); + final Object[] objects = errors.toArray(); + Assert.assertEquals(errors.size(), 1); + Assert.assertEquals(objects[0], expectedError); + } + + @Test(dependsOnMethods = "testCreate") + public void testUpdateNegative_InvalidComputeFlavorIdAssociation(){ + DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp2Id, + VERSION01,deployment1Id); + DeploymentFlavor deploymentFlavorData = new DeploymentFlavor(); + deploymentFlavorData.setModel("TestDeploymentcreatewithInvalidComputFlavorId"); + deploymentFlavorData.setDescription("updating a deployment flavor with wrong compute flavor id in" + + " assocation"); + List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>(); + ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation(); + componentComputeAssociation.setComponentId(component21Id); + componentComputeAssociation.setComputeFlavorId("123123"); + componentComputeAssociationList.add(componentComputeAssociation); + deploymentFlavorData.setComponentComputeAssociations(componentComputeAssociationList); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData); + + testUpdateNegative(deploymentFlavorEntity, USER1, INVALID_COMPUTE_FLAVOR_ID); + } + + @Test + public void testUpdate(){ + //Creating a separate deployment flavor for testing deletion + DeploymentFlavorEntity deploymentFlavorEntity = + new DeploymentFlavorEntity(vsp1Id, VERSION01, deployment2Id); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel("TestDeploymentCreateforUpdate"); + deploymentFlavor.setDescription("creating a deployment flavor for updation"); + deploymentFlavor.setFeatureGroupId("fg01"); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + DeploymentFlavorEntity createdDeployment = vendorSoftwareProductManager.createDeploymentFlavor + (deploymentFlavorEntity, USER1); + deployment2Id = createdDeployment.getId(); + + final DeploymentFlavor deploymentFlavorCompositionData = createdDeployment.getDeploymentFlavorCompositionData(); + deploymentFlavorCompositionData.setModel("TestDeploymentCreateforUpdate"); //no change + deploymentFlavorCompositionData.setDescription("updating deployment flavor"); //allow change + deploymentFlavorCompositionData.setFeatureGroupId("fg01"); //no change + createdDeployment.setDeploymentFlavorCompositionData(deploymentFlavorCompositionData); + + vendorSoftwareProductManager.updateDeploymentFlavor(createdDeployment, USER1); + CompositionEntityResponse<DeploymentFlavor> deploymentFlavorCompositionEntityResponse = vendorSoftwareProductManager + .getDeploymentFlavor(vsp1Id, VERSION01, deployment2Id, USER1); + final DeploymentFlavor data = deploymentFlavorCompositionEntityResponse.getData(); + + Assert.assertEquals( + data.getDescription(),createdDeployment.getDeploymentFlavorCompositionData().getDescription()); + } + + @Test + public void testUpdateVspWithNoFeatureGroup(){ + //Creating a separate deployment flavor for testing deletion + DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel("TestDeploymentCreateforUpdate"); + deploymentFlavor.setDescription("creating a deployment flavor for updation"); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + DeploymentFlavorEntity createdDeployment = vendorSoftwareProductManager + .createDeploymentFlavor(deploymentFlavorEntity, USER1); + deployment1Id = createdDeployment.getId(); + + final DeploymentFlavor deploymentFlavorCompositionData = createdDeployment.getDeploymentFlavorCompositionData(); + deploymentFlavorCompositionData.setModel("TestDeploymentCreateforUpdate"); //no change + deploymentFlavorCompositionData.setDescription("updating deployment flavor"); //allow change + createdDeployment.setDeploymentFlavorCompositionData(deploymentFlavorCompositionData); + + vendorSoftwareProductManager.updateDeploymentFlavor(createdDeployment, USER1); + CompositionEntityResponse<DeploymentFlavor> deploymentFlavorCompositionEntityResponse = + vendorSoftwareProductManager.getDeploymentFlavor(vsp2Id, VERSION01, deployment1Id, USER1); + final DeploymentFlavor data = deploymentFlavorCompositionEntityResponse.getData(); + + Assert.assertEquals(data.getDescription(),createdDeployment.getDeploymentFlavorCompositionData() + .getDescription()); + } + + private void testUpdateNegative(DeploymentFlavorEntity deploymentFlavorEntity, String user, + String expectedErrorCode) { + try { + vendorSoftwareProductManager + .updateDeploymentFlavor(deploymentFlavorEntity, user); + System.out.print("updated"); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + @Test + public void testDelete(){ + //Creating a separate deployment flavor for testing deletion + DeploymentFlavorEntity deploymentFlavorEntity = + new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment2Id); + DeploymentFlavor deploymentFlavor = new DeploymentFlavor(); + deploymentFlavor.setModel("TestDeploymentcreateWithoutFG"); + deploymentFlavor.setDescription("creating a deployment flavor without any FG and any " + + "association"); + deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor); + DeploymentFlavorEntity createddeployment = vendorSoftwareProductManager.createDeploymentFlavor + (deploymentFlavorEntity, USER1); + deployment2Id = createddeployment.getId(); + vendorSoftwareProductManager.deleteDeploymentFlavor(vsp2Id, deployment2Id, USER1); + testDeleteNegative(vsp2Id, deployment2Id, USER1, + VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testDeleteNegative_InvalidVspId(){ + testDeleteNegative("InvalidVspId", deployment2Id, USER1, + VERSIONABLE_ENTITY_NOT_EXIST); + } + + @Test + public void testDeleteNegative_NonExistingDeploymentFlavorId(){ + testDeleteNegative(vsp2Id, "NonExistingDeploymentFlavorId", USER1, + VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + private void testDeleteNegative(String vspId, String deploymentId, String user, + String expectedErrorCode) { + try { + vendorSoftwareProductManager + .deleteDeploymentFlavor(vspId, deploymentId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + }*/ +} |