diff options
author | AviZi <avi.ziv@amdocs.com> | 2017-06-09 02:39:56 +0300 |
---|---|---|
committer | AviZi <avi.ziv@amdocs.com> | 2017-06-09 02:39:56 +0300 |
commit | 280f8015d06af1f41a3ef12e8300801c7a5e0d54 (patch) | |
tree | 9c1d3978c04cd28068f02073038c936bb49ca9e0 /openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java | |
parent | fd3821dad11780d33c5373d74c957c442489945e (diff) |
[SDC-29] Amdocs OnBoard 1707 initial commit.
Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370
Signed-off-by: AviZi <avi.ziv@amdocs.com>
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java')
34 files changed, 4413 insertions, 2824 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComponentProcessesTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComponentProcessesTest.java deleted file mode 100644 index cfc2e111ac..0000000000 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComponentProcessesTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.openecomp.sdc.vendorsoftwareproduct; - -import org.testng.annotations.BeforeClass; - -public class ComponentProcessesTest extends ProcessesTest { - - @BeforeClass - @Override - protected void init() { -// super.init(); -// -// org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity -// comp11 = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(vsp1Id, null, null); -// org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData -// compData11 = new org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData(); -// compData11.setName("c11 name"); -// compData11.setDescription("c11 desc"); -// comp11.setComponentCompositionData(compData11); -// -//// component11Id = vendorSoftwareProductManager.createComponent(comp11, USER1).getId(); -// -// org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity -// comp21 = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(vsp2Id, null, null); -// org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData -// compData21 = new org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData(); -// compData21.setName("c21 name"); -// compData21.setDescription("c21 desc"); -// comp21.setComponentCompositionData(compData21); - -// component21Id = vendorSoftwareProductManager.createComponent(comp21, USER1).getId(); - } - - @Override - public void testCreateWithExistingNameUnderOtherComponent() { -// org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity -// comp12 = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(vsp1Id, null, null); -// org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData -// compData12 = new org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData(); -// compData12.setName("c12 name"); -// compData12.setDescription("c12 desc"); -// comp12.setComponentCompositionData(compData12); -// -// String component12Id = vendorSoftwareProductManager.createComponent(comp12, USER1).getId(); -// testCreate(vsp1Id, component12Id); - } -} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComponentsTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComponentsTest.java deleted file mode 100644 index ff33bcb9ee..0000000000 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComponentsTest.java +++ /dev/null @@ -1,329 +0,0 @@ -package org.openecomp.sdc.vendorsoftwareproduct; - -import org.openecomp.sdc.common.errors.CoreException; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes; -import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; -import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; -import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityValidationData; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.sdc.versioning.errors.VersioningErrorCodes; -import org.openecomp.core.utilities.CommonMethods; - -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import java.util.Collection; - -public class ComponentsTest { - - private static final String USER1 = "componentsTestUser1"; - private static final String USER2 = "componentsTestUser2"; - private static final Version VERSION01 = new Version(0, 1); - private static final VendorSoftwareProductManager vendorSoftwareProductManager = - new VendorSoftwareProductManagerImpl(); - private static final org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao - vendorSoftwareProductDao = - VendorSoftwareProductDaoFactory.getInstance().createInterface(); - - private static String vsp1Id; - private static String vsp2Id; - private static String comp1Id = "1"; - private static String comp2Id = "2"; - - static org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity createComponent(String vspId, Version version, String compId) { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity - componentEntity = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(vspId, version, compId); - ComponentData compData = new ComponentData(); - compData.setName(compId + " name"); - compData.setDisplayName(compId + " display name"); - compData.setDescription(compId + " desc"); - componentEntity.setComponentCompositionData(compData); - vendorSoftwareProductDao.createComponent(componentEntity); - return componentEntity; - } - - @BeforeClass - private void init() { - VspDetails vsp1 = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp1", "vendorName", - "vlm1Id", "icon", "category", "subCategory", "123", null), USER1); - vsp1Id = vsp1.getId(); - - VspDetails vsp2 = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp2", "vendorName", - "vlm1Id", "icon", "category", "subCategory", "123", null), USER1); - vsp2Id = vsp2.getId(); - } - - @Test - public void testListWhenNone() { - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity> components = - vendorSoftwareProductManager.listComponents(vsp1Id, null, USER1); - Assert.assertEquals(components.size(), 0); - } - - @Test - public void testCreateNonExistingVspId_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity("non existing vsp id", null, null), USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test - public void testCreateOnLockedVsp_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(vsp1Id, null, null), USER2, - VersioningErrorCodes.EDIT_ON_ENTITY_LOCKED_BY_OTHER_USER); - } - -/* @Test(dependsOnMethods = "testListWhenNone") - public void testCreate() { - comp1Id = testCreate(vsp1Id); - } - - private String testCreate(String vspId) { - ComponentEntity expected = new ComponentEntity(vspId, null, null); - ComponentData compData = new ComponentData(); - compData.setName("comp1 name"); - compData.setDescription("comp1 desc"); - expected.setComponentCompositionData(compData); - - ComponentEntity created = vendorSoftwareProductManager.createComponent(expected, USER1); - Assert.assertNotNull(created); - expected.setId(created.getId()); - expected.setVersion(VERSION01); - - ComponentEntity actual = vendorSoftwareProductDao.getComponent(vspId, VERSION01, created.getId()); - - Assert.assertEquals(actual, expected); - return created.getId(); - }*/ - -/* @Test(dependsOnMethods = {"testCreate"}) - public void testCreateWithExistingName_negative() { - ComponentEntity component = new ComponentEntity(vsp1Id, null, null); - ComponentData compData = new ComponentData(); - compData.setName("comp1 name"); - compData.setDescription("comp1 desc"); - component.setComponentCompositionData(compData); - testCreate_negative(component, USER1, UniqueValueUtil.UNIQUE_VALUE_VIOLATION); - }*/ - -/* @Test(dependsOnMethods = {"testCreate"}) - public void testCreateWithExistingNameUnderOtherVsp() { - testCreate(vsp2Id); - }*/ - - @Test - public void testCreateOnUploadVsp_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(vsp1Id, null, null), USER1, - VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); - } - - @Test - public void testGetNonExistingComponentId_negative() { - testGet_negative(vsp1Id, null, "non existing component id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test - public void testGetNonExistingVspId_negative() { - testGet_negative("non existing vsp id", null, comp1Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testGet() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity - expected = createComponent(vsp1Id, VERSION01, comp1Id); - testGet(vsp1Id, VERSION01, comp1Id, USER1, expected); - } - - @Test - public void testUpdateNonExistingComponentId_negative() { - testUpdate_negative(vsp1Id, "non existing component id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test - public void testUpdateNonExistingVspId_negative() { - testUpdate_negative("non existing vsp id", comp1Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = {"testGet"}) - public void testUpdateOnUploadVsp() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity - expected = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(vsp1Id, null, comp1Id); - ComponentData compData = new ComponentData(); - compData.setName(comp1Id + " name"); // no change - compData.setDisplayName(comp1Id + " display name"); // no change - compData.setDescription(comp1Id + " desc updated"); // allowed change - expected.setComponentCompositionData(compData); - - CompositionEntityValidationData validationData = - vendorSoftwareProductManager.updateComponent(expected, USER1); - Assert.assertTrue(validationData == null || validationData.getErrors() == null); - expected.setVersion(VERSION01); - - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity actual = vendorSoftwareProductDao.getComponent(vsp1Id, VERSION01, comp1Id); - Assert.assertEquals(actual, expected); - } - - @Test(dependsOnMethods = {"testUpdateOnUploadVsp"}) - public void testIllegalUpdateOnUploadVsp() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity - expected = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(vsp1Id, null, comp1Id); - ComponentData compData = new ComponentData(); - compData - .setName("comp1 name updated"); // not allowed: changed name + omitted display name - expected.setComponentCompositionData(compData); - - CompositionEntityValidationData validationData = - vendorSoftwareProductManager.updateComponent(expected, USER1); - Assert.assertNotNull(validationData); - Assert.assertEquals(validationData.getErrors().size(), 2); - } - - @Test - public void testListNonExistingVspId_negative() { - testList_negative("non existing vsp id", null, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } -/* - @Test(dependsOnMethods = {"testUpdateOnUploadVsp", "testList"}) - public void testCreateWithERemovedName() { - testCreate(vsp1Id); - } - - @Test(dependsOnMethods = "testList") - public void testDeleteNonExistingComponentId_negative() { - testDelete_negative(vsp1Id, "non existing component id", USER1, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - }*/ - - @Test(dependsOnMethods = {"testGet"}) - public void testList() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity - createdP2 = createComponent(vsp1Id, VERSION01, comp2Id); - - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity> actual = - vendorSoftwareProductManager.listComponents(vsp1Id, null, USER1); - Assert.assertEquals(actual.size(), 2); - } - - @Test - public void testDeleteNonExistingVspId_negative() { - testDelete_negative("non existing vsp id", comp1Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } -/* - @Test(dependsOnMethods = "testList") - public void testDelete() { - vendorSoftwareProductManager.deleteComponent(vsp1Id, comp1Id, USER1); - ComponentEntity actual = vendorSoftwareProductDao.getComponent(vsp1Id, VERSION01, comp1Id); - Assert.assertNull(actual); - }*/ - - @Test - public void testDeleteOnUploadVsp_negative() { - testDelete_negative(vsp1Id, comp1Id, USER1, - VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); - } - - @Test - public void testDeleteListNonExistingVspId_negative() { - testDeleteList_negative("non existing vsp id", USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } -/* - @Test(dependsOnMethods = "testDelete") - public void testDeleteList() { - ComponentEntity comp3 = new ComponentEntity(vsp1Id, null, null); - comp3.setName("comp3 name"); - comp3.setDescription("comp3 desc"); - vendorSoftwareProductManager.createComponent(comp3, USER1); - - vendorSoftwareProductManager.deleteComponents(vsp1Id, USER1); - - Collection<ComponentEntity> actual = vendorSoftwareProductManager.listComponents(vsp1Id, null, USER1); - Assert.assertEquals(actual.size(), 0); - }*/ - - @Test - public void testDeleteListOnUploadVsp_negative() { - testDeleteList_negative(vsp1Id, USER1, - VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); - } - - private void testGet(String vspId, Version version, String componentId, String user, - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity expected) { - CompositionEntityResponse<ComponentData> response = - vendorSoftwareProductManager.getComponent(vspId, null, componentId, user); - Assert.assertEquals(response.getId(), expected.getId()); - Assert.assertEquals(response.getData(), expected.getComponentCompositionData()); - Assert.assertNotNull(response.getSchema()); - } - - private void testCreate_negative( - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity component, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.createComponent(component, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testGet_negative(String vspId, Version version, String componentId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.getComponent(vspId, version, componentId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testUpdate_negative(String vspId, String componentId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager - .updateComponent(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(vspId, null, componentId), user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testList_negative(String vspId, Version version, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.listComponents(vspId, version, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testDeleteList_negative(String vspId, String user, String expectedErrorCode) { - try { - vendorSoftwareProductManager.deleteComponents(vspId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testDelete_negative(String vspId, String componentId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.deleteComponent(vspId, componentId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } -}
\ No newline at end of file diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComponentsUploadTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComponentsUploadTest.java deleted file mode 100644 index 0819d89851..0000000000 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComponentsUploadTest.java +++ /dev/null @@ -1,159 +0,0 @@ -package org.openecomp.sdc.vendorsoftwareproduct; - -import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade; -import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; -import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.core.util.UniqueValueUtil; -import org.openecomp.core.utilities.CommonMethods; - -import org.testng.Assert; -import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; - -public class ComponentsUploadTest { - - private static final String USER1 = "vspTestUser1"; - - private static VendorSoftwareProductManager vendorSoftwareProductManager = - new VendorSoftwareProductManagerImpl(); - private static VendorSoftwareProductDao vendorSoftwareProductDao = - VendorSoftwareProductDaoFactory.getInstance().createInterface(); - private static VendorLicenseFacade vendorLicenseFacade = - VendorLicenseFacadeFactory.getInstance().createInterface(); - - private static String vspId = null; - private static Version activeVersion = null; - private static String trapFileName = "MMSC.zip"; - private static String pollFileName = "MNS OAM FW.zip"; - private static String notZipFileName = "notZipFile"; - private static String zipWithFoldersFileName = "zipFileWithFolder.zip"; - private static String emptyZipFileName = "emptyZip.zip"; - private String vlm1Id; - private String componentId; - - @BeforeTest - private void init() { - UniqueValueUtil - .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, - "VSPTestMib"); - vlm1Id = vendorLicenseFacade.createVendorLicenseModel(VSPCommon - .createVendorLicenseModel("vlmName " + CommonMethods.nextUuId(), "vlm1Id desc", "icon1"), - USER1).getId(); - VspDetails vspDetails = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSPTestMib", "Test-vsp-mib", "vendorName", vlm1Id, "icon", - "category", "subCategory", "123", null), USER1); - - vspId = vspDetails.getId(); - activeVersion = vspDetails.getVersion(); - componentId = createComponent(new ComponentEntity(vspId, activeVersion, null)).getId(); - } - - - @Test - public void testUploadAndFilenamesList() { - InputStream zis1 = getFileInputStream("/validation/zips/various/MMSC.zip"); - InputStream zis2 = getFileInputStream("/validation/zips/various/MNS OAM FW.zip"); - - vendorSoftwareProductManager - .uploadComponentMib(zis1, "MMSC.zip", vspId, componentId, true, USER1); - vendorSoftwareProductManager - .uploadComponentMib(zis2, "MNS OAM FW.zip", vspId, componentId, false, USER1); - - MibUploadStatus mibUploadStatus = - vendorSoftwareProductManager.listMibFilenames(vspId, componentId, USER1); - Assert.assertEquals(mibUploadStatus.getSnmpTrap(), trapFileName); - Assert.assertEquals(mibUploadStatus.getSnmpPoll(), pollFileName); - } - - @Test(dependsOnMethods = "testUploadAndFilenamesList") - public void testMibsExistentAfterCheckout() throws IOException { - activeVersion = vendorSoftwareProductManager.checkin(vspId, USER1); -// UniqueValueUtil.deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.COMPONENT_ARTIFACT_NAME, "MMSC.zip"); -// UniqueValueUtil.deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.COMPONENT_ARTIFACT_NAME, "MNS OAM FW.zip"); - activeVersion = vendorSoftwareProductManager.checkout(vspId, USER1); - - MibUploadStatus mibUploadStatus = - vendorSoftwareProductManager.listMibFilenames(vspId, componentId, USER1); - Assert.assertNotNull(mibUploadStatus.getSnmpTrap()); - Assert.assertNotNull(mibUploadStatus.getSnmpPoll()); - } - - @Test(dependsOnMethods = "testMibsExistentAfterCheckout") - public void testDeleteFile() { - vendorSoftwareProductManager.deleteComponentMib(vspId, componentId, true, USER1); - vendorSoftwareProductManager.deleteComponentMib(vspId, componentId, false, USER1); - - MibUploadStatus mibUploadStatus = - vendorSoftwareProductManager.listMibFilenames(vspId, componentId, USER1); - Assert.assertNull(mibUploadStatus.getSnmpTrap()); - Assert.assertNull(mibUploadStatus.getSnmpPoll()); - } - - @Test(dependsOnMethods = "testDeleteFile") - public void testUploadInvalidZip() { - URL url = this.getClass().getResource("/notZipFile"); - - try { - vendorSoftwareProductManager - .uploadComponentMib(url.openStream(), notZipFileName, vspId, componentId, true, USER1); - Assert.fail(); - } catch (Exception e) { -// Assert.assertEquals(e.getMessage(), "MIB uploaded for vendor software product with Id " + vspId + " and version " + activeVersion + " is invalid: Invalid zip file"); - Assert.assertEquals(e.getMessage(), "Invalid zip file"); - } - } - - @Test(dependsOnMethods = "testUploadInvalidZip") - public void testUploadZipWithFolders() { - InputStream zis = getFileInputStream("/vspmanager/zips/zipFileWithFolder.zip"); - - try { - vendorSoftwareProductManager - .uploadComponentMib(zis, zipWithFoldersFileName, vspId, componentId, true, USER1); - Assert.fail(); - } catch (Exception e) { - Assert.assertEquals(e.getMessage(), "Zip file should not contain folders"); - } - } - - @Test(dependsOnMethods = "testUploadZipWithFolders") - public void testUploadEmptyZip() { - InputStream zis = getFileInputStream("/vspmanager/zips/emptyZip.zip"); - - try { - vendorSoftwareProductManager - .uploadComponentMib(zis, emptyZipFileName, vspId, componentId, true, USER1); - Assert.fail(); - } catch (Exception e) { - Assert.assertEquals(e.getMessage(), "Invalid zip file"); - } - } - - - private InputStream getFileInputStream(String fileName) { - URL url = this.getClass().getResource(fileName); - try { - return url.openStream(); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - - - private ComponentEntity createComponent(ComponentEntity component) { - component.setId(CommonMethods.nextUuId()); - vendorSoftwareProductDao.createComponent(component); - return component; - } -} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/NetworksTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/NetworksTest.java deleted file mode 100644 index 2921f19c1b..0000000000 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/NetworksTest.java +++ /dev/null @@ -1,292 +0,0 @@ -package org.openecomp.sdc.vendorsoftwareproduct; - -import org.openecomp.sdc.common.errors.CoreException; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes; -import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; -import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; -import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityValidationData; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.sdc.versioning.errors.VersioningErrorCodes; -import org.openecomp.core.utilities.CommonMethods; - -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import java.util.Collection; - -public class NetworksTest { - - private static final String USER1 = "networksTestUser1"; - private static final String USER2 = "networksTestUser2"; - private static final Version VERSION01 = new Version(0, 1); - private static final VendorSoftwareProductManager vendorSoftwareProductManager = - new VendorSoftwareProductManagerImpl(); - private static final org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao - vendorSoftwareProductDao = - VendorSoftwareProductDaoFactory.getInstance().createInterface(); - - private static String vsp1Id; - private static String vsp2Id; - private static String networkId = "1"; - - static org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity createNetwork(String vspId, Version version, String networkId) { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity - networkEntity = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity(vspId, version, networkId); - org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network - networkData = new org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network(); - networkData.setName(networkId + " name"); - networkData.setDhcp(true); - networkEntity.setNetworkCompositionData(networkData); - vendorSoftwareProductDao.createNetwork(networkEntity); - return networkEntity; - } - - @BeforeClass - private void init() { - VspDetails vsp1 = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp1", "vendorName", - "vlm1Id", "icon", "category", "subCategory", "123", null), USER1); - vsp1Id = vsp1.getId(); - - VspDetails vsp2 = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp2", "vendorName", - "vlm1Id", "icon", "category", "subCategory", "123", null), USER1); - vsp2Id = vsp2.getId(); - } - - @Test - public void testListWhenNone() { - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity> networks = - vendorSoftwareProductManager.listNetworks(vsp1Id, null, USER1); - Assert.assertEquals(networks.size(), 0); - } - - @Test - public void testCreateNonExistingVspId_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity("non existing vsp id", null, null), USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test - public void testCreateOnLockedVsp_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity(vsp1Id, null, null), USER2, - VersioningErrorCodes.EDIT_ON_ENTITY_LOCKED_BY_OTHER_USER); - } - -/* @Test(dependsOnMethods = "testListWhenNone") - public void testCreate() { - networkId = testCreate(vsp1Id); - } - - private String testCreate(String vspId) { - NetworkEntity expected = new NetworkEntity(vspId, null, null); - Network networkData = new Network(); - networkData.setName("network1 name"); - networkData.setDhcp(true); - expected.setNetworkCompositionData(networkData); - - - NetworkEntity created = vendorSoftwareProductManager.createNetwork(expected, USER1); - Assert.assertNotNull(created); - expected.setId(created.getId()); - expected.setVersion(VERSION01); - - NetworkEntity actual = vendorSoftwareProductDao.getNetwork(vspId, VERSION01, created.getId()); - - Assert.assertEquals(actual, expected); - return created.getId(); - } - - @Test(dependsOnMethods = {"testCreate"}) - public void testCreateWithExistingName_negative() { - NetworkEntity network = new NetworkEntity(vsp1Id, null, null); - Network networkData = new Network(); - networkData.setName("network1 name"); - networkData.setDhcp(true); - network.setNetworkCompositionData(networkData); - testCreate_negative(network, USER1, UniqueValueUtil.UNIQUE_VALUE_VIOLATION); - }*/ - - @Test - public void testCreateOnUploadVsp_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity(vsp1Id, null, null), USER1, - VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); - } - - /* @Test(dependsOnMethods = {"testCreate"}) - public void testCreateWithExistingNameUnderOtherVsp() { - testCreate(vsp2Id); - } - */ - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testGetNonExistingNetworkId_negative() { - testGet_negative(vsp1Id, null, "non existing network id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testGetNonExistingVspId_negative() { - testGet_negative("non existing vsp id", null, networkId, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testGet() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity - expected = createNetwork(vsp1Id, VERSION01, networkId); - testGet(vsp1Id, VERSION01, networkId, USER1, expected); - } - - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testUpdateNonExistingNetworkId_negative() { - testUpdate_negative(vsp1Id, "non existing network id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testUpdateNonExistingVspId_negative() { - testUpdate_negative("non existing vsp id", networkId, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = {"testGet"}) - public void testIllegalUpdateOnUploadVsp() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity - expected = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity(vsp1Id, null, networkId); - org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network - networkData = new org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network(); - networkData.setName(networkId + " name updated"); - networkData.setDhcp(false); - expected.setNetworkCompositionData(networkData); - - CompositionEntityValidationData validationData = - vendorSoftwareProductManager.updateNetwork(expected, USER1); - Assert.assertNotNull(validationData); - Assert.assertTrue(validationData.getErrors().size() > 0); - } - - @Test(dependsOnMethods = {"testGet"}) - public void testListNonExistingVspId_negative() { - testList_negative("non existing vsp id", null, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - /* - @Test(dependsOnMethods = {"testUpdateOnUploadVsp", "testList"}) - public void testCreateWithERemovedName() { - testCreate(vsp1Id); - } - - @Test(dependsOnMethods = "testList") - public void testDeleteNonExistingNetworkId_negative() { - testDelete_negative(vsp1Id, "non existing network id", USER1, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - }*/ - - @Test(dependsOnMethods = {"testGet"}) - public void testList() { - createNetwork(vsp1Id, VERSION01, "2"); - - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity> actual = - vendorSoftwareProductManager.listNetworks(vsp1Id, null, USER1); - Assert.assertEquals(actual.size(), 2); - } - - @Test(dependsOnMethods = "testList") - public void testDeleteNonExistingVspId_negative() { - testDelete_negative("non existing vsp id", networkId, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } -/* - @Test(dependsOnMethods = "testList") - public void testDelete() { - vendorSoftwareProductManager.deleteNetwork(vsp1Id, networkId, USER1); - NetworkEntity actual = vendorSoftwareProductDao.getNetwork(vsp1Id, VERSION01, networkId); - Assert.assertNull(actual); - } - - @Test - public void testDeleteListNonExistingVspId_negative() { - testDeleteList_negative("non existing vsp id", USER1, VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = "testDelete") - public void testDeleteList() { - NetworkEntity network3 = new NetworkEntity(vsp1Id, null, null); - network3.setName("network3 name"); - network3.setDescription("network3 desc"); - vendorSoftwareProductManager.createNetwork(network3, USER1); - - vendorSoftwareProductManager.deleteNetworks(vsp1Id, USER1); - - Collection<NetworkEntity> actual = vendorSoftwareProductManager.listNetworks(vsp1Id, null, USER1); - Assert.assertEquals(actual.size(), 0); - }*/ - - @Test(dependsOnMethods = "testList") - public void testDeleteOnUploadVsp_negative() { - testDelete_negative(vsp1Id, networkId, USER1, - VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); - } - - private void testGet(String vspId, Version version, String networkId, String user, - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity expected) { - CompositionEntityResponse<org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network> response = - vendorSoftwareProductManager.getNetwork(vspId, null, networkId, user); - Assert.assertEquals(response.getId(), expected.getId()); - Assert.assertEquals(response.getData(), expected.getNetworkCompositionData()); - Assert.assertNotNull(response.getSchema()); - } - - private void testCreate_negative( - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity network, String user, String expectedErrorCode) { - try { - vendorSoftwareProductManager.createNetwork(network, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testGet_negative(String vspId, Version version, String networkId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.getNetwork(vspId, version, networkId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testUpdate_negative(String vspId, String networkId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.updateNetwork(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity(vspId, null, networkId), user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testList_negative(String vspId, Version version, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.listNetworks(vspId, version, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testDelete_negative(String vspId, String networkId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.deleteNetwork(vspId, networkId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } -} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/NicsTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/NicsTest.java deleted file mode 100644 index 10ea7f7eaf..0000000000 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/NicsTest.java +++ /dev/null @@ -1,346 +0,0 @@ -package org.openecomp.sdc.vendorsoftwareproduct; - -import org.openecomp.sdc.common.errors.CoreException; -import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes; -import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; -import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; -import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityValidationData; -import org.openecomp.core.utilities.CommonMethods; - -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import java.util.Collection; - -public class NicsTest { - - private static final String USER1 = "nicsTestUser1"; - private static final String USER2 = "nicsTestUser2"; - private static final org.openecomp.sdc.versioning.dao.types.Version - VERSION01 = new org.openecomp.sdc.versioning.dao.types.Version(0, 1); - private static final VendorSoftwareProductManager vendorSoftwareProductManager = - new VendorSoftwareProductManagerImpl(); - private static final org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao - vendorSoftwareProductDao = - org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory.getInstance().createInterface(); - - private static String vsp1Id; - private static String vsp2Id; - private static org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity network1; - private static org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity network2; - private static String component11Id; - private static String component21Id; - private static String nic1Id = "nic1"; - - static org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity createNic(String vspId, org.openecomp.sdc.versioning.dao.types.Version version, String compId, String nicId, - String networkId) { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity - nicEntity = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(vspId, version, compId, nicId); - org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic - nicData = new org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic(); - nicData.setName(nicId + " name"); - nicData.setDescription(nicId + " desc"); - nicData.setNetworkId(networkId); - nicEntity.setNicCompositionData(nicData); - vendorSoftwareProductDao.createNic(nicEntity); - return nicEntity; - } - - @BeforeClass - private void init() { - vsp1Id = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp1", "vendorName1", - "vlm1Id", "icon", "category", "subCategory", "123", null), USER1).getId(); - network1 = NetworksTest.createNetwork(vsp1Id, VERSION01, "network1"); - 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), USER1).getId(); - network2 = NetworksTest.createNetwork(vsp2Id, VERSION01, "network2"); - component21Id = ComponentsTest.createComponent(vsp2Id, VERSION01, "component21").getId(); - } - -/* @Test - public void testCreateNonExistingComponentId_negative() { - testCreate_negative(new NicEntity(vsp1Id, null, "non existing component id", null), USER1, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - }*/ - - @Test - public void testListWhenNone() { - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity> nics = - vendorSoftwareProductManager.listNics(vsp1Id, null, component11Id, USER1); - Assert.assertEquals(nics.size(), 0); - } - - @Test - public void testCreateNonExistingVspId_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity("non existing vsp id", null, component11Id, null), USER1, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test - public void testCreateOnLockedVsp_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(vsp1Id, null, component11Id, null), USER2, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.EDIT_ON_ENTITY_LOCKED_BY_OTHER_USER); - } - -// @Test(dependsOnMethods = "testListWhenNone") -// public void testCreate() { -// nic1Id = testCreate(vsp1Id, component11Id, network1.getId(), network1.getNetworkCompositionData().getName()); -// } - -/* @Test(dependsOnMethods = {"testCreate"}) - public void testCreateWithExistingName_negative() { - NicEntity nic = new NicEntity(vsp1Id, null, component11Id, null); - Nic nicData = new Nic(); - nicData.setName("nic1 name"); - nic.setNicCompositionData(nicData); - testCreate_negative(nic, USER1, UniqueValueUtil.UNIQUE_VALUE_VIOLATION); - }*/ - -// @Test(dependsOnMethods = {"testCreate"}) -// public void testCreateWithExistingNameUnderOtherComponent() { -// ComponentEntity component12 = new ComponentEntity(vsp1Id, null, null); -// ComponentData compData12 = new ComponentData(); -// compData12.setName("comp12 name"); -// compData12.setDescription("comp12 desc"); -// component12.setComponentCompositionData(compData12); -// -// String component12Id = vendorSoftwareProductManager.createComponent(component12, USER1).getId(); -// testCreate(vsp1Id, component12Id, network1.getId(), network1.getNetworkCompositionData().getName()); -// } - -// @Test(dependsOnMethods = {"testCreate"}) -// public void testCreateWithExistingNameUnderOtherVsp() { -// testCreate(vsp2Id, component21Id, network2.getId(), network2.getNetworkCompositionData().getName()); -// } - - @Test - public void testCreateOnUploadVsp_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(vsp1Id, null, component11Id, null), USER1, - VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); - } - - @Test - public void testGetNonExistingNicId_negative() { - testGet_negative(vsp1Id, null, component11Id, "non existing nic id", USER1, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testGetNonExistingComponentId_negative() { - testGet_negative(vsp1Id, null, "non existing component id", nic1Id, USER1, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testGetNonExistingVspId_negative() { - testGet_negative("non existing vsp id", null, component11Id, nic1Id, USER1, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testGet() { - createNic(vsp1Id, VERSION01, component11Id, nic1Id, network1.getId()); - testGet(vsp1Id, VERSION01, component11Id, nic1Id, USER1); - } - - @Test - public void testUpdateNonExistingNicId_negative() { - testUpdate_negative(vsp1Id, component11Id, "non existing nic id", USER1, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testUpdateNonExistingComponentId_negative() { - testUpdate_negative(vsp1Id, "non existing component id", nic1Id, USER1, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testListWhenNone")//"testCreate") - public void testUpdateNonExistingVspId_negative() { - testUpdate_negative("non existing vsp id", component11Id, nic1Id, USER1, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = {"testGet"}) - public void testUpdateOnUploadVsp() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity - expected = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(vsp1Id, null, component11Id, nic1Id); - org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic - nicData = new org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic(); - nicData.setName(nic1Id + " name"); - nicData.setDescription(nic1Id + " desc updated"); - nicData.setNetworkId(network1.getId()); - expected.setNicCompositionData(nicData); - - CompositionEntityValidationData validationData = - vendorSoftwareProductManager.updateNic(expected, USER1); - Assert.assertTrue(validationData == null || validationData.getErrors() == null); - expected.setVersion(VERSION01); - - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity - actual = vendorSoftwareProductDao.getNic(vsp1Id, VERSION01, component11Id, nic1Id); - Assert.assertEquals(actual, expected); - } - - @Test(dependsOnMethods = {"testGet"}) - public void testIllegalUpdateOnUploadVsp() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity - expected = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(vsp1Id, null, component11Id, nic1Id); - org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic - nicData = new org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic(); - nicData.setName(nic1Id + " name updated"); - nicData.setDescription(nic1Id + " desc updated"); - nicData.setNetworkId(network1.getId()); - expected.setNicCompositionData(nicData); - - CompositionEntityValidationData validationData = - vendorSoftwareProductManager.updateNic(expected, USER1); - Assert.assertNotNull(validationData); - Assert.assertTrue(validationData.getErrors().size() > 0); - } - - @Test - public void testListNonExistingComponentId_negative() { - testList_negative(vsp1Id, null, "non existing component id", USER1, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test - public void testListNonExistingVspId_negative() { - testList_negative("non existing vsp id", null, component11Id, USER1, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } -/* - @Test(dependsOnMethods = {"testUpdateOnUploadVsp", "testList"}) - public void testCreateWithRemovedName() { - testCreate(vsp1Id, component11Id); - } - - @Test - public void testDeleteNonExistingNicId_negative() { - testDelete_negative(vsp1Id, component11Id, "non existing nic id", USER1, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testList") - public void testDeleteNonExistingComponentId_negative() { - testDelete_negative(vsp1Id, "non existing component id", nic1Id, USER1, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - }*/ - - @Test(dependsOnMethods = {"testGet"}) - public void testList() { - createNic(vsp1Id, VERSION01, component11Id, "nic2", network1.getId()); - - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity> actual = - vendorSoftwareProductManager.listNics(vsp1Id, null, component11Id, USER1); - Assert.assertEquals(actual.size(), 2); - } - - @Test(dependsOnMethods = "testList") - public void testDeleteNonExistingVspId_negative() { - testDelete_negative("non existing vsp id", component11Id, nic1Id, USER1, - org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } -/* - @Test(dependsOnMethods = "testList") - public void testDelete() { - vendorSoftwareProductManager.deleteNic(vsp1Id, component11Id, nic1Id, USER1); - NicEntity actual = vendorSoftwareProductDao.getNic(vsp1Id, VERSION01, component11Id, nic1Id); - Assert.assertNull(actual); - }*/ - - @Test(dependsOnMethods = "testList") - public void testDeleteOnUploadVsp_negative() { - testDelete_negative(vsp1Id, component11Id, nic1Id, USER1, - VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); - } - - private String testCreate(String vspId, String componentId, String networkId, - String networkName) { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity - expected = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(vspId, null, componentId, null); - - org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic - nicData = new org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic(); - nicData.setName("nic1 name"); - nicData.setNetworkId(networkId); - //nicData.setNetworkName(networkName); - nicData.setNetworkType(org.openecomp.sdc.vendorsoftwareproduct.types.composition.NetworkType.External); - expected.setNicCompositionData(nicData); - - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity created = vendorSoftwareProductManager.createNic(expected, USER1); - Assert.assertNotNull(created); - expected.setId(created.getId()); - expected.setVersion(VERSION01); - - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity actual = - vendorSoftwareProductDao.getNic(vspId, VERSION01, componentId, created.getId()); - - Assert.assertEquals(actual, expected); - - return created.getId(); - } - - private void testGet(String vspId, org.openecomp.sdc.versioning.dao.types.Version version, String componentId, String nicId, - String user) { - CompositionEntityResponse<org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic> response = - vendorSoftwareProductManager.getNic(vspId, null, componentId, nicId, user); - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity - expected = vendorSoftwareProductDao.getNic(vspId, version, componentId, nicId); - Assert.assertEquals(response.getId(), expected.getId()); - Assert.assertEquals(response.getData(), expected.getNicCompositionData()); - Assert.assertNotNull(response.getSchema()); - } - - private void testCreate_negative(org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity nic, String user, String expectedErrorCode) { - try { - vendorSoftwareProductManager.createNic(nic, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testGet_negative(String vspId, org.openecomp.sdc.versioning.dao.types.Version version, String componentId, String nicId, - String user, String expectedErrorCode) { - try { - vendorSoftwareProductManager.getNic(vspId, version, componentId, nicId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testUpdate_negative(String vspId, String componentId, String nicId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.updateNic(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(vspId, null, componentId, nicId), user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testList_negative(String vspId, org.openecomp.sdc.versioning.dao.types.Version version, String componentId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.listNics(vspId, version, componentId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testDelete_negative(String vspId, String componentId, String nicId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.deleteNic(vspId, componentId, nicId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } -} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ProcessesTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ProcessesTest.java deleted file mode 100644 index 8571088be1..0000000000 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ProcessesTest.java +++ /dev/null @@ -1,473 +0,0 @@ -package org.openecomp.sdc.vendorsoftwareproduct; - -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.ProcessArtifactEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.sdc.versioning.errors.VersioningErrorCodes; -import org.openecomp.core.util.UniqueValueUtil; -import org.openecomp.core.utilities.CommonMethods; - -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.util.Collection; - -public class ProcessesTest { - - protected static final String USER1 = "processesTestUser1"; - protected static final VendorSoftwareProductManager vendorSoftwareProductManager = - new VendorSoftwareProductManagerImpl(); - private static final String USER2 = "processesTestUser2"; - private static final String ARTIFACT_NAME = "artifact.sh"; - private static final Version VERSION01 = new Version(0, 1); - private static final VendorSoftwareProductDao vendorSoftwareProductDao = - VendorSoftwareProductDaoFactory.getInstance().createInterface(); - - protected String vsp1Id; - protected String vsp2Id; - protected String component11Id = VendorSoftwareProductConstants.GENERAL_COMPONENT_ID; - protected String component21Id = VendorSoftwareProductConstants.GENERAL_COMPONENT_ID; - private String p1Id; - private String p2Id; - - @BeforeClass - protected void init() { - VspDetails vsp1 = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp1", "vendorName1", - "vlm1Id", "icon", "category", "subCategory", "123", null), USER1); - vsp1Id = vsp1.getId(); - - VspDetails vsp2 = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp2", "vendorName1", - "vlm1Id", "icon", "category", "subCategory", "123", null), USER1); - vsp2Id = vsp2.getId(); - } - - @Test - public void testListWhenNone() { - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity> processes = - vendorSoftwareProductManager.listProcesses(vsp1Id, null, component11Id, USER1); - Assert.assertEquals(processes.size(), 0); - } - - @Test - public void testCreateNonExistingComponentId_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vsp1Id, null, "non existing component id", null), USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test - public void testCreateNonExistingVspId_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity("non existing vsp id", null, component11Id, null), USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test - public void testCreateOnLockedVsp_negative() { - testCreate_negative(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vsp1Id, null, component11Id, null), USER2, - VersioningErrorCodes.EDIT_ON_ENTITY_LOCKED_BY_OTHER_USER); - } - - @Test(dependsOnMethods = "testListWhenNone") - public void testCreate() { - p1Id = testCreate(vsp1Id, component11Id); - } - - @Test(dependsOnMethods = {"testCreate"}) - public void testCreateWithExistingName_negative() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity - process = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vsp1Id, null, component11Id, null); - process.setName("p1 name"); - testCreate_negative(process, USER1, UniqueValueUtil.UNIQUE_VALUE_VIOLATION); - } - - @Test(dependsOnMethods = {"testCreate"}) - public void testCreateWithExistingNameUnderOtherComponent() { - // This method is implemented in the sub class ComponentProcessesTest, it is here in order to keep the tests sequence down there (using @Test). - } - - @Test(dependsOnMethods = {"testCreate"}) - public void testCreateWithExistingNameUnderOtherVsp() { - testCreate(vsp2Id, component21Id); - } - - @Test - public void testGetNonExistingProcessId_negative() { - testGet_negative(vsp1Id, null, component11Id, "non existing process id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testCreate") - public void testGetNonExistingComponentId_negative() { - testGet_negative(vsp1Id, null, "non existing component id", p1Id, USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testCreate") - public void testGetNonExistingVspId_negative() { - testGet_negative("non existing vsp id", null, component11Id, p1Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = "testCreate") - public void testGet() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity - actual = testGet(vsp1Id, VERSION01, component11Id, p1Id, USER1); - Assert.assertNull(actual.getArtifactName()); - } - - @Test - public void testUpdateNonExistingProcessId_negative() { - testUpdate_negative(vsp1Id, component11Id, "non existing process id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testCreate") - public void testUpdateNonExistingComponentId_negative() { - testUpdate_negative(vsp1Id, "non existing component id", p1Id, USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testCreate") - public void testUpdateNonExistingVspId_negative() { - testUpdate_negative("non existing vsp id", component11Id, p1Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = {"testGet"}) - public void testUpdate() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity - expected = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vsp1Id, null, component11Id, p1Id); - expected.setName("p1 name updated"); - expected.setDescription("p1 desc updated"); - - vendorSoftwareProductManager.updateProcess(expected, USER1); - expected.setVersion(VERSION01); - - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity actual = - vendorSoftwareProductDao.getProcess(vsp1Id, VERSION01, component11Id, p1Id); - Assert.assertEquals(actual, expected); - } - - @Test - public void testListNonExistingComponentId_negative() { - testList_negative(vsp1Id, null, "non existing component id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test - public void testListNonExistingVspId_negative() { - testList_negative("non existing vsp id", null, component11Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = {"testGet"}) - public void testList() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity - p2 = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vsp1Id, null, component11Id, null); - p2.setName("p2 name"); - p2.setDescription("p2 desc"); - - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity createdP2 = vendorSoftwareProductManager.createProcess(p2, USER1); - p2Id = createdP2.getId(); - - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity> actual = - vendorSoftwareProductManager.listProcesses(vsp1Id, null, component11Id, USER1); - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity> expected = - vendorSoftwareProductDao.listProcesses(vsp1Id, VERSION01, component11Id); - Assert.assertEquals(actual.size(), 2); - Assert.assertEquals(actual, expected); - } - - @Test(dependsOnMethods = {"testUpdate", "testList"}) - public void testCreateWithRemovedName() { - testCreate(vsp1Id, component11Id); - } - - @Test - public void testDeleteNonExistingProcessId_negative() { - testDelete_negative(vsp1Id, component11Id, "non existing process id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testList") - public void testDeleteNonExistingComponentId_negative() { - testDelete_negative(vsp1Id, "non existing component id", p1Id, USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testList") - public void testDeleteNonExistingVspId_negative() { - testDelete_negative("non existing vsp id", component11Id, p1Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = "testList") - public void testDelete() { - vendorSoftwareProductManager.deleteProcess(vsp1Id, component11Id, p1Id, USER1); - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity actual = - vendorSoftwareProductDao.getProcess(vsp1Id, VERSION01, component11Id, p1Id); - Assert.assertNull(actual); - } - - @Test - public void testUploadFileNonExistingProcessId_negative() { - testUploadFile_negative(vsp1Id, component11Id, "non existing process id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testList") - public void testUploadFileNonExistingComponentId_negative() { - testUploadFile_negative(vsp1Id, "non existing component id", p2Id, USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testList") - public void testUploadFileNonExistingVspId_negative() { - testUploadFile_negative("non existing vsp id", component11Id, p2Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = "testList") - public void testGetFileWhenNone_negative() { - testGetFile_negative(vsp1Id, null, component11Id, p2Id, USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testList") - public void testDeleteFileWhenNone_negative() { - testDeleteFile_negative(vsp1Id, component11Id, p2Id, USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = {"testGetFileWhenNone_negative", "testDeleteFileWhenNone_negative"}) - public void testUploadFile() { - vendorSoftwareProductManager - .uploadProcessArtifact(new ByteArrayInputStream("bla bla".getBytes()), ARTIFACT_NAME, - vsp1Id, component11Id, p2Id, USER1); - ProcessArtifactEntity actual = - vendorSoftwareProductDao.getProcessArtifact(vsp1Id, VERSION01, component11Id, p2Id); - Assert.assertNotNull(actual); - Assert.assertNotNull(actual.getArtifact()); - Assert.assertEquals(actual.getArtifactName(), ARTIFACT_NAME); - } - - @Test(dependsOnMethods = "testUploadFile") - public void testGetAfterUploadFile() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity - actual = testGet(vsp1Id, VERSION01, component11Id, p2Id, USER1); - Assert.assertEquals(actual.getArtifactName(), ARTIFACT_NAME); - } - - @Test - public void testGetFileNonExistingProcessId_negative() { - testGetFile_negative(vsp1Id, null, component11Id, "non existing process id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testList") - public void testGetFileNonExistingComponentId_negative() { - testGetFile_negative(vsp1Id, null, "non existing component id", p2Id, USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testList") - public void testGetFileNonExistingVspId_negative() { - testGetFile_negative("non existing vsp id", null, component11Id, p2Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = "testUploadFile") - public void testGetFile() { - File actual = - vendorSoftwareProductManager.getProcessArtifact(vsp1Id, null, component11Id, p2Id, USER1); - Assert.assertNotNull(actual); - ProcessArtifactEntity expected = - vendorSoftwareProductDao.getProcessArtifact(vsp1Id, VERSION01, component11Id, p2Id); - Assert.assertNotNull(expected); - Assert.assertNotNull(expected.getArtifact()); - } - - @Test - public void testDeleteFileNonExistingProcessId_negative() { - testDeleteFile_negative(vsp1Id, component11Id, "non existing process id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testList") - public void testDeleteFileNonExistingComponentId_negative() { - testDeleteFile_negative(vsp1Id, "non existing component id", p2Id, USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test(dependsOnMethods = "testList") - public void testDeleteFileNonExistingVspId_negative() { - testDeleteFile_negative("non existing vsp id", component11Id, p2Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = "testGetFile") - public void testDeleteFile() { - vendorSoftwareProductManager.deleteProcessArtifact(vsp1Id, component11Id, p2Id, USER1); - ProcessArtifactEntity expected = - vendorSoftwareProductDao.getProcessArtifact(vsp1Id, VERSION01, component11Id, p2Id); - Assert.assertNull(expected.getArtifact()); - } - - @Test - public void testDeleteListNonExistingComponentId_negative() { - testDeleteList_negative(vsp1Id, "non existing component id", USER1, - VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); - } - - @Test - public void testDeleteListNonExistingVspId_negative() { - testDeleteList_negative("non existing vsp id", component11Id, USER1, - VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST); - } - - @Test(dependsOnMethods = {"testDeleteFile"}) - public void testDeleteList() { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity - p3 = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vsp1Id, null, component11Id, null); - p3.setName("p3 name"); - p3.setDescription("p3 desc"); - vendorSoftwareProductManager.createProcess(p3, USER1); - - vendorSoftwareProductManager.deleteProcesses(vsp1Id, component11Id, USER1); - - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity> actual = - vendorSoftwareProductManager.listProcesses(vsp1Id, null, component11Id, USER1); - Assert.assertEquals(actual.size(), 0); - } - - protected String testCreate(String vspId, String componentId) { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity - expected = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vspId, null, componentId, null); - expected.setName("p1 name"); - expected.setDescription("p1 desc"); - - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity created = vendorSoftwareProductManager.createProcess(expected, USER1); - Assert.assertNotNull(created); - expected.setId(created.getId()); - expected.setVersion(VERSION01); - - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity actual = - vendorSoftwareProductDao.getProcess(vspId, VERSION01, componentId, created.getId()); - - Assert.assertEquals(actual, expected); - - return created.getId(); - } - - private org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity testGet(String vspId, Version version, String componentId, String processId, - String user) { - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity actual = - vendorSoftwareProductManager.getProcess(vspId, null, componentId, processId, user); - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity expected = - vendorSoftwareProductDao.getProcess(vspId, version, componentId, processId); - Assert.assertEquals(actual, expected); - return actual; - } - - private void testCreate_negative( - org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity process, String user, String expectedErrorCode) { - try { - vendorSoftwareProductManager.createProcess(process, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testGet_negative(String vspId, Version version, String componentId, String processId, - String user, String expectedErrorCode) { - try { - vendorSoftwareProductManager.getProcess(vspId, version, componentId, processId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testUpdate_negative(String vspId, String componentId, String processId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager - .updateProcess(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vspId, null, componentId, processId), user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testList_negative(String vspId, Version version, String componentId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.listProcesses(vspId, version, componentId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testDeleteList_negative(String vspId, String componentId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.deleteProcesses(vspId, componentId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testDelete_negative(String vspId, String componentId, String processId, String user, - String expectedErrorCode) { - try { - vendorSoftwareProductManager.deleteProcess(vspId, componentId, processId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testGetFile_negative(String vspId, Version version, String componentId, - String processId, String user, String expectedErrorCode) { - try { - vendorSoftwareProductManager.getProcessArtifact(vspId, version, componentId, processId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testUploadFile_negative(String vspId, String componentId, String processId, - String user, String expectedErrorCode) { - try { - vendorSoftwareProductManager - .uploadProcessArtifact(new ByteArrayInputStream("bla bla".getBytes()), "artifact.sh", - vspId, componentId, processId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - - private void testDeleteFile_negative(String vspId, String componentId, String processId, - String user, String expectedErrorCode) { - try { - vendorSoftwareProductManager.deleteProcessArtifact(vspId, componentId, processId, user); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), expectedErrorCode); - } - } - -} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/QuestionnaireDataServiceTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/QuestionnaireDataServiceTest.java new file mode 100644 index 0000000000..948d46ba10 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/QuestionnaireDataServiceTest.java @@ -0,0 +1,160 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorsoftwareproduct; + + +import org.apache.commons.collections4.MapUtils; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.openecomp.core.model.dao.ServiceModelDao; +import org.openecomp.core.model.types.ServiceElement; +import org.openecomp.core.validation.util.MessageContainerUtil; +import org.openecomp.sdc.activityLog.ActivityLogManager; +import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity; +import org.openecomp.sdc.datatypes.error.ErrorLevel; +import org.openecomp.sdc.healing.api.HealingManager; +import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; +import org.openecomp.sdc.vendorsoftwareproduct.impl.OrchestrationTemplateCandidateManagerImpl; +import org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.InformationArtifactData; +import org.openecomp.sdc.vendorsoftwareproduct.questionnaire.QuestionnaireDataService; +import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor; +import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager; +import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService; +import org.openecomp.sdc.vendorsoftwareproduct.tree.UploadFileTest; +import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.ComponentQuestionnaire; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.io.InputStream; +import java.util.List; +import java.util.Objects; + +import static org.mockito.Mockito.verify; +import static org.mockito.Matchers.eq; + +public class QuestionnaireDataServiceTest { + public static final Version VERSION = new Version(0, 1); + private QuestionnaireDataService questionnaireDataService;// = new QuestionnaireDataServiceImpl(); + + @Mock + private VendorSoftwareProductDao vendorSoftwareProductDaoMock; + @Mock + private CandidateService candidateServiceMock; + @Mock + private HealingManager healingManagerMock; + @Mock + private CompositionDataExtractor compositionDataExtractorMock; + @Mock + private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDaoMock; + @Mock + private CompositionEntityDataManager compositionEntityDataManagerMock; + @Mock + private ActivityLogManager activityLogManagerMock; + + @Captor + private ArgumentCaptor<ActivityLogEntity> activityLogEntityArg; + + @InjectMocks + private OrchestrationTemplateCandidateManagerImpl candidateManager; + + private UploadFileTest uploadFileTest = new UploadFileTest(); + + private static String vspId; + private static Version vspActiveVersion; + private static final String USER1 = "vspTestUser1"; + + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + // TODO: 3/15/2017 fix and enable //@Test + public void testQuestionnaireDataAfterLegalUploadWithComposition() { + InformationArtifactData informationArtifactData = + uploadFileAndValidateInformationArtifactData("/fullComposition", 5); + + assertQuestionnaireValuesAreAsExpected(informationArtifactData, false); + } + + + // TODO: 3/15/2017 fix and enable //@Test + public void testQuestionnaireDataAfterLegalUploadEmptyComposition() { + uploadFileAndValidateInformationArtifactData("/emptyComposition", 0); + } + + + // TODO: 3/15/2017 fix and enable //@Test + public void testQuestionnaireDataAfterIllegalUpload() { + InputStream zipInputStream = uploadFileTest.getZipInputStream("/missingYml"); + UploadFileResponse uploadFileResponse = candidateManager + .upload(vspId, VERSION, zipInputStream, USER1); + + InformationArtifactData informationArtifactData = questionnaireDataService + .generateQuestionnaireDataForInformationArtifact(vspId, vspActiveVersion); + + } + + private InformationArtifactData uploadFileAndValidateInformationArtifactData(String filePath, + int listSizeToCheck) { + InputStream zipInputStream = uploadFileTest.getZipInputStream(filePath); + UploadFileResponse uploadFileResponse = candidateManager + .upload(vspId, VERSION, + zipInputStream, USER1); + candidateManager.process(vspId, VERSION, USER1); + + Assert.assertTrue(MapUtils.isEmpty( + MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, uploadFileResponse.getErrors()))); + + InformationArtifactData informationArtifactData = questionnaireDataService + .generateQuestionnaireDataForInformationArtifact(vspId, vspActiveVersion); + Assert.assertNotNull(informationArtifactData); + + List<ComponentQuestionnaire> componentQuestionnaireList = + informationArtifactData.getComponentQuestionnaires(); + Assert.assertEquals(componentQuestionnaireList.size(), listSizeToCheck); + + verify(activityLogManagerMock).addActionLog(activityLogEntityArg.capture(),eq(USER1)); + ActivityLogEntity activityLogEntity = activityLogEntityArg.getValue(); + Assert.assertEquals(activityLogEntity.getVersionId(), String.valueOf(VERSION.getMajor()+1)); + Assert.assertTrue(activityLogEntity.isSuccess()); + + return informationArtifactData; + } + + + private void assertQuestionnaireValuesAreAsExpected( + InformationArtifactData informationArtifactData, boolean condition) { + Assert.assertEquals( + Objects.isNull(informationArtifactData.getComponentQuestionnaires().get(0).getCompute()), + condition); + Assert.assertEquals( + Objects.isNull(informationArtifactData.getComponentQuestionnaires().get(0).getStorage()), + condition); + } + +} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VSPFullTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VSPFullTest.java index ebc4c3af64..d4dea70f2f 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VSPFullTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VSPFullTest.java @@ -1,24 +1,55 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + package org.openecomp.sdc.vendorsoftwareproduct; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.io.IOUtils; +import org.openecomp.core.enrichment.types.ArtifactType; +import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory; +import org.openecomp.core.util.UniqueValueUtil; +import org.openecomp.core.utilities.CommonMethods; import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition; import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity; +import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity; +import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity; import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade; +import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse; import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProductInfo; +import org.openecomp.sdc.vendorsoftwareproduct.utils.VSPCommon; import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory; -import org.openecomp.core.util.UniqueValueUtil; -import org.openecomp.core.utilities.CommonMethods; -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.io.IOUtils; import org.testng.Assert; import org.testng.annotations.Test; -import java.io.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.net.URL; import java.util.Collection; import java.util.HashMap; @@ -27,17 +58,21 @@ import java.util.Set; import java.util.stream.Collectors; public class VSPFullTest { +/* public static final Version VERSION01 = new Version(0, 1); - private static final org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao - vendorSoftwareProductDao = - VendorSoftwareProductDaoFactory.getInstance().createInterface(); + private static final VendorSoftwareProductDao vendorSoftwareProductDao = + VendorSoftwareProductDaoFactory + .getInstance().createInterface(); private static final String USER1 = "vspTestUser1"; - private static VendorSoftwareProductManager vendorSoftwareProductManager = - new VendorSoftwareProductManagerImpl(); + private static VendorSoftwareProductManager vendorSoftwareProductManager = null; + //new VendorSoftwareProductManagerImpl(); private static VendorLicenseFacade vendorLicenseFacade = - org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory.getInstance().createInterface(); + VendorLicenseFacadeFactory.getInstance().createInterface(); + private OrchestrationTemplateCandidateManager candidateManager; + private MibManager mibManager; + private NicManager nicManager; @Test public void testEnrichModelInSubmit() { @@ -51,13 +86,11 @@ public class VSPFullTest { String entitlementPoolId = vendorLicenseFacade .createEntitlementPool(new EntitlementPoolEntity(vlm1Id, null, null), USER1).getId(); - org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity - featureGroup = new org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity(vlm1Id, null, null); + FeatureGroupEntity featureGroup = new FeatureGroupEntity(vlm1Id, null, null); featureGroup.getEntitlementPoolIds().add(entitlementPoolId); String featureGroupId = vendorLicenseFacade.createFeatureGroup(featureGroup, USER1).getId(); - org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity - licenseAgreement = new org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity(vlm1Id, null, null); + LicenseAgreementEntity licenseAgreement = new LicenseAgreementEntity(vlm1Id, null, null); licenseAgreement.getFeatureGroupIds().add(featureGroupId); String licenseAgreementId = vendorLicenseFacade.createLicenseAgreement(licenseAgreement, USER1).getId(); @@ -67,8 +100,14 @@ public class VSPFullTest { String vspId = createVsp(vlm1Id, licenseAgreementId, licenseAgreement.getFeatureGroupIds()); - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity> components = uploadFullCompositionFile(vspId); + Collection<ComponentEntity> components = uploadFullCompositionFile(vspId); + InputStream zis1 = getFileInputStream("/validation/zips/various/MIB.zip"); + mibManager + .upload(zis1, "MMSC.zip", vspId, VERSION01, + components.iterator().next().getId(), + ArtifactType.SNMP_TRAP, + USER1); //check in vendorSoftwareProductManager.checkin(vspId, USER1); @@ -78,11 +117,11 @@ public class VSPFullTest { //Assert.assertTrue(result.isValid()); //PackageInfo createPackageResult = vendorSoftwareProductManager.createPackage(vspId, USER1); - } catch (IOException e) { + } catch (IOException exception) { Assert.fail(); } VersionedVendorSoftwareProductInfo details = - vendorSoftwareProductManager.getVspDetails(vspId, null, USER1); + vendorSoftwareProductManager.getVsp(vspId, null, USER1); //File csar = vendorSoftwareProductManager.getTranslatedFile(vspId,details.getVersionInfo().getActiveVersion(),USER1); @@ -94,7 +133,7 @@ public class VSPFullTest { .getServiceModel(vspId, details.getVersionInfo().getActiveVersion()); Map<String, CapabilityDefinition> capabilities = new HashMap<>(); - for (org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity component : components) { + for (ComponentEntity component : components) { model.getServiceTemplates(). entrySet(). stream(). @@ -117,23 +156,26 @@ public class VSPFullTest { Assert.assertNotNull(capabilities); } - private Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity> uploadFullCompositionFile(String vspId) { - vendorSoftwareProductManager - .uploadFile(vspId, getFileInputStream("/vspmanager/zips/fullComposition.zip"), USER1); + private Collection<ComponentEntity> uploadFullCompositionFile(String vspId) { + candidateManager.upload(vspId, VERSION01, + getFileInputStream("/vspmanager/zips/fullComposition.zip"), USER1); + candidateManager.process(vspId, VERSION01, USER1); - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity> components = - vendorSoftwareProductManager.listComponents(vspId, null, USER1); + Collection<ComponentEntity> components = null; + //vendorSoftwareProductManager.listComponents(vspId, null, USER1); Assert.assertFalse(components.isEmpty()); - for (org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity component : components) { - Assert.assertNotNull(vendorSoftwareProductManager - .getComponentQuestionnaire(vspId, null, component.getId(), USER1).getData()); + for (ComponentEntity component : components) { +*/ +/* Assert.assertNotNull(vendorSoftwareProductManager + .getQuestionnaire(vspId, null, component.getId(), USER1).getData());*//* + - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity> nics = - vendorSoftwareProductManager.listNics(vspId, null, component.getId(), USER1); + Collection<NicEntity> nics = + nicManager.listNics(vspId, null, component.getId(), USER1); Assert.assertFalse(nics.isEmpty()); - for (org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity nic : nics) { - Assert.assertNotNull(vendorSoftwareProductManager + for (NicEntity nic : nics) { + Assert.assertNotNull(nicManager .getNicQuestionnaire(vspId, null, component.getId(), nic.getId(), USER1).getData()); } } @@ -146,14 +188,14 @@ public class VSPFullTest { .createVspDetails(null, null, "VSP_FullTest", "Test-vsp_fullTest", "vendorName", vlm1Id, "icon", "category", "subCategory", licenseAgreementId, featureGroupIds.stream().collect(Collectors.toList())); - String vspId = vendorSoftwareProductManager.createNewVsp(expectedVsp, USER1).getId(); + String vspId = vendorSoftwareProductManager.createVsp(expectedVsp, USER1).getId(); VspDetails actualVsp = vendorSoftwareProductDao.getVendorSoftwareProductInfo(new VspDetails(vspId, VERSION01)); expectedVsp.setId(vspId); expectedVsp.setVersion(VERSION01); - VendorSoftwareProductManagerTest.assertVspsEquals(actualVsp, expectedVsp); + //VendorSoftwareProductManagerImplTest.assertVspsEquals(actualVsp, expectedVsp); Assert.assertNotNull( vendorSoftwareProductManager.getVspQuestionnaire(vspId, null, USER1).getData()); return vspId; @@ -169,8 +211,8 @@ public class VSPFullTest { IOUtils.copy(in, out); in.close(); out.close(); - } catch (IOException e) { - throw new RuntimeException(e); + } catch (IOException exception) { + throw new RuntimeException(exception); } } @@ -184,11 +226,12 @@ public class VSPFullTest { URL url = this.getClass().getResource(fileName); try { return url.openStream(); - } catch (IOException e) { - e.printStackTrace(); + } catch (IOException exception) { + exception.printStackTrace(); return null; } } +*/ } diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductManagerTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductManagerTest.java deleted file mode 100644 index d94c868f25..0000000000 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductManagerTest.java +++ /dev/null @@ -1,672 +0,0 @@ -package org.openecomp.sdc.vendorsoftwareproduct; - -import org.openecomp.sdc.common.errors.CoreException; -import org.openecomp.sdc.common.errors.ErrorCode; -import org.openecomp.sdc.common.errors.ValidationErrorBuilder; -import org.openecomp.sdc.common.utils.AsdcCommon; -import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree; -import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; -import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition; -import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity; -import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity; -import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade; - -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.PackageInfo; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadDataEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes; -import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; -import org.openecomp.sdc.vendorsoftwareproduct.tree.UploadFileTest; -import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse; -import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse; -import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProductInfo; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.sdc.versioning.errors.VersioningErrorCodes; -import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory; -import org.openecomp.core.util.UniqueValueUtil; -import org.openecomp.core.utilities.CommonMethods; -import org.openecomp.core.validation.errors.Messages; -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.io.IOUtils; -import org.testng.Assert; -import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; - -import java.io.*; -import java.net.URL; -import java.util.*; -import java.util.stream.Collectors; - -public class VendorSoftwareProductManagerTest { - public static final Version VERSION01 = new Version(0, 1); - public static final Version VERSION10 = new Version(1, 0); - private static final String USER1 = "vspTestUser1"; - private static final String USER2 = "vspTestUser2"; - private static final String USER3 = "vspTestUser3"; - public static String id001 = null; - public static String id002 = null; - public static String id003 = null; - public static String id004 = null; - public static String id005 = null; - public static String id006 = null; - public static String id007 = null; - public static Version activeVersion002 = null; - private static VendorSoftwareProductManager vendorSoftwareProductManager = - new VendorSoftwareProductManagerImpl(); - private static org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao - vendorSoftwareProductDao = - VendorSoftwareProductDaoFactory.getInstance().createInterface(); - private static VendorLicenseFacade vendorLicenseFacade = - org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory.getInstance().createInterface(); - private static String vlm1Id; - private static String licenseAgreementId; - private static String featureGroupId; - private static VspDetails vsp1; - private static VspDetails vsp2; - UploadFileTest ut = new UploadFileTest(); - - static void assertVspsEquals(VspDetails actual, VspDetails expected) { - Assert.assertEquals(actual.getId(), expected.getId()); - Assert.assertEquals(actual.getVersion(), expected.getVersion()); - Assert.assertEquals(actual.getName(), expected.getName()); - Assert.assertEquals(actual.getDescription(), expected.getDescription()); - Assert.assertEquals(actual.getIcon(), expected.getIcon()); - Assert.assertEquals(actual.getCategory(), expected.getCategory()); - Assert.assertEquals(actual.getSubCategory(), expected.getSubCategory()); - Assert.assertEquals(actual.getVendorName(), expected.getVendorName()); - Assert.assertEquals(actual.getVendorId(), expected.getVendorId()); - Assert.assertEquals(actual.getLicenseAgreement(), expected.getLicenseAgreement()); - Assert.assertEquals(actual.getFeatureGroups(), expected.getFeatureGroups()); - } - - @BeforeTest - private void init() { - UniqueValueUtil - .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, - "VSP1"); - UniqueValueUtil - .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, - "VSP3"); - UniqueValueUtil - .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, - "VSP4"); - UniqueValueUtil - .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, - "VSP5"); - UniqueValueUtil - .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, - "vsp1_test"); - UniqueValueUtil - .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, - "vsp2_test"); - createVlm(); - } - - private void createVlm() { - vlm1Id = vendorLicenseFacade.createVendorLicenseModel(VSPCommon - .createVendorLicenseModel("vlmName " + CommonMethods.nextUuId(), "vlm1Id desc", "icon1"), - USER1).getId(); - - String entitlementPoolId = vendorLicenseFacade - .createEntitlementPool(new EntitlementPoolEntity(vlm1Id, null, null), USER1).getId(); - - org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity - featureGroup = new org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity(vlm1Id, null, null); - featureGroup.getEntitlementPoolIds().add(entitlementPoolId); - featureGroupId = vendorLicenseFacade.createFeatureGroup(featureGroup, USER1).getId(); - - LicenseAgreementEntity licenseAgreement = new LicenseAgreementEntity(vlm1Id, null, null); - licenseAgreement.getFeatureGroupIds().add(featureGroupId); - licenseAgreementId = - vendorLicenseFacade.createLicenseAgreement(licenseAgreement, USER1).getId(); - - vendorLicenseFacade.checkin(vlm1Id, USER1); - vendorLicenseFacade.submit(vlm1Id, USER1); - } - - @Test - public void testHeatSet() { - Set<HeatStructureTree> set = new HashSet<>(); - HeatStructureTree heatStructureTree1 = new HeatStructureTree(); - HeatStructureTree heatStructureTree2 = new HeatStructureTree(); - - heatStructureTree1.setFileName("file"); - - HeatStructureTree env = new HeatStructureTree(); - env.setFileName("env"); - heatStructureTree1.setEnv(env); - - heatStructureTree2.setFileName("file"); - heatStructureTree2.setEnv(env); - - set.add(heatStructureTree1); - set.add(heatStructureTree2); - - Assert.assertEquals(set.size(), 1); - } - - @Test(dependsOnMethods = {"testHeatSet"}) - public void testCreateVSP() { - VspDetails expectedVsp = VSPCommon - .createVspDetails(null, null, "VSP1", "Test-vsp", "vendorName", vlm1Id, "icon", "category", - "subCategory", "123", null); - - VspDetails createdVsp = vendorSoftwareProductManager.createNewVsp(expectedVsp, USER1); - id001 = createdVsp.getId(); - Assert.assertNotNull(id001); - Assert.assertNotNull(createdVsp.getVersion()); - - VspDetails actualVsp = - vendorSoftwareProductDao.getVendorSoftwareProductInfo(new VspDetails(id001, VERSION01)); - expectedVsp.setId(id001); - expectedVsp.setVersion(VERSION01); - - assertVspsEquals(actualVsp, expectedVsp); - Assert.assertNotNull( - vendorSoftwareProductManager.getVspQuestionnaire(id001, null, USER1).getData()); - } - - @Test(dependsOnMethods = {"testCreateVSP"}) - public void testCreateWithExistingName_negative() { - try { - VspDetails expectedVsp = VSPCommon - .createVspDetails(null, null, "Vsp1", "Test-vsp", "vendorName", vlm1Id, "icon", - "category", "subCategory", "123", null); - vendorSoftwareProductManager.createNewVsp(expectedVsp, USER1); - Assert.fail(); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), UniqueValueUtil.UNIQUE_VALUE_VIOLATION); - } - } - - @Test(dependsOnMethods = {"testCreateWithExistingName_negative"}) - public void testGetVSPDetails() { - VersionedVendorSoftwareProductInfo actualVsp = - vendorSoftwareProductManager.getVspDetails(id001, null, USER1); - - VspDetails expectedVsp = - vendorSoftwareProductDao.getVendorSoftwareProductInfo(new VspDetails(id001, VERSION01)); - assertVspsEquals(actualVsp.getVspDetails(), expectedVsp); - Assert.assertEquals(actualVsp.getVersionInfo().getActiveVersion(), VERSION01); - Assert.assertEquals(actualVsp.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Locked); - Assert.assertEquals(actualVsp.getVersionInfo().getLockingUser(), USER1); - } - - @Test(dependsOnMethods = {"testGetVSPDetails"}) - public void testUpdateVSP() { - VspDetails expectedVsp = VSPCommon - .createVspDetails(id001, VERSION01, "VSP1", null, "vendorName", vlm1Id, "icon", "category", - "subCategory", "456", null); - vendorSoftwareProductManager.updateVsp(expectedVsp, USER1); - - VspDetails actualVsp = - vendorSoftwareProductDao.getVendorSoftwareProductInfo(new VspDetails(id001, VERSION01)); - - assertVspsEquals(actualVsp, expectedVsp); - } - - @Test(dependsOnMethods = {"testUpdateVSP"}) - public void testGetVSPDetailsAfterUpdate() { - VersionedVendorSoftwareProductInfo vspDetails = - vendorSoftwareProductManager.getVspDetails(id001, null, USER1); - Assert.assertEquals(vspDetails.getVspDetails().getName(), "VSP1"); - Assert.assertEquals(vspDetails.getVspDetails().getCategory(), "category"); - Assert.assertEquals(vspDetails.getVspDetails().getSubCategory(), "subCategory"); - Assert.assertEquals(vspDetails.getVspDetails().getVendorId(), vlm1Id); - Assert.assertEquals(vspDetails.getVersionInfo().getActiveVersion(), VERSION01); - Assert.assertEquals(vspDetails.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Locked); - Assert.assertEquals(vspDetails.getVersionInfo().getLockingUser(), USER1); - } - - @Test(dependsOnMethods = {"testGetVSPDetailsAfterUpdate"}) - public void testGetVSPList() { - String licenseAgreementId = "bla bla"; - VspDetails vspDetails = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP3", "Test-vsp", "vendorName", vlm1Id, "icon", "category", - "subCategory", licenseAgreementId, null), USER1); - id002 = vspDetails.getId(); - vspDetails = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP4", "Test-vsp", "vendorName", vlm1Id, "icon", "category", - "subCategory", licenseAgreementId, null), USER1); - id003 = vspDetails.getId(); - - List<VersionedVendorSoftwareProductInfo> vspDetailsList = - vendorSoftwareProductManager.getVspList(null, USER1); - int foundCount = 0; - for (VersionedVendorSoftwareProductInfo vsp : vspDetailsList) { - if (vsp.getVspDetails().getId().equals(id001) || vsp.getVspDetails().getId().equals(id002) || - vsp.getVspDetails().getId().equals(id003)) { - foundCount++; - } - } - - Assert.assertEquals(foundCount, 3); - } - - @Test(dependsOnMethods = {"testGetVSPList"}) - // Unsupported operation for 1607 release. -/* public void testDeleteVSP() { - vendorSoftwareProductManager.deleteVsp(id001, USER1); - - VspDetails vspDetails = vendorSoftwareProductDao.getVendorSoftwareProductInfo(new VspDetails(id001, VERSION01)); - Assert.assertNull(vspDetails); - - List<VersionedVendorSoftwareProductInfo> vspDetailsList = vendorSoftwareProductManager.getVspList(null, USER1); - boolean found001 = false; - for (VersionedVendorSoftwareProductInfo vsp : vspDetailsList) { - if (vsp.getVspDetails().getId().equals(id001)) { - found001 = true; - } - } - - Assert.assertFalse(found001); - } - - - @Test(dependsOnMethods = {"testDeleteVSP"})*/ - public void testCheckin() { - vendorSoftwareProductManager.checkin(id002, USER1); - - VersionedVendorSoftwareProductInfo vsp2 = - vendorSoftwareProductManager.getVspDetails(id002, null, USER1); - Assert.assertEquals(vsp2.getVersionInfo().getActiveVersion(), VERSION01); - Assert.assertEquals(vsp2.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Available); - Assert.assertNull(vsp2.getVersionInfo().getLockingUser()); - } - - @Test(dependsOnMethods = {"testCheckin"}) - public void testCheckout() { - vendorSoftwareProductManager.checkout(id002, USER2); - - VersionedVendorSoftwareProductInfo vsp2 = - vendorSoftwareProductManager.getVspDetails(id002, null, USER2); - Assert.assertEquals(vsp2.getVersionInfo().getActiveVersion(), new Version(0, 2)); - Assert.assertEquals(vsp2.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Locked); - Assert.assertEquals(vsp2.getVersionInfo().getLockingUser(), USER2); - - vsp2 = vendorSoftwareProductManager.getVspDetails(id002, null, USER1); - Assert.assertEquals(vsp2.getVersionInfo().getActiveVersion(), VERSION01); - Assert.assertEquals(vsp2.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Locked); - Assert.assertEquals(vsp2.getVersionInfo().getLockingUser(), USER2); - } - - @Test(dependsOnMethods = {"testCheckout"}) - public void testUndoCheckout() { - vendorSoftwareProductManager.undoCheckout(id002, USER2); - - VersionedVendorSoftwareProductInfo vsp2 = - vendorSoftwareProductManager.getVspDetails(id002, null, USER2); - Assert.assertEquals(vsp2.getVersionInfo().getActiveVersion(), VERSION01); - Assert.assertEquals(vsp2.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Available); - Assert.assertNull(vsp2.getVersionInfo().getLockingUser()); - } - - @Test(dependsOnMethods = {"testUndoCheckout"}) - public void testListFinalVspsWhenNone() { - List<VersionedVendorSoftwareProductInfo> vspDetailsList = - vendorSoftwareProductManager.getVspList( - org.openecomp.sdc.versioning.dao.types.VersionStatus.Final.name(), USER1); - int nonFinalFoundCount = 0; - for (VersionedVendorSoftwareProductInfo vsp : vspDetailsList) { - if (vsp.getVspDetails().getId().equals(id001) || vsp.getVspDetails().getId().equals(id002) || - vsp.getVspDetails().getId().equals(id003)) { - nonFinalFoundCount++; - } - } - - Assert.assertEquals(nonFinalFoundCount, 0); - } - - @Test(dependsOnMethods = "testListFinalVspsWhenNone") - public void testSubmitWithoutLicencingData() throws IOException { - ValidationResponse validationResponse = vendorSoftwareProductManager.submit(id002, USER2); - Assert.assertNotNull(validationResponse); - Assert.assertFalse(validationResponse.isValid()); - List<String> errorIds = validationResponse.getVspErrors().stream().map(ErrorCode::id).distinct() - .collect(Collectors.toList()); - Assert.assertTrue(errorIds.contains(ValidationErrorBuilder.FIELD_VALIDATION_ERROR_ERR_ID)); - Assert.assertTrue(errorIds.contains(VendorSoftwareProductErrorCodes.VSP_INVALID)); - } - - @Test(dependsOnMethods = {"testSubmitWithoutLicencingData"}) - public void testSubmitWithoutUploadData() throws IOException { - vendorSoftwareProductManager.checkout(id002, USER2); - - VspDetails updatedVsp2 = - vendorSoftwareProductManager.getVspDetails(id002, null, USER2).getVspDetails(); - updatedVsp2.setFeatureGroups(new ArrayList<>()); - updatedVsp2.getFeatureGroups().add(featureGroupId); - updatedVsp2.setLicenseAgreement(licenseAgreementId); - - vendorSoftwareProductManager.updateVsp(updatedVsp2, USER2); - activeVersion002 = vendorSoftwareProductManager.checkin(id002, USER2); - - ValidationResponse validationResponse = vendorSoftwareProductManager.submit(id002, USER2); - Assert.assertNotNull(validationResponse); - Assert.assertFalse(validationResponse.isValid()); - Assert.assertTrue(validationResponse.getVspErrors().size() > 0); - } - - @Test(dependsOnMethods = {"testSubmitWithoutUploadData"}) - public void testUploadFile() throws IOException { - activeVersion002 = vendorSoftwareProductManager.checkout(id002, USER1); - testLegalUpload(id002, activeVersion002, - getFileInputStream("/vspmanager/zips/emptyComposition.zip"), USER1); - } - -/* @Test(dependsOnMethods = {"testUploadFile"}) - public void testUploadFile2() throws IOException { - testLegalUpload(id002, activeVersion002, ut.getZipInputStream("/legalUpload2"), USER1); - }*/ - - @Test - public void testDownloadFile() throws IOException { - VspDetails expectedVsp = VSPCommon - .createVspDetails(null, null, String.format("VSP-test-%s", vlm1Id), "Test-vsp", - "vendorName", vlm1Id, "icon", "category", "subCategory", "123", null); - VspDetails createdVsp = vendorSoftwareProductManager.createNewVsp(expectedVsp, USER1); - - id005 = createdVsp.getId(); - Assert.assertNotNull(id005); - Assert.assertNotNull(createdVsp.getVersion()); - - //InputStream zipInputStream = getFileInputStream("/legalUpload/zip/legalUpload.zip") - try (InputStream zipInputStream = ut.getZipInputStream("/legalUpload")) { - - UploadFileResponse resp = - vendorSoftwareProductManager.uploadFile(id005, zipInputStream, USER1); - File latestHeatPackage = vendorSoftwareProductManager.getLatestHeatPackage(id005, USER1); - - zipInputStream.reset(); - byte[] uploaded = IOUtils.toByteArray(zipInputStream); - - byte[] downloaded; - try (BufferedInputStream fileStream = new BufferedInputStream( - new FileInputStream(latestHeatPackage))) { - downloaded = IOUtils.toByteArray(fileStream); - } - - Assert.assertTrue(Arrays.equals(uploaded, downloaded)); - } - } - - @Test(dependsOnMethods = {"testUploadFile"}) - public void testUploadNotExistingFile() throws IOException { - URL url = this.getClass().getResource("notExist.zip"); - testLegalUpload(id002, activeVersion002, url == null ? null : url.openStream(), USER1); - } - - @Test(dependsOnMethods = {"testUploadFile"}, expectedExceptions = CoreException.class) - public void negativeTestCreatePackageBeforeSubmit() throws IOException { - vendorSoftwareProductManager.createPackage(id002, USER1); - } - - @Test(dependsOnMethods = {"negativeTestCreatePackageBeforeSubmit"}) - public void negativeTestGetVSPDetailsNonExistingVersion() { - try { - vendorSoftwareProductManager.getVspDetails(id002, new Version(43, 8), USER1); - Assert.assertTrue(false); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), VersioningErrorCodes.REQUESTED_VERSION_INVALID); - } - } - - @Test(dependsOnMethods = {"negativeTestCreatePackageBeforeSubmit"}) - public void negativeTestGetVSPDetailsCheckoutByOtherVersion() { - try { - vendorSoftwareProductManager.getVspDetails(id002, activeVersion002, USER2); - Assert.assertTrue(false); - } catch (CoreException e) { - Assert.assertEquals(e.code().id(), VersioningErrorCodes.REQUESTED_VERSION_INVALID); - } - } - - @Test(dependsOnMethods = {"negativeTestCreatePackageBeforeSubmit"}) - public void testGetVSPDetailsCandidateVersion() { - VersionedVendorSoftwareProductInfo actualVsp = - vendorSoftwareProductManager.getVspDetails(id002, new Version(0, 3), USER1); - - VspDetails expectedVsp = vendorSoftwareProductDao - .getVendorSoftwareProductInfo(new VspDetails(id002, new Version(0, 3))); - assertVspsEquals(actualVsp.getVspDetails(), expectedVsp); - Assert.assertEquals(actualVsp.getVersionInfo().getActiveVersion(), new Version(0, 3)); - Assert.assertEquals(actualVsp.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Locked); - Assert.assertEquals(actualVsp.getVersionInfo().getLockingUser(), USER1); - } - - @Test(dependsOnMethods = {"negativeTestCreatePackageBeforeSubmit"}) - public void testGetVSPDetailsOldVersion() { - VersionedVendorSoftwareProductInfo actualVsp = - vendorSoftwareProductManager.getVspDetails(id002, new Version(0, 1), USER2); - - VspDetails expectedVsp = vendorSoftwareProductDao - .getVendorSoftwareProductInfo(new VspDetails(id002, new Version(0, 1))); - assertVspsEquals(actualVsp.getVspDetails(), expectedVsp); - Assert.assertEquals(actualVsp.getVersionInfo().getActiveVersion(), new Version(0, 2)); - Assert.assertEquals(actualVsp.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Locked); - Assert.assertEquals(actualVsp.getVersionInfo().getLockingUser(), USER1); - } - - @Test(dependsOnMethods = {"negativeTestGetVSPDetailsNonExistingVersion", - "negativeTestGetVSPDetailsCheckoutByOtherVersion", "testGetVSPDetailsCandidateVersion", - "testGetVSPDetailsOldVersion"}) - public void testSubmit() throws IOException { - activeVersion002 = vendorSoftwareProductManager.checkin(id002, USER1); - ValidationResponse validationResponse = vendorSoftwareProductManager.submit(id002, USER1); - Assert.assertTrue(validationResponse.isValid()); - - VersionedVendorSoftwareProductInfo vsp2 = - vendorSoftwareProductManager.getVspDetails(id002, null, USER1); - Assert.assertEquals(vsp2.getVersionInfo().getActiveVersion(), VERSION10); - Assert.assertEquals(vsp2.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Final); - Assert.assertNull(vsp2.getVersionInfo().getLockingUser()); - } - - @Test(dependsOnMethods = {"testSubmit"}) - public void testListFinalVspsWhenExist() { - List<VersionedVendorSoftwareProductInfo> vspDetailsList = - vendorSoftwareProductManager.getVspList( - org.openecomp.sdc.versioning.dao.types.VersionStatus.Final.name(), USER1); - int nonFinalFoundCount = 0; - boolean found002 = false; - for (VersionedVendorSoftwareProductInfo vsp : vspDetailsList) { - if (vsp.getVspDetails().getId().equals(id002)) { - found002 = true; - } - if (vsp.getVspDetails().getId().equals(id001) || vsp.getVspDetails().getId().equals(id003)) { - nonFinalFoundCount++; - } - } - - Assert.assertEquals(nonFinalFoundCount, 0); - Assert.assertTrue(found002); - } - - @Test(dependsOnMethods = {"testSubmit"}) - public void testCreatePackage() throws IOException { - PackageInfo packageInfo = vendorSoftwareProductManager.createPackage(id002, USER1); - Assert.assertNotNull(packageInfo.getVspId()); - } - - @Test - public void testUploadFileWithoutManifest() { - InputStream zis = getFileInputStream("/vspmanager/zips/withoutManifest.zip"); - VspDetails vspDetails = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP5", "Test-vsp", "vendorName", vlm1Id, "icon", "category", - "subCategory", "456", null), USER1); - id004 = vspDetails.getId(); - - UploadFileResponse uploadFileResponse = - vendorSoftwareProductManager.uploadFile(id004, zis, USER1); - - Assert.assertNotNull(uploadFileResponse.getErrors()); - Assert.assertEquals(uploadFileResponse.getErrors().size(), 1); - } - - @Test(dependsOnMethods = {"testUploadFileWithoutManifest"}) - public void testUploadFileMissingFile() { - InputStream zis = getFileInputStream("/vspmanager/zips/missingYml.zip"); - - UploadFileResponse uploadFileResponse = - vendorSoftwareProductManager.uploadFile(id004, zis, USER1); - - Assert.assertEquals(uploadFileResponse.getErrors().size(), 3); - } - - @Test(dependsOnMethods = {"testUploadFileMissingFile"}) - public void testUploadNotZipFile() throws IOException { - URL url = this.getClass().getResource("/notZipFile"); - UploadFileResponse uploadFileResponse = - vendorSoftwareProductManager.uploadFile(id004, url.openStream(), USER1); - - Assert.assertNotNull(uploadFileResponse.getErrors()); - Assert.assertEquals( - uploadFileResponse.getErrors().get(AsdcCommon.UPLOAD_FILE).get(0).getMessage(), - Messages.INVALID_ZIP_FILE.getErrorMessage()); - } - - @Test - public void testEnrichModelInSubmit() { - UniqueValueUtil - .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, - "VSP_syb"); - VspDetails vspDetails = vendorSoftwareProductManager.createNewVsp(VSPCommon - .createVspDetails(null, null, "VSP_syb", "Test-vsp_syb", "vendorName", vlm1Id, "icon", - "category", "subCategory", "456", null), USER1); - String id = vspDetails.getId(); - - //upload file - InputStream zis = getFileInputStream("/vspmanager/zips/fullComposition.zip"); - UploadFileResponse uploadFileResponse = vendorSoftwareProductManager.uploadFile(id, zis, USER1); - - //check in - vendorSoftwareProductManager.checkin(id, USER1); - //submit - try { - ValidationResponse result = vendorSoftwareProductManager.submit(id, USER1); - } catch (IOException e) { - Assert.fail(); - } - VersionedVendorSoftwareProductInfo details = - vendorSoftwareProductManager.getVspDetails(id, null, USER1); - Collection<org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity> components = vendorSoftwareProductManager - .listComponents(id, details.getVersionInfo().getActiveVersion(), USER1); - - ToscaServiceModel model = - (ToscaServiceModel) EnrichedServiceModelDaoFactory.getInstance().createInterface() - .getServiceModel(id, details.getVersionInfo().getActiveVersion()); - - Map<String, CapabilityDefinition> capabilities = new HashMap<>(); - for (org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity component : components) { - model.getServiceTemplates(). - entrySet(). - stream(). - filter(entryValue -> entryValue.getValue() != null && - entryValue.getValue().getNode_types() != null && - entryValue.getValue(). - getNode_types(). - containsKey(component.getComponentCompositionData().getName())). - forEach(entryValue -> entryValue.getValue().getNode_types(). - values(). - stream(). - filter(type -> MapUtils.isNotEmpty(type.getCapabilities())). - forEach(type -> type.getCapabilities(). - entrySet(). - forEach(entry -> addCapability(entryValue.getKey(), capabilities, entry.getKey(), - entry.getValue())))); - - } - - Assert.assertNotNull(capabilities); - } - - @Test(dependsOnMethods = {"testEnrichModelInSubmit"}) - public void testVSPListSortedByModificationTimeDescOreder() { - vsp1 = VSPCommon - .createVspDetails(null, null, "vsp1_test", "Test-vsp", "vendorName", vlm1Id, "icon", - "category", "subCategory", "123", null); - id006 = vendorSoftwareProductManager.createNewVsp(vsp1, USER3).getId(); - - vsp2 = VSPCommon - .createVspDetails(null, null, "vsp2_test", "Test-vsp", "vendorName", vlm1Id, "icon", - "category", "subCategory", "123", null); - id007 = vendorSoftwareProductManager.createNewVsp(vsp2, USER3).getId(); - - assertVSPInWantedLocationInVSPList(id007, 0, USER3); - assertVSPInWantedLocationInVSPList(id006, 1, USER3); - } - - @Test(dependsOnMethods = {"testVSPListSortedByModificationTimeDescOreder"}) - public void testUpdatedVSPShouldBeInBeginningOfList() { - vendorSoftwareProductManager.updateVsp(vsp1, USER3); - assertVSPInWantedLocationInVSPList(id006, 0, USER3); - - vendorSoftwareProductManager - .uploadFile(id007, getFileInputStream("/vspmanager/zips/emptyComposition.zip"), USER3); - assertVSPInWantedLocationInVSPList(id007, 0, USER3); - } - - @Test(dependsOnMethods = {"testUpdatedVSPShouldBeInBeginningOfList"}) - public void testVSPInBeginningOfListAfterCheckin() { - vendorSoftwareProductManager.checkin(id006, USER3); - assertVSPInWantedLocationInVSPList(id006, 0, USER3); - - vendorSoftwareProductManager.checkin(id007, USER3); - assertVSPInWantedLocationInVSPList(id007, 0, USER3); - } - - @Test(dependsOnMethods = {"testVSPInBeginningOfListAfterCheckin"}) - public void testVSPInBeginningOfListAfterCheckout() { - vendorSoftwareProductManager.checkout(id006, USER3); - assertVSPInWantedLocationInVSPList(id006, 0, USER3); - } - - @Test(dependsOnMethods = {"testVSPInBeginningOfListAfterCheckout"}) - public void testVSPInBeginningOfListAfterUndoCheckout() { - vendorSoftwareProductManager.checkout(id007, USER3); - assertVSPInWantedLocationInVSPList(id007, 0, USER3); - - vendorSoftwareProductManager.undoCheckout(id006, USER3); - assertVSPInWantedLocationInVSPList(id006, 0, USER3); - } - - @Test(dependsOnMethods = {"testVSPInBeginningOfListAfterUndoCheckout"}) - public void testVSPInBeginningOfListAfterSubmit() throws IOException { - vendorSoftwareProductManager.checkin(id007, USER3); - vendorSoftwareProductManager.submit(id007, USER3); - - assertVSPInWantedLocationInVSPList(id007, 0, USER3); - } - - private void testLegalUpload(String vspId, Version version, InputStream upload, String user) { - vendorSoftwareProductManager.uploadFile(vspId, upload, user); - - UploadDataEntity uploadData = - vendorSoftwareProductDao.getUploadData(new UploadDataEntity(vspId, version)); - Assert.assertNotNull(uploadData); - Assert.assertNotNull(uploadData.getContentData()); - } - - private void addCapability(String entryValueKey, Map<String, CapabilityDefinition> capabilities, - String key, CapabilityDefinition value) { - - capabilities.put(entryValueKey + "_" + key, value); - } - - private InputStream getFileInputStream(String fileName) { - URL url = this.getClass().getResource(fileName); - try { - return url.openStream(); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - - private void assertVSPInWantedLocationInVSPList(String vspId, int location, String user) { - List<VersionedVendorSoftwareProductInfo> vspList = - vendorSoftwareProductManager.getVspList(null, user); - Assert.assertEquals(vspList.get(location).getVspDetails().getId(), vspId); - } -}
\ No newline at end of file diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VspHealTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VspHealTest.java new file mode 100644 index 0000000000..c091dcadac --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VspHealTest.java @@ -0,0 +1,217 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorsoftwareproduct; + +public class VspHealTest {/* + private static VendorSoftwareProductManager vendorSoftwareProductManager = null; + //new VendorSoftwareProductManagerImpl(); + private VendorSoftwareProductManagerImplTest vendorSoftwareProductManagerTest = + new VendorSoftwareProductManagerImplTest(); + private static OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao = + OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface(); + private static VendorSoftwareProductDao vendorSoftwareProductDao = + VendorSoftwareProductDaoFactory.getInstance().createInterface(); + private static ComponentDao componentDao = + ComponentDaoFactory.getInstance().createInterface(); + private static CompositionDataExtractor compositionDataExtractor = + CompositionDataExtractorFactory.getInstance().createInterface(); + private static NetworkDao networkDao = NetworkDaoFactory.getInstance().createInterface(); + private static NicDao nicDao = NicDaoFactory.getInstance().createInterface(); + private static VspDetails vspDetails; + private static final String USER = "vspTestUser1"; + public static final Version VERSION01 = new Version(0, 1); + private static String vspId; + private OrchestrationTemplateCandidateManager candidateManager; + + @BeforeTest + private void init() { + try { + vspDetails = new VspDetails(); + vspDetails.setName("vspName_" + CommonMethods.nextUuId()); + vspDetails.setVendorName("vendor"); + vspId = vendorSoftwareProductManager.createVsp(vspDetails, USER).getId(); + + } catch (Exception ignored) { + System.out.println(ignored.getMessage()); + } + } + + @Test + public void shouldReturnEmptyFileDataStructureBeforeZipUpload() { + Optional<FilesDataStructure> candidateFilesDataStructure = candidateManager + .getFilesDataStructure(vspId, VERSION01, USER); + Assert.assertNotNull(candidateFilesDataStructure); + Assert.assertTrue(candidateFilesDataStructure.isPresent()); + + checkFileDataStructureListsAreEmpty(candidateFilesDataStructure.get()); + } + + @Test(dependsOnMethods = "shouldReturnEmptyFileDataStructureBeforeZipUpload") + public void shouldReturnFileDataStructureOnEmptyFileDataStructureInDB() { + uploadAndProcessOrchestrationTemplate(vspId, USER, "/vspmanager/zips/emptyComposition.zip"); + + orchestrationTemplateCandidateDataDao + .deleteOrchestrationTemplateCandidateFileDataStructure(vspId, VERSION01); + Assert.assertEquals(Optional.empty(), orchestrationTemplateCandidateDataDao + .getOrchestrationTemplateCandidateFileDataStructure(vspId, VERSION01)); + + Optional<FilesDataStructure> candidateFilesDataStructure = candidateManager + .getFilesDataStructure(vspId, VERSION01, USER); + Assert.assertNotNull(candidateFilesDataStructure); + Assert.assertTrue(candidateFilesDataStructure.isPresent()); + } + + @Test(dependsOnMethods = "shouldReturnEmptyFileDataStructureBeforeZipUpload") + public void shouldReturnEmptyFileDataStructureOnEmptyUpload() { + try { + uploadAndProcessOrchestrationTemplate(vspId, USER, "/vspmanager/zips/zipFileWithFolder.zip"); + } catch (Exception e) { + Assert.assertEquals(e.getMessage(), + "Failed to get orchestration template for VSP with id " + vspId); + } + } + + @Test(dependsOnMethods = {"shouldReturnEmptyFileDataStructureOnEmptyUpload"}) + public void shouldHealVspOnIsOldTrue() { + vspDetails.setOldVersion(VersionHealingValues.True); + vendorSoftwareProductDao.updateQuestionnaire(vspId, VERSION01, null); + + vendorSoftwareProductManager.heal(vspId, VERSION01, USER); + + VspQuestionnaireEntity questionnaire = + vendorSoftwareProductDao.getQuestionnaire(vspId, VERSION01); + + Assert.assertNotNull(questionnaire.getQuestionnaireData()); + } + + @Test(dependsOnMethods = {"shouldHealVspOnIsOldTrue"}) + public void shouldHealNullQuestionnaire() { + vendorSoftwareProductDao.updateQuestionnaire(vspId, VERSION01, null); + vendorSoftwareProductManager.heal(vspId, VERSION01, USER); + QuestionnaireResponse vspQuestionnaire = + vendorSoftwareProductManager.getVspQuestionnaire(vspId, VERSION01, USER); + + Assert.assertNotNull(vspQuestionnaire.getData()); + } + + @Test(dependsOnMethods = {"shouldHealNullQuestionnaire"}) + public void shouldHealNullCompositionData() { + uploadAndProcessOrchestrationTemplate(vspId, USER, "/vspmanager/zips/fullComposition.zip"); + + Collection<ComponentEntity> componentEntitiesBeforeHeal = + vendorSoftwareProductDao.listComponents(vspId, VERSION01); + Collection<NetworkEntity> networkEntitiesBeforeHeal = + vendorSoftwareProductDao.listNetworks(vspId, VERSION01); + + deleteCompositionData(vspId, VERSION01); + + vendorSoftwareProductManager.heal(vspId, VERSION01, USER); + + Collection<ComponentEntity> componentEntitiesAfterHeal = + vendorSoftwareProductDao.listComponents(vspId, VERSION01); + Collection<NetworkEntity> networkEntitiesAfterHeal = + vendorSoftwareProductDao.listNetworks(vspId, VERSION01); + + checkCompositionDataIsHealed(componentEntitiesBeforeHeal, networkEntitiesBeforeHeal, + componentEntitiesAfterHeal, networkEntitiesAfterHeal); + } + + @Test(dependsOnMethods = {"shouldHealNullCompositionData"}) + public void shouldChangeComponentDisplayName() { + uploadAndProcessOrchestrationTemplate(vspId, USER, "/vspmanager/zips/vCDN.zip"); + + List<ComponentEntity> componentEntitiesBeforeHeal = + (List<ComponentEntity>) vendorSoftwareProductDao.listComponents(vspId, VERSION01); + Collection<ComponentEntity> componentsToHeal = new ArrayList<>(); + + for (ComponentEntity component : componentEntitiesBeforeHeal) { + changeComponentDisplayNameToOldVersion(component); + } + + vendorSoftwareProductManager.heal(vspId, VERSION01, USER); + + List<ComponentEntity> componentEntitiesAfterHeal = + (List<ComponentEntity>) vendorSoftwareProductDao.listComponents(vspId, VERSION01); + + assertComponentdisplayNameAsExpected(componentEntitiesBeforeHeal, componentEntitiesAfterHeal); + } + + private void assertComponentdisplayNameAsExpected( + List<ComponentEntity> componentEntitiesBeforeHeal, + List<ComponentEntity> componentEntitiesAfterHeal) { + ComponentEntity componentBefore = componentEntitiesBeforeHeal.get(0); + ComponentEntity componentAfter = componentEntitiesAfterHeal.get(0); + Assert.assertNotEquals(componentBefore, componentAfter); + + ComponentData componsitionDataBefore = componentBefore.getComponentCompositionData(); + ComponentData compositionDataAfter = componentAfter.getComponentCompositionData(); + Assert.assertTrue( + componsitionDataBefore.getDisplayName().contains(compositionDataAfter.getDisplayName())); + Assert.assertEquals( + compositionDataExtractor.getComponentDisplayName(componsitionDataBefore.getName()), + compositionDataAfter.getDisplayName()); + } + + private void changeComponentDisplayNameToOldVersion(ComponentEntity component) { + ComponentData componentData = component.getComponentCompositionData(); + componentData.setDisplayName(componentData.getName()); + componentData.setVfcCode(componentData.getDisplayName()); + component.setComponentCompositionData(componentData); + vendorSoftwareProductDao.updateComponent(component); + } + + + private void uploadAndProcessOrchestrationTemplate(String vspId, String user, + String filePath) { + + candidateManager.upload(vspId, VERSION01, + vendorSoftwareProductManagerTest + .getFileInputStream(filePath), user); + candidateManager.process(vspId, VERSION01, user); + } + + private void deleteCompositionData(String vspId, Version version) { + componentDao.deleteAll(vspId, version); + networkDao.deleteAll(vspId, version); + nicDao.deleteByVspId(vspId, version); + } + + private void checkCompositionDataIsHealed(Collection<ComponentEntity> componentEntitiesBeforeHeal, + Collection<NetworkEntity> networkEntitiesBeforeHeal, + Collection<ComponentEntity> componentEntitiesAfterHeal, + Collection<NetworkEntity> networkEntitiesAfterHeal) { + Assert.assertNotNull(componentEntitiesAfterHeal); + Assert.assertNotNull(networkEntitiesAfterHeal); + + Assert.assertEquals(componentEntitiesBeforeHeal.size(), componentEntitiesAfterHeal.size()); + Assert.assertEquals(networkEntitiesBeforeHeal.size(), networkEntitiesAfterHeal.size()); + } + + + private void checkFileDataStructureListsAreEmpty(FilesDataStructure filesDataStructure) { + Assert.assertEquals(filesDataStructure.getArtifacts().size(), 0); + Assert.assertEquals(filesDataStructure.getModules().size(), 0); + Assert.assertEquals(filesDataStructure.getNested().size(), 0); + Assert.assertEquals(filesDataStructure.getUnassigned().size(), 0); + } + +*/ +} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentDependencyModelTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentDependencyModelTest.java new file mode 100644 index 0000000000..c6374375f9 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentDependencyModelTest.java @@ -0,0 +1,149 @@ +package org.openecomp.sdc.vendorsoftwareproduct.impl; + +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; +import org.openecomp.core.utilities.CommonMethods; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManager; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManagerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager; +import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; +import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; +import org.openecomp.sdc.vendorsoftwareproduct.errors.ComponentDependencyModelErrorBuilder; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.errors.VersioningErrorCodes; +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; + +import static org.mockito.Mockito.doReturn; + +public class ComponentDependencyModelTest { + + @Spy + @InjectMocks + private ComponentDependencyModelManagerImpl componentDependencyModelManager; + @Mock + private VendorSoftwareProductManager vendorSoftwareProductManager; + @Mock + private VendorSoftwareProductDao vendorSoftwareProductDao; + @Mock + private ComponentDao componentDao; + @Mock + private ComponentManager componentManager; + + private static String vsp1Id; + private static String sourceComp1Id; + private static String sourceComp2Id; + private static String sourceComp3Id; + private static String sourceComp4Id; + private static final String USER1 = "TestUser1"; + private static final String USER2 = "TestUser2"; + private static final Version VERSION01 = new Version(0, 1); + private static String modelId = "model1"; + + + @BeforeClass + private void init() { + MockitoAnnotations.initMocks(this); + } + + public static VspDetails createVspDetails(String id, Version version, String name, String desc, + String vendorName, String vlm, String icon, + String category, String subCategory, + String licenseAgreement, List<String> featureGroups + ) { + VspDetails vspDetails = new VspDetails(id, version); + vspDetails.setName(name); + vspDetails.setDescription(desc); + vspDetails.setIcon(icon); + vspDetails.setCategory(category); + vspDetails.setSubCategory(subCategory); + vspDetails.setVendorName(vendorName); + vspDetails.setVendorId(vlm); + vspDetails.setVlmVersion(new Version(1, 0)); + vspDetails.setLicenseAgreement(licenseAgreement); + vspDetails.setFeatureGroups(featureGroups); + return vspDetails; + } + + @Test + public void testCreateNegative_NoSourceId() { + List<ComponentDependencyModelEntity> entities = new ArrayList<ComponentDependencyModelEntity>(); + entities.add(createModelEntity(null, sourceComp2Id)); + testCreate_negative(entities, vsp1Id, VERSION01, USER1, + ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().id(), + ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().message()); + + entities.removeAll(entities); + entities.add(createModelEntity("", sourceComp2Id)); + testCreate_negative(entities, vsp1Id, VERSION01, USER1, + ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().id(), + ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().message()); + } + + @Test + public void testCreateNegative_SameSourceTarget() { + List<ComponentDependencyModelEntity> entities = new ArrayList<ComponentDependencyModelEntity>(); + entities.add(createModelEntity("sourceComp1Id", "sourceComp1Id")); + testCreate_negative(entities, vsp1Id, VERSION01, USER1, + ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder().id(), + ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder().message()); + } + + @Test + public void testCreate() { + List<ComponentDependencyModelEntity> entities = new ArrayList<ComponentDependencyModelEntity>(); + entities.add(createModelEntity("sourceComp1Id", "sourceComp2Id")); + entities.add(createModelEntity("sourceComp3Id", "sourceComp4Id")); + + componentDependencyModelManager.createComponentDependencyModel(entities, vsp1Id, VERSION01, + USER1); + Mockito.verify(vendorSoftwareProductDao, Mockito.times(1)).createComponentDependencyModel + (entities, vsp1Id, + VERSION01); + } + + private ComponentDependencyModelEntity createModelEntity(String sourceId, String targetId) { + ComponentDependencyModelEntity entity = + new ComponentDependencyModelEntity(vsp1Id, VERSION01, modelId); + entity.setSourceComponentId(sourceId); + entity.setTargetComponentId(targetId); + entity.setRelation("dependsOn"); + return entity; + } + + private Collection<ComponentDependencyModelEntity> getDependencyModel(String vspId, + Version version, + String user) { + return componentDependencyModelManager.list(vspId, version, user); + } + + private void testCreate_negative(List<ComponentDependencyModelEntity> entities, String vspId, + Version version, String user, + String expectedErrorCode, String expectedErrorMsg) { + try { + componentDependencyModelManager.createComponentDependencyModel(entities, vspId, version, + user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + Assert.assertEquals(exception.getMessage(), expectedErrorMsg); + } + } +} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImplTest.java new file mode 100644 index 0000000000..34af0e67b2 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImplTest.java @@ -0,0 +1,413 @@ +package org.openecomp.sdc.vendorsoftwareproduct.impl; + +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.vendorsoftwareproduct.NicManager; +import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; +import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes; +import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager; +import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.errors.VersioningErrorCodes; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.util.Arrays; +import java.util.Collection; + +import static org.mockito.Matchers.anyObject; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + +public class ComponentManagerImplTest { + private static final String COMP_NOT_EXIST_MSG = + "Vendor Software Product Component with Id 1 does not exist for Vendor Software Product with id VSP_ID and version 0.1"; + private static final String USER = "componentsTestUser"; + private static final String VSP_ID = "VSP_ID"; + private static final Version VERSION = new Version(0, 1); + private static final String COMP1_ID = "1"; + private static final String COMP2_ID = "2"; + + @Mock + private ComponentDao componentDaoMock; + @Mock + private CompositionEntityDataManager compositionEntityDataManagerMock; + @Mock + private NicManager nicManagerMock; + @InjectMocks + @Spy + private ComponentManagerImpl componentManager; + + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testListWhenNone() { + Collection<ComponentEntity> components = + componentManager.listComponents(VSP_ID, VERSION, USER); + Assert.assertEquals(components.size(), 0); + } + + @Test(expectedExceptions = CoreException.class, + expectedExceptionsMessageRegExp = "Vendor Software Product Component with Id dummyComponentId " + + "does not exist for Vendor Software Product with id dummyVsp and version 1.0") + public void validateExceptionWhenTryingToRetriveNotExistingComponentEntity() { + Version version = Mockito.mock(Version.class); + doReturn("1.0").when(version).toString(); + doReturn(null).when(componentDaoMock).get(anyObject()); + componentManager.validateComponentExistence("dummyVsp", version, "dummyComponentId", + "dummyUser"); + } + + @Test + public void testList() { + doReturn(Arrays.asList( + createComponent(VSP_ID, VERSION, COMP1_ID), + createComponent(VSP_ID, VERSION, COMP2_ID))) + .when(componentDaoMock).list(anyObject()); + + Collection<ComponentEntity> actual = + componentManager.listComponents(VSP_ID, VERSION, USER); + Assert.assertEquals(actual.size(), 2); + } + + @Test + public void testDeleteListOnUploadVsp_negative() { + testDeleteList_negative(VSP_ID, VERSION, USER, + VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); + } + +/* @Test + public void testCreate() { + COMP1_ID = testCreate(VSP_ID); + } + + private String testCreate(String VSP_ID) { + ComponentEntity expected = new ComponentEntity(VSP_ID, null, null); + ComponentData compData = new ComponentData(); + compData.setName("comp1 name"); + compData.setDescription("comp1 desc"); + expected.setComponentCompositionData(compData); + + ComponentEntity created = componentManager.createComponent(expected, USER); + Assert.assertNotNull(created); + expected.setId(created.getId()); + expected.setVersion(VERSION); + + ComponentEntity actual = componentDaoMock.getComponent(VSP_ID, VERSION, created.getId()); + + Assert.assertEquals(actual, expected); + return created.getId(); + }*/ + +/* @Test + public void testCreateWithExistingName_negative() { + ComponentEntity component = new ComponentEntity(VSP_ID, null, null); + ComponentData compData = new ComponentData(); + compData.setName("comp1 name"); + compData.setDescription("comp1 desc"); + component.setComponentCompositionData(compData); + testCreate_negative(component, USER, UniqueValueUtil.UNIQUE_VALUE_VIOLATION); + }*/ + +/* @Test + public void testCreateWithExistingNameUnderOtherVsp() { + testCreate(vsp2Id); + }*/ + + @Test + public void testCreateOnUploadVsp_negative() { + testCreate_negative(new ComponentEntity(VSP_ID, VERSION, null), USER, + VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); + } + + @Test + public void testUpdateNonExistingComponentId_negative() { + String componentId = "non existing component id"; + doReturn(null).when(componentDaoMock).get(anyObject()); + + testUpdate_negative(VSP_ID, VERSION, componentId, USER, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testUpdateOnUploadVsp() { + doReturn(createComponent(VSP_ID, VERSION, COMP1_ID)).when(componentDaoMock) + .get(anyObject()); + + doReturn(new CompositionEntityValidationData(CompositionEntityType.component, COMP1_ID)) + .when(compositionEntityDataManagerMock) + .validateEntity(anyObject(), anyObject(), anyObject()); + + ComponentEntity component = new ComponentEntity(VSP_ID, VERSION, COMP1_ID); + ComponentData compData = new ComponentData(); + compData.setName(COMP1_ID + " name"); // no change + compData.setDisplayName(COMP1_ID + " display name"); // no change + compData.setVfcCode(COMP1_ID + " display name"); // no change + compData.setDescription(COMP1_ID + " desc updated"); // allowed change + component.setComponentCompositionData(compData); + + + CompositionEntityValidationData validationData = + componentManager.updateComponent(component, USER); + Assert.assertTrue(validationData == null || validationData.getErrors() == null); + verify(componentDaoMock).update(component); + } + + @Test + public void testIllegalUpdateOnUploadVsp() { + doReturn(createComponent(VSP_ID, VERSION, COMP1_ID)) + .when(componentDaoMock).get(anyObject()); + + CompositionEntityValidationData toBeReturned = + new CompositionEntityValidationData(CompositionEntityType.component, COMP1_ID); + toBeReturned.setErrors(Arrays.asList("error1", "error2")); + doReturn(toBeReturned) + .when(compositionEntityDataManagerMock) + .validateEntity(anyObject(), anyObject(), anyObject()); + + ComponentEntity component = new ComponentEntity(VSP_ID, VERSION, COMP1_ID); + ComponentData compData = new ComponentData(); + compData.setName("comp1 name updated");// not allowed: changed name + omitted display name + component.setComponentCompositionData(compData); + + CompositionEntityValidationData validationData = + componentManager.updateComponent(component, USER); + Assert.assertNotNull(validationData); + Assert.assertEquals(validationData.getErrors().size(), 2); + + verify(componentDaoMock, never()).update(component); + } + + @Test + public void testGetNonExistingComponentId_negative() { + String componentId = "non existing component id"; + doReturn(null).when(componentDaoMock).get(anyObject()); + + testGet_negative(VSP_ID, VERSION, componentId, USER, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testGet() { + ComponentEntity expected = createComponent(VSP_ID, VERSION, COMP1_ID); + doReturn(expected).when(componentDaoMock).get(anyObject()); + + doReturn("schema string").when(componentManager).getComponentCompositionSchema(anyObject()); + + testGet(VSP_ID, VERSION, COMP1_ID, USER, expected); + } + + + + +/* + @Test(dependsOnMethods = {"testUpdateOnUploadVsp", "testList"}) + public void testCreateWithERemovedName() { + testCreate(VSP_ID); + } + + @Test(dependsOnMethods = "testList") + public void testDeleteNonExistingComponentId_negative() { + testDelete_negative(VSP_ID, "non existing component id", USER, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + }*/ + + + +/* + @Test(dependsOnMethods = "testList") + public void testDelete() { + componentManager.deleteComponent(VSP_ID, COMP1_ID, USER); + ComponentEntity actual = componentDaoMock.getComponent(VSP_ID, VERSION, COMP1_ID); + Assert.assertNull(actual); + }*/ + + @Test + public void testDeleteOnUploadVsp_negative() { + testDelete_negative(VSP_ID, VERSION, COMP1_ID, USER, + VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); + } + + @Test(expectedExceptions = CoreException.class, + expectedExceptionsMessageRegExp = COMP_NOT_EXIST_MSG) + public void testGetNonExistingComponentQuestionnaire() throws Exception { + componentManager.getQuestionnaire(VSP_ID, VERSION, COMP1_ID, USER); + } + + @Test + public void testComponentNullQuestionnaire() throws Exception { + doReturn(new ComponentEntity(VSP_ID, VERSION, COMP1_ID)).when(componentDaoMock) + .getQuestionnaireData(VSP_ID, VERSION, COMP1_ID); + String schema = "schema string"; + doReturn(schema).when(componentManager).getComponentQuestionnaireSchema(anyObject()); + + QuestionnaireResponse questionnaire = + componentManager.getQuestionnaire(VSP_ID, VERSION, COMP1_ID, USER); + Assert.assertNotNull(questionnaire); + Assert.assertEquals(questionnaire.getData(), null); + Assert.assertEquals(questionnaire.getSchema(), schema); + Assert.assertNull(questionnaire.getErrorMessage()); + } + + + @Test + public void testGetQuestionnaire() throws Exception { + ComponentEntity component = new ComponentEntity(VSP_ID, VERSION, COMP1_ID); + component.setQuestionnaireData("{}"); + doReturn(component).when(componentDaoMock).getQuestionnaireData(VSP_ID, VERSION, COMP1_ID); + + NicEntity nicEntity1 = new NicEntity(); + Nic nic1 = new Nic(); + nic1.setName("nic1"); + nicEntity1.setNicCompositionData(nic1); + + NicEntity nicEntity2 = new NicEntity(); + Nic nic2 = new Nic(); + nic2.setName("nic2"); + nicEntity2.setNicCompositionData(nic2); + + doReturn(Arrays.asList(nicEntity1, nicEntity2)) + .when(nicManagerMock).listNics(VSP_ID, VERSION, COMP1_ID, USER); + + String schema = "schema string"; + doReturn(schema).when(componentManager).getComponentQuestionnaireSchema(anyObject()); + + QuestionnaireResponse questionnaire = + componentManager.getQuestionnaire(VSP_ID, VERSION, COMP1_ID, USER); + Assert.assertNotNull(questionnaire); + Assert.assertEquals(questionnaire.getData(), component.getQuestionnaireData()); + Assert.assertEquals(questionnaire.getSchema(), schema); + Assert.assertNull(questionnaire.getErrorMessage()); + } + + @Test(expectedExceptions = CoreException.class, + expectedExceptionsMessageRegExp = COMP_NOT_EXIST_MSG) + public void testUpdateNonExistingComponentQuestionnaire() throws Exception { + doReturn(null).when(componentDaoMock).get(anyObject()); + componentManager.updateQuestionnaire(VSP_ID, VERSION, COMP1_ID, "questionnaire data", USER); + } + + @Test + public void testUpdateQuestionnaire() throws Exception { + ComponentEntity component = createComponent(VSP_ID, VERSION, COMP1_ID); + doReturn(component).when(componentDaoMock).get(anyObject()); + + componentManager.updateQuestionnaire(VSP_ID, VERSION, COMP1_ID, "questionnaire data", USER); + + verify(componentDaoMock) + .updateQuestionnaireData(VSP_ID, VERSION, COMP1_ID, "questionnaire data"); + } + +/* + @Test(dependsOnMethods = "testDelete") + public void testDeleteList() { + ComponentEntity comp3 = new ComponentEntity(VSP_ID, null, null); + comp3.setName("comp3 name"); + comp3.setDescription("comp3 desc"); + componentManager.createComponent(comp3, USER); + + componentManager.deleteComponents(VSP_ID, USER); + + Collection<ComponentEntity> actual = componentManager.listComponents(VSP_ID, null, USER); + Assert.assertEquals(actual.size(), 0); + }*/ + + private void testGet(String vspId, Version version, String componentId, String user, + ComponentEntity expected) { + + CompositionEntityResponse<ComponentData> + response = componentManager.getComponent(vspId, version, componentId, user); + Assert.assertEquals(response.getId(), expected.getId()); + Assert.assertEquals(response.getData(), expected.getComponentCompositionData()); + Assert.assertNotNull(response.getSchema()); + } + + private void testCreate_negative(ComponentEntity component, String user, + String expectedErrorCode) { + try { + componentManager.createComponent(component, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testGet_negative(String vspId, Version version, String componentId, String user, + String expectedErrorCode) { + try { + componentManager.getComponent(vspId, version, componentId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testUpdate_negative(String vspId, Version version, String componentId, String user, + String expectedErrorCode) { + try { + componentManager + .updateComponent(new ComponentEntity(vspId, version, componentId), user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testList_negative(String vspId, Version version, String user, + String expectedErrorCode) { + try { + componentManager.listComponents(vspId, version, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testDeleteList_negative(String vspId, Version version, String user, + String expectedErrorCode) { + try { + componentManager.deleteComponents(vspId, version, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testDelete_negative(String vspId, Version version, String componentId, String user, + String expectedErrorCode) { + try { + componentManager.deleteComponent(vspId, version, componentId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + + public static ComponentEntity createComponent(String vspId, Version version, String compId) { + ComponentEntity componentEntity = new ComponentEntity(vspId, version, compId); + ComponentData compData = new ComponentData(); + compData.setName(compId + " name"); + compData.setDisplayName(compId + " display name"); + compData.setVfcCode(compId + " display name"); + compData.setDescription(compId + " desc"); + componentEntity.setComponentCompositionData(compData); + componentEntity.setQuestionnaireData("{}"); + return componentEntity; + } +}
\ No newline at end of file diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImplTest.java new file mode 100644 index 0000000000..54e979cdaf --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImplTest.java @@ -0,0 +1,139 @@ +package org.openecomp.sdc.vendorsoftwareproduct.impl; + +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.openecomp.core.enrichment.types.ArtifactType; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity; +import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.Arrays; +import java.util.Optional; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + +public class MibManagerImplTest { + + private static final String USER1 = "ComponentsUploadTestUser"; + private static final String COMPONENT_ID = "COMPONENT_ID"; + private static final String VSP_ID = "vspId"; + private static final Version VERSION = new Version(0, 1); + private static final String trapFileName = "MMSC.zip"; + private static final String pollFileName = "MNS OAM FW.zip"; + private static final String notZipFileName = "notZipFile"; + private static final String zipWithFoldersFileName = "zipFileWithFolder.zip"; + private static final String emptyZipFileName = "emptyZip.zip"; + private static final String ZIP_DIR = "/vspmanager/zips/"; + + @Mock + private VendorSoftwareProductDao vendorSoftwareProductDaoMock; + @Mock + private MibDao mibDaoMock; + @InjectMocks + private MibManagerImpl mibManager; + + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test(expectedExceptions = CoreException.class) + public void testUploadEmptyZip() { + InputStream zis = getFileInputStream(ZIP_DIR + emptyZipFileName); + mibManager.upload(zis, emptyZipFileName, VSP_ID, VERSION, COMPONENT_ID, + ArtifactType.SNMP_TRAP, USER1); + } + + @Test + public void testUploadInvalidZip() { + URL url = this.getClass().getResource("/notZipFile"); + try { + mibManager + .upload(url.openStream(), notZipFileName, VSP_ID, VERSION, COMPONENT_ID, + ArtifactType.SNMP_TRAP, USER1); + Assert.fail(); + } catch (Exception exception) { + Assert.assertEquals(exception.getMessage(), "Invalid zip file"); + } + } + + @Test + public void testUploadZipWithFolders() { + InputStream zis = getFileInputStream(ZIP_DIR + zipWithFoldersFileName); + + try { + mibManager + .upload(zis, zipWithFoldersFileName, VSP_ID, VERSION, COMPONENT_ID, + ArtifactType.SNMP_TRAP, USER1); + Assert.fail(); + } catch (Exception exception) { + Assert.assertEquals(exception.getMessage(), "Zip file should not contain folders"); + } + } + + + @Test + public void testListMibFilenames() { + MibEntity artifact1 = + new MibEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact1"); + artifact1.setType(ArtifactType.SNMP_TRAP); + artifact1.setArtifactName(trapFileName); + + MibEntity artifact2 = + new MibEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact2"); + artifact2.setType(ArtifactType.SNMP_POLL); + artifact2.setArtifactName(pollFileName); + + doReturn(Arrays.asList(artifact1, artifact2)) + .when(mibDaoMock).list(anyObject()); + + MibUploadStatus mibUploadStatus = + mibManager.listFilenames(VSP_ID, VERSION, COMPONENT_ID, USER1); + + Assert.assertEquals(mibUploadStatus.getSnmpTrap(), trapFileName); + Assert.assertEquals(mibUploadStatus.getSnmpPoll(), pollFileName); + } + + @Test (expectedExceptions = CoreException.class) + public void testDeleteComponentMibWhenNone() { + doReturn(Optional.empty()).when(mibDaoMock).getByType(any()); + mibManager.delete(VSP_ID, VERSION, COMPONENT_ID, ArtifactType.SNMP_POLL, USER1); + + verify(mibDaoMock, never()).delete(anyObject()); + } + + @Test + public void testDeleteComponentMib() { + doReturn(Optional.of(new MibEntity(VSP_ID, VERSION, COMPONENT_ID, "artifactId"))).when + (mibDaoMock).getByType(anyObject()); + + mibManager.delete(VSP_ID, VERSION, COMPONENT_ID, ArtifactType.SNMP_POLL, USER1); + + verify(mibDaoMock).delete(anyObject()); + } + + + private InputStream getFileInputStream(String fileName) { + URL url = this.getClass().getResource(fileName); + try { + return url.openStream(); + } catch (IOException exception) { + exception.printStackTrace(); + return null; + } + } +} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NetworkManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NetworkManagerImplTest.java new file mode 100644 index 0000000000..f8710b8cc6 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NetworkManagerImplTest.java @@ -0,0 +1,285 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorsoftwareproduct.impl; + +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity; +import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes; +import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager; +import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.errors.VersioningErrorCodes; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.util.Arrays; +import java.util.Collection; + +import static org.mockito.Matchers.anyObject; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + +public class NetworkManagerImplTest { + + private static final String USER1 = "networksTestUser1"; + private static final String USER2 = "networksTestUser2"; + private static final String VSP_ID = "vsp"; + private static final Version VERSION = new Version(0, 1); + private static final String NETWORK1_ID = "network1"; + private static final String NETWORK2_ID = "network2"; + + @Mock + private NetworkDao networkDaoMock; + @Mock + private CompositionEntityDataManager compositionEntityDataManagerMock; + @InjectMocks + @Spy + private NetworkManagerImpl networkManager; + + static NetworkEntity createNetwork(String vspId, Version version, String networkId) { + NetworkEntity networkEntity = new NetworkEntity(vspId, version, networkId); + Network networkData = new Network(); + networkData.setName(networkId + " name"); + networkData.setDhcp(true); + networkEntity.setNetworkCompositionData(networkData); + return networkEntity; + } + + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testListWhenNone() { + Collection<NetworkEntity> networks = + networkManager.listNetworks(VSP_ID, null, USER1); + Assert.assertEquals(networks.size(), 0); + } + + @Test + public void testList() { + doReturn(Arrays.asList( + createNetwork(VSP_ID, VERSION, NETWORK1_ID), + createNetwork(VSP_ID, VERSION, NETWORK2_ID))) + .when(networkDaoMock).list(anyObject()); + + Collection<NetworkEntity> actual = networkManager.listNetworks(VSP_ID, VERSION, USER1); + Assert.assertEquals(actual.size(), 2); + } + +/* @Test(dependsOnMethods = "testListWhenNone") + public void testCreate() { + NETWORK1_ID = testCreate(VSP_ID); + } + + private String testCreate(String vspId) { + NetworkEntity expected = new NetworkEntity(vspId, null, null); + Network networkData = new Network(); + networkData.setName("network1 name"); + networkData.setDhcp(true); + expected.setNetworkCompositionData(networkData); + + + NetworkEntity created = networkManager.createNetwork(expected, USER1); + Assert.assertNotNull(created); + expected.setId(created.getId()); + expected.setVersion(VERSION01); + + NetworkEntity actual = networkDaoMock.getNetwork(vspId, VERSION01, created.getId()); + + Assert.assertEquals(actual, expected); + return created.getId(); + } + + @Test(dependsOnMethods = {"testCreate"}) + public void testCreateWithExistingName_negative() { + NetworkEntity network = new NetworkEntity(VSP_ID, null, null); + Network networkData = new Network(); + networkData.setName("network1 name"); + networkData.setDhcp(true); + network.setNetworkCompositionData(networkData); + testCreate_negative(network, USER1, UniqueValueUtil.UNIQUE_VALUE_VIOLATION); + }*/ + + @Test + public void testCreateOnUploadVsp_negative() { + testCreate_negative(new NetworkEntity(VSP_ID, VERSION, null), USER1, + VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); + } + + /* @Test(dependsOnMethods = {"testCreate"}) + public void testCreateWithExistingNameUnderOtherVsp() { + testCreate(vsp2Id); + } + */ + + @Test + public void testUpdateNonExistingNetworkId_negative() { + testUpdate_negative(VSP_ID, VERSION, NETWORK1_ID, USER1, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testIllegalUpdateOnUploadVsp() { + doReturn(createNetwork(VSP_ID, VERSION, NETWORK1_ID)) + .when(networkDaoMock).get(anyObject()); + + CompositionEntityValidationData toBeReturned = + new CompositionEntityValidationData(CompositionEntityType.network, NETWORK1_ID); + toBeReturned.setErrors(Arrays.asList("error1", "error2")); + doReturn(toBeReturned) + .when(compositionEntityDataManagerMock) + .validateEntity(anyObject(), anyObject(), anyObject()); + + NetworkEntity networkEntity = new NetworkEntity(VSP_ID, VERSION, NETWORK1_ID); + Network networkData = new Network(); + networkData.setName(NETWORK1_ID + " name updated"); + networkData.setDhcp(false); + networkEntity.setNetworkCompositionData(networkData); + + CompositionEntityValidationData validationData = + networkManager.updateNetwork(networkEntity, USER1); + Assert.assertNotNull(validationData); + Assert.assertEquals(validationData.getErrors().size(), 2); + + verify(networkDaoMock, never()).update(networkEntity); + } + + @Test + public void testGetNonExistingNetworkId_negative() { + testGet_negative(VSP_ID, VERSION, NETWORK1_ID, USER1, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testGet() { + NetworkEntity network = createNetwork(VSP_ID, VERSION, NETWORK1_ID); + doReturn(network) + .when(networkDaoMock).get(anyObject()); + doReturn("schema string").when(networkManager).getCompositionSchema(anyObject()); + + CompositionEntityResponse<Network> response = + networkManager.getNetwork(VSP_ID, VERSION, NETWORK1_ID, USER1); + Assert.assertEquals(response.getId(), network.getId()); + Assert.assertEquals(response.getData(), network.getNetworkCompositionData()); + Assert.assertNotNull(response.getSchema()); + } + + /* + @Test(dependsOnMethods = {"testUpdateOnUploadVsp", "testList"}) + public void testCreateWithERemovedName() { + testCreate(VSP_ID); + } + + @Test(dependsOnMethods = "testList") + public void testDeleteNonExistingNetworkId_negative() { + testDelete_negative(VSP_ID, "non existing network id", USER1, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + }*/ + +/* + @Test(dependsOnMethods = "testList") + public void testDelete() { + networkManager.deleteNetwork(VSP_ID, NETWORK1_ID, USER1); + NetworkEntity actual = networkDaoMock.getNetwork(VSP_ID, VERSION01, NETWORK1_ID); + Assert.assertNull(actual); + } + + + + @Test(dependsOnMethods = "testDelete") + public void testDeleteList() { + NetworkEntity network3 = new NetworkEntity(VSP_ID, null, null); + network3.setName("network3 name"); + network3.setDescription("network3 desc"); + networkManager.createNetwork(network3, USER1); + + networkManager.deleteNetworks(VSP_ID, USER1); + + Collection<NetworkEntity> actual = networkManager.listNetworks(VSP_ID, null, USER1); + Assert.assertEquals(actual.size(), 0); + }*/ + + @Test(dependsOnMethods = "testList") + public void testDeleteOnUploadVsp_negative() { + testDelete_negative(VSP_ID, VERSION, NETWORK1_ID, USER1, + VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); + } + + private void testCreate_negative(NetworkEntity network, String user, String expectedErrorCode) { + try { + networkManager.createNetwork(network, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testGet_negative(String vspId, Version version, String networkId, String user, + String expectedErrorCode) { + try { + networkManager.getNetwork(vspId, version, networkId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testUpdate_negative(String vspId, Version version, String networkId, String user, + String expectedErrorCode) { + try { + networkManager.updateNetwork(new NetworkEntity(vspId, version, networkId), user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testList_negative(String vspId, Version version, String user, + String expectedErrorCode) { + try { + networkManager.listNetworks(vspId, version, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testDelete_negative(String vspId, Version version, String networkId, String user, + String expectedErrorCode) { + try { + networkManager.deleteNetwork(vspId, version, networkId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } +} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java new file mode 100644 index 0000000000..a143fd36e8 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java @@ -0,0 +1,324 @@ +package org.openecomp.sdc.vendorsoftwareproduct.impl; + +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.vendorsoftwareproduct.NetworkManager; +import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; +import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes; +import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager; +import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.errors.VersioningErrorCodes; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.util.Arrays; +import java.util.Collection; + +import static org.mockito.Matchers.anyObject; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + +public class NicManagerImplTest { + private static final String NIC_NOT_EXIST_MSG = + "Vendor Software Product NIC with Id nic1 does not exist for Vendor Software Product with " + + "id VSP_ID and version 0.1"; + + private static final String USER = "nicTestUser"; + private static final String VSP_ID = "VSP_ID"; + private static final Version VERSION = new Version(0, 1); + private static final String COMPONENT_ID = "COMPONENT_ID"; + private static final String NIC1_ID = "nic1"; + private static final String NIC2_ID = "nic2"; + private static final String NETWORK1_ID = "network1"; + private static final String NETWORK2_ID = "network2"; + + @Mock + private NicDao nicDao; + @Mock + private CompositionEntityDataManager compositionEntityDataManagerMock; + @Mock + private NetworkManager networkManagerMock; + @InjectMocks + @Spy + private NicManagerImpl nicManager; + + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testListWhenNone() { + Collection<NicEntity> nics = nicManager.listNics(VSP_ID, VERSION, COMPONENT_ID, USER); + Assert.assertEquals(nics.size(), 0); + } + + @Test + public void testList() { + doReturn(Arrays.asList( + createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID), + createNic(VSP_ID, VERSION, COMPONENT_ID, NIC2_ID, NETWORK2_ID))) + .when(nicDao).list(anyObject()); + + NetworkEntity network1 = NetworkManagerImplTest.createNetwork(VSP_ID, VERSION, NETWORK1_ID); + NetworkEntity network2 = NetworkManagerImplTest.createNetwork(VSP_ID, VERSION, NETWORK2_ID); + doReturn(Arrays.asList(network1, network2)) + .when(networkManagerMock).listNetworks(VSP_ID, VERSION, USER); + + Collection<NicEntity> nics = nicManager.listNics(VSP_ID, VERSION, COMPONENT_ID, USER); + Assert.assertEquals(nics.size(), 2); + for (NicEntity nic : nics) { + Assert.assertEquals(nic.getNicCompositionData().getNetworkName(), + NIC1_ID.equals(nic.getId()) + ? network1.getNetworkCompositionData().getName() + : network2.getNetworkCompositionData().getName()); + } + } + +// @Test(dependsOnMethods = "testListWhenNone") +// public void testCreate() { +// NIC1_ID = testCreate(VSP_ID, COMPONENT_ID, NETWORK1_ID, NETWORK1_ID.getNetworkCompositionData().getName()); +// } + +/* @Test(dependsOnMethods = {"testCreate"}) + public void testCreateWithExistingName_negative() { + NicEntity nic = new NicEntity(VSP_ID, null, COMPONENT_ID, null); + Nic nicData = new Nic(); + nicData.setName("nic1 name"); + nic.setNicCompositionData(nicData); + testCreate_negative(nic, USER, UniqueValueUtil.UNIQUE_VALUE_VIOLATION); + }*/ + +// @Test(dependsOnMethods = {"testCreate"}) +// public void testCreateWithExistingNameUnderOtherComponent() { +// ComponentEntity component12 = new ComponentEntity(VSP_ID, null, null); +// ComponentData compData12 = new ComponentData(); +// compData12.setName("comp12 name"); +// compData12.setDescription("comp12 desc"); +// component12.setComponentCompositionData(compData12); +// +// String component12Id = nicManager.createComponent(component12, USER).getId(); +// testCreate(VSP_ID, component12Id, NETWORK1_ID, NETWORK1_ID.getNetworkCompositionData().getName()); +// } + +// @Test(dependsOnMethods = {"testCreate"}) +// public void testCreateWithExistingNameUnderOtherVsp() { +// testCreate(vsp2Id, component21Id, network2.getId(), network2.getNetworkCompositionData().getName()); +// } + + @Test + public void testCreateOnUploadVsp_negative() { + + testCreate_negative(new NicEntity(VSP_ID, VERSION, COMPONENT_ID, null), USER, + VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); + } + + @Test + public void testUpdateNonExistingNicId_negative() { + doReturn(null).when(nicDao).get(anyObject()); + + testUpdate_negative(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testUpdateOnUploadVsp() { + doReturn(createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID)) + .when(nicDao).get(anyObject()); + + doReturn(new CompositionEntityValidationData(CompositionEntityType.nic, NIC1_ID)) + .when(compositionEntityDataManagerMock) + .validateEntity(anyObject(), anyObject(), anyObject()); + + NicEntity nicEntity = new NicEntity(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID); + Nic nicData = new Nic(); + nicData.setName(NIC1_ID + " name"); + nicData.setDescription(NIC1_ID + " desc updated"); + nicData.setNetworkId(NETWORK1_ID); + nicEntity.setNicCompositionData(nicData); + + CompositionEntityValidationData validationData = + nicManager.updateNic(nicEntity, USER); + Assert.assertTrue(validationData == null || validationData.getErrors() == null); + verify(nicDao).update(nicEntity); + } + + @Test + public void testIllegalUpdateOnUploadVsp() { + doReturn(createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID)) + .when(nicDao).get(anyObject()); + + CompositionEntityValidationData toBeReturned = + new CompositionEntityValidationData(CompositionEntityType.nic, NIC1_ID); + toBeReturned.setErrors(Arrays.asList("error1", "error2")); + doReturn(toBeReturned) + .when(compositionEntityDataManagerMock) + .validateEntity(anyObject(), anyObject(), anyObject()); + + NicEntity nicEntity = new NicEntity(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID); + Nic nicData = new Nic(); + nicData.setName(NIC1_ID + " name updated"); + nicData.setDescription(NIC1_ID + " desc updated"); + nicData.setNetworkId(NETWORK1_ID); + nicEntity.setNicCompositionData(nicData); + + CompositionEntityValidationData validationData = nicManager.updateNic(nicEntity, USER); + Assert.assertNotNull(validationData); + Assert.assertEquals(validationData.getErrors().size(), 2); + + verify(nicDao, never()).update(nicEntity); + } + + + @Test + public void testGetNonExistingNicId_negative() { + testGet_negative(VSP_ID, VERSION, COMPONENT_ID, "non existing nic id", USER, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + + @Test + public void testGet() { + NicEntity expected = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID); + doReturn(expected).when(nicDao).get(anyObject()); + String compositionSchema = "schema string"; + doReturn(compositionSchema).when(nicManager).getNicCompositionSchema(anyObject()); + + CompositionEntityResponse<Nic> response = + nicManager.getNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER); + Assert.assertEquals(response.getId(), expected.getId()); + Assert.assertEquals(response.getData(), expected.getNicCompositionData()); + Assert.assertEquals(response.getSchema(), compositionSchema); + } + +/* + @Test(dependsOnMethods = {"testUpdateOnUploadVsp", "testList"}) + public void testCreateWithRemovedName() { + testCreate(VSP_ID, COMPONENT_ID); + } + + @Test + public void testDeleteNonExistingNicId_negative() { + testDelete_negative(VSP_ID, COMPONENT_ID, "non existing nic id", USER, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test(dependsOnMethods = "testList") + public void testDeleteNonExistingComponentId_negative() { + testDelete_negative(VSP_ID, "non existing component id", NIC1_ID, USER, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + }*/ + +/* + @Test(dependsOnMethods = "testList") + public void testDelete() { + nicManager.deleteNic(VSP_ID, COMPONENT_ID, NIC1_ID, USER); + NicEntity actual = vendorSoftwareProductDao.getNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID); + Assert.assertNull(actual); + }*/ + + @Test + public void testDeleteOnUploadVsp_negative() { + testDelete_negative(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER, + VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED); + } + + @Test(expectedExceptions = CoreException.class, + expectedExceptionsMessageRegExp = NIC_NOT_EXIST_MSG) + public void testGetNonExistingNicQuestionnaire() throws Exception { + nicManager.getNicQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER); + } + + @Test + public void testGetQuestionnaire() throws Exception { + NicEntity nic = new NicEntity(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID); + nic.setQuestionnaireData("{}"); + doReturn(nic).when(nicDao).getQuestionnaireData(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID); + + String schema = "schema string"; + doReturn(schema).when(nicManager).getNicQuestionnaireSchema(anyObject()); + + QuestionnaireResponse questionnaire = + nicManager.getNicQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER); + Assert.assertNotNull(questionnaire); + Assert.assertEquals(questionnaire.getData(), nic.getQuestionnaireData()); + Assert.assertEquals(questionnaire.getSchema(), schema); + Assert.assertNull(questionnaire.getErrorMessage()); + } + + @Test(expectedExceptions = CoreException.class, + expectedExceptionsMessageRegExp = NIC_NOT_EXIST_MSG) + public void testUpdateNonExistingNicQuestionnaire() throws Exception { + doReturn(null).when(nicDao).get(anyObject()); + nicManager + .updateNicQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, "questionnaire data", USER); + } + + @Test + public void testUpdateQuestionnaire() throws Exception { + + } + + private void testCreate_negative(NicEntity nic, String user, String expectedErrorCode) { + try { + nicManager.createNic(nic, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testGet_negative(String vspId, Version version, String componentId, String nicId, + String user, String expectedErrorCode) { + try { + nicManager.getNic(vspId, version, componentId, nicId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testUpdate_negative(String vspId, Version version, String componentId, String nicId, + String user, String expectedErrorCode) { + try { + nicManager.updateNic(new NicEntity(vspId, version, componentId, nicId), user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testDelete_negative(String vspId, Version version, String componentId, String nicId, + String user, + String expectedErrorCode) { + try { + nicManager.deleteNic(vspId, version, componentId, nicId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + static NicEntity createNic(String vspId, Version version, String compId, String nicId, + String networkId) { + NicEntity nicEntity = new NicEntity(vspId, version, compId, nicId); + Nic nicData = new Nic(); + nicData.setName(nicId + " name"); + nicData.setDescription(nicId + " desc"); + nicData.setNetworkId(networkId); + nicEntity.setNicCompositionData(nicData); + return nicEntity; + } + + +} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImplTest.java new file mode 100644 index 0000000000..e6d06f2e2c --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImplTest.java @@ -0,0 +1,148 @@ +package org.openecomp.sdc.vendorsoftwareproduct.impl; + +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.openecomp.core.model.dao.ServiceModelDao; +import org.openecomp.core.model.types.ServiceElement; +import org.openecomp.core.utilities.file.FileUtils; +import org.openecomp.sdc.datatypes.error.ErrorLevel; +import org.openecomp.sdc.healing.api.HealingManager; +import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateDataEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; +import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor; +import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager; +import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService; +import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileStatus; +import org.openecomp.sdc.vendorsoftwareproduct.utils.ZipFileUtils; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.Optional; + +import static org.mockito.Matchers.anyObject; +import static org.mockito.Mockito.doReturn; + +/** + * @author Avrahamg + * @since November 08, 2016 + */ +public class OrchestrationTemplateCandidateManagerImplTest { + private static final String USER1 = "vspTestUser1"; + private static final String VSP_ID = "vspId"; + private static final Version VERSION01 = new Version(0, 1); + + @Mock + private VendorSoftwareProductDao vendorSoftwareProductDaoMock; + @Mock + private VendorSoftwareProductInfoDao vspInfoDaoMock; + @Mock + private CandidateService candidateServiceMock; + @Mock + private HealingManager healingManagerMock; + @Mock + private CompositionDataExtractor compositionDataExtractorMock; + @Mock + private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDaoMock; + @Mock + private CompositionEntityDataManager compositionEntityDataManagerMock; + @InjectMocks + private OrchestrationTemplateCandidateManagerImpl candidateManager; + + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + // TODO: 3/15/2017 fix and enable + //@Test + public void testProcessEmptyUpload() throws IOException { +/* testLegalUpload(VSP_ID, activeVersion002, + new ZipFileUtils().getZipInputStream("/vspmanager/zips/emptyComposition.zip"), USER1);*/ + + OrchestrationTemplateCandidateDataEntity orchTemplate = + new OrchestrationTemplateCandidateDataEntity(VSP_ID, VERSION01); + orchTemplate + .setContentData(ByteBuffer.wrap(FileUtils.toByteArray(new ZipFileUtils().getZipInputStream + ("/vspmanager/zips/emptyComposition.zip")))); + orchTemplate.setFilesDataStructure("{\n" + + " \"modules\": [\n" + + " {\n" + + " \"isBase\": false,\n" + + " \"yaml\": \"ep-jsa_net.yaml\"\n" + + " }\n" + + " ]\n" + + "}"); + doReturn(orchTemplate) + .when(candidateServiceMock).getOrchestrationTemplateCandidate(VSP_ID, VERSION01); + + doReturn(new VspDetails(VSP_ID, VERSION01)) + .when(vspInfoDaoMock).get(anyObject()); + + doReturn("{}").when(candidateServiceMock).createManifest(anyObject(), anyObject()); + doReturn(Optional.empty()).when(candidateServiceMock) + .fetchZipFileByteArrayInputStream(anyObject(), anyObject(), anyObject(), anyObject()); + + + OrchestrationTemplateActionResponse response = + candidateManager.process(VSP_ID, VERSION01, USER1); + + Assert.assertNotNull(response); + } + /* + @Test(dependsOnMethods = {"testUploadFile"}) + public void testUploadNotExistingFile() throws IOException { + URL url = this.getClass().getResource("notExist.zip"); + testLegalUpload(VSP_ID, activeVersion002, url == null ? null : url.openStream(), USER1); + } + + private void testLegalUpload(String vspId, Version version, InputStream upload, String user) { + candidateManager.upload(vspId, VERSION01, upload, USER1); + candidateManager.process(vspId, VERSION01, user); + + UploadDataEntity + uploadData = + vendorSoftwareProductDaoMock.getUploadData(new UploadDataEntity(vspId, version)); + Assert.assertNotNull(uploadData); + }*/ + + // TODO: 3/15/2017 fix and enable + //@Test + public void testUploadWith2VolsIn1HeatInManifest() { + doReturn(Optional.empty()).when(candidateServiceMock).validateNonEmptyFileToUpload(anyObject()); + doReturn(Optional.empty()).when(candidateServiceMock).validateRawZipData(anyObject()); + + UploadFileResponse uploadFileResponse = candidateManager + .upload(VSP_ID, VERSION01, new ZipFileUtils().getZipInputStream("/legalUploadWithWarning"), + USER1); + Assert.assertTrue(uploadFileResponse.getStatus() == UploadFileStatus.Success); + Assert.assertTrue( + uploadFileResponse.getErrors().get("uploadFile").get(0).getLevel() == ErrorLevel.WARNING); + Assert.assertTrue(uploadFileResponse.getErrors().get("uploadFile").get(0).getMessage() + .equals("heat contains more then one vol. selecting only first vol")); + } + + // TODO: 3/15/2017 fix and enable + //@Test + public void testUploadWithManifest() { + UploadFileResponse uploadFileResponse = candidateManager + .upload(VSP_ID, VERSION01, new ZipFileUtils().getZipInputStream("/legalUploadWithWarning"), + USER1); + Assert.assertTrue(uploadFileResponse.getStatus() == UploadFileStatus.Success); + Assert.assertTrue( + uploadFileResponse.getErrors().get("uploadFile").get(0).getLevel() == ErrorLevel.WARNING); + Assert.assertTrue(uploadFileResponse.getErrors().get("uploadFile").get(0).getMessage() + .equals("heat contains more then one vol. selecting only first vol")); + } + + +}
\ No newline at end of file diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ProcessManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ProcessManagerImplTest.java new file mode 100644 index 0000000000..f756e44776 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ProcessManagerImplTest.java @@ -0,0 +1,367 @@ +package org.openecomp.sdc.vendorsoftwareproduct.impl; + +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.openecomp.sdc.activityLog.ActivityLogManager; +import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.common.errors.ErrorCategory; +import org.openecomp.sdc.common.errors.ErrorCode; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessType; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.errors.VersioningErrorCodes; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.nio.ByteBuffer; +import java.util.Arrays; +import java.util.Collection; + +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Matchers.eq; + +public class ProcessManagerImplTest { + + + private static final String USER1 = "processesTestUser"; + private static final String VSP_ID = "vsp"; + private static final Version VERSION = new Version(0, 1); + private static final String COMPONENT_ID = "component"; + private static final String PROCESS1_ID = "process1"; + private static final String PROCESS2_ID = "process2"; + private static final String ARTIFACT_NAME = "artifact.sh"; + + @Mock + private VendorSoftwareProductDao vendorSoftwareProductDaoMock; + @Mock + private ActivityLogManager activityLogManagerMock; + + @InjectMocks + @Spy + private ProcessManagerImpl processManager; + @Captor + private ArgumentCaptor<ActivityLogEntity> activityLogEntityArg; + + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testListWhenNone() { + Collection<ProcessEntity> processes = + processManager.listProcesses(VSP_ID, VERSION, COMPONENT_ID, USER1); + Assert.assertEquals(processes.size(), 0); + } + + @Test + public void testList() { + doReturn(Arrays.asList( + createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID), + createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS2_ID))) + .when(vendorSoftwareProductDaoMock).listProcesses(VSP_ID, VERSION, COMPONENT_ID); + + Collection<ProcessEntity> actual = + processManager.listProcesses(VSP_ID, VERSION, COMPONENT_ID, USER1); + Assert.assertEquals(actual.size(), 2); + } + + @Test + public void testDeleteListWhenNone() { + processManager.deleteProcesses(VSP_ID, VERSION, COMPONENT_ID, USER1); + verify(vendorSoftwareProductDaoMock, never()).deleteProcesses(VSP_ID, VERSION, COMPONENT_ID); + } + + @Test + public void testDeleteList() { + ProcessEntity process1 = createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + ProcessEntity process2 = createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS2_ID); + doReturn(Arrays.asList(process1, process2)) + .when(vendorSoftwareProductDaoMock).listProcesses(VSP_ID, VERSION, COMPONENT_ID); + doNothing().when(processManager) + .deleteUniqueValue(VSP_ID, VERSION, COMPONENT_ID, process1.getName()); + doNothing().when(processManager) + .deleteUniqueValue(VSP_ID, VERSION, COMPONENT_ID, process2.getName()); + + processManager.deleteProcesses(VSP_ID, VERSION, COMPONENT_ID, USER1); + + verify(vendorSoftwareProductDaoMock).deleteProcesses(VSP_ID, VERSION, COMPONENT_ID); + verify(processManager) + .deleteUniqueValue(VSP_ID, VERSION, COMPONENT_ID, process1.getName()); + verify(processManager) + .deleteUniqueValue(VSP_ID, VERSION, COMPONENT_ID, process2.getName()); + } + + @Test + public void testCreate() { + ProcessEntity processToCreate = createProcess(VSP_ID, VERSION, COMPONENT_ID, null); + processToCreate.setName("proc name"); + + doNothing().when(processManager) + .validateUniqueName(VSP_ID, VERSION, COMPONENT_ID, processToCreate.getName()); + doNothing().when(processManager) + .createUniqueName(VSP_ID, VERSION, COMPONENT_ID, processToCreate.getName()); + + ProcessEntity process = processManager.createProcess(processToCreate, USER1); + Assert.assertNotNull(process); + process.setId(process.getId()); + + Assert.assertEquals(process, processToCreate); + } + + @Test(expectedExceptions = CoreException.class) + public void testCreateWithExistingName_negative() { + ProcessEntity process = createProcess(VSP_ID, VERSION, COMPONENT_ID, null); + process.setName("p1 name"); + + doThrow(new CoreException( + new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION).build())) + .when(processManager).validateUniqueName(VSP_ID, VERSION, COMPONENT_ID, process.getName()); + + processManager.createProcess(process, USER1); + } + + @Test + public void testUpdateNonExistingProcessId_negative() { + doReturn(null).when(vendorSoftwareProductDaoMock) + .getProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + + testUpdate_negative(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID, USER1, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test(expectedExceptions = CoreException.class) + public void testUpdateWithExistingName_negative() { + ProcessEntity existingProcess = createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + doReturn(existingProcess).when + (vendorSoftwareProductDaoMock).getProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + + ProcessEntity processToUpdate = createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + doThrow(new CoreException( + new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION).build())) + .when(processManager) + .updateUniqueName(VSP_ID, VERSION, COMPONENT_ID, existingProcess.getName(), + processToUpdate.getName()); + + processManager.updateProcess(processToUpdate, USER1); + } + + @Test + public void testUpdate() { + ProcessEntity existingProcess = createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + doReturn(existingProcess).when + (vendorSoftwareProductDaoMock).getProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + + ProcessEntity processToUpdate = createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + doNothing().when(processManager) + .updateUniqueName(VSP_ID, VERSION, COMPONENT_ID, existingProcess.getName(), + processToUpdate.getName()); + + processManager.updateProcess(processToUpdate, USER1); + verify(vendorSoftwareProductDaoMock).updateProcess(processToUpdate); + } + + + @Test + public void testGetNonExistingProcessId_negative() { + testGet_negative(VSP_ID, VERSION, COMPONENT_ID, "non existing process id", USER1, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testGet() { + ProcessEntity process = createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + doReturn(process).when + (vendorSoftwareProductDaoMock).getProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + ProcessEntity actual = + processManager.getProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID, USER1); + Assert.assertEquals(actual, process); + Assert.assertNull(actual.getArtifactName()); + } + + @Test + public void testGetAfterUploadArtifact() { + ProcessEntity process = createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + process.setArtifactName(ARTIFACT_NAME); + doReturn(process).when + (vendorSoftwareProductDaoMock).getProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + ProcessEntity actual = + processManager.getProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID, USER1); + Assert.assertEquals(actual, process); + Assert.assertEquals(actual.getArtifactName(), ARTIFACT_NAME); + } + + @Test(expectedExceptions = CoreException.class) + public void testDeleteNonExistingProcessId_negative() { + processManager.deleteProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID, USER1); + } + + @Test + public void testDelete() { + ProcessEntity processToDelete = createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + doReturn(processToDelete).when + (vendorSoftwareProductDaoMock).getProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + doNothing().when(processManager).deleteUniqueValue(VSP_ID, VERSION, COMPONENT_ID, + processToDelete.getName()); + + processManager.deleteProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID, USER1); + verify(vendorSoftwareProductDaoMock).deleteProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + verify(processManager) + .deleteUniqueValue(VSP_ID, VERSION, COMPONENT_ID, processToDelete.getName()); + } + + @Test + public void testUploadArtifactNonExistingProcessId_negative() { + testUploadArtifact_negative(VSP_ID, VERSION, COMPONENT_ID, "non existing process id", USER1, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testUploadArtifact() { + ProcessEntity process = createProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + doReturn(process).when + (vendorSoftwareProductDaoMock).getProcess(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + + byte[] artifactBytes = "bla bla".getBytes(); + processManager + .uploadProcessArtifact(new ByteArrayInputStream(artifactBytes), ARTIFACT_NAME, + VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID, USER1); + verify(vendorSoftwareProductDaoMock) + .uploadProcessArtifact(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID, artifactBytes, + ARTIFACT_NAME); + + verify(activityLogManagerMock).addActionLog(activityLogEntityArg.capture(), eq(USER1)); + ActivityLogEntity activityLogEntity = activityLogEntityArg.getValue(); + Assert.assertEquals(activityLogEntity.getVersionId(), String.valueOf(VERSION.getMajor()+1)); + Assert.assertTrue(activityLogEntity.isSuccess()); + } + + @Test + public void testGetArtifactWhenNone_negative() { + testGetFile_negative(VSP_ID, VERSION, COMPONENT_ID, PROCESS2_ID, USER1, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testGetArtifactNonExistingProcessId_negative() { + testGetFile_negative(VSP_ID, VERSION, COMPONENT_ID, "non existing process id", USER1, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testGetArtifact() { + ProcessEntity processArtifact = + new ProcessEntity(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + processArtifact.setArtifact(ByteBuffer.wrap("bla bla".getBytes())); + doReturn(processArtifact).when(vendorSoftwareProductDaoMock) + .getProcessArtifact(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + + File actual = + processManager.getProcessArtifact(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID, USER1); + Assert.assertNotNull(actual); + } + + @Test + public void testDeleteArtifactWhenNone_negative() { + testDeleteArtifact_negative(VSP_ID, COMPONENT_ID, PROCESS2_ID, USER1, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testDeleteArtifactNonExistingProcessId_negative() { + testDeleteArtifact_negative(VSP_ID, COMPONENT_ID, "non existing process id", USER1, + VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND); + } + + @Test + public void testDeleteArtifact() { + ProcessEntity processArtifact = + new ProcessEntity(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + processArtifact.setArtifact(ByteBuffer.wrap("bla bla".getBytes())); + doReturn(processArtifact).when(vendorSoftwareProductDaoMock) + .getProcessArtifact(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + + processManager.deleteProcessArtifact(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID, USER1); + verify(vendorSoftwareProductDaoMock) + .deleteProcessArtifact(VSP_ID, VERSION, COMPONENT_ID, PROCESS1_ID); + } + + + private ProcessEntity createProcess(String vspId, Version version, String componentId, + String processId) { + ProcessEntity process = new ProcessEntity(vspId, version, componentId, processId); + process.setName(processId + " name"); + process.setDescription(processId + " desc"); + process.setType(ProcessType.Other); + return process; + } + + private void testGet_negative(String vspId, Version version, String componentId, String processId, + String user, String expectedErrorCode) { + try { + processManager.getProcess(vspId, version, componentId, processId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testUpdate_negative(String vspId, Version version, String componentId, + String processId, String user, + String expectedErrorCode) { + try { + processManager + .updateProcess(new ProcessEntity(vspId, version, componentId, processId), user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testGetFile_negative(String vspId, Version version, String componentId, + String processId, String user, String expectedErrorCode) { + try { + processManager.getProcessArtifact(vspId, version, componentId, processId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testUploadArtifact_negative(String vspId, Version version, String componentId, + String processId, String user, + String expectedErrorCode) { + try { + processManager + .uploadProcessArtifact(new ByteArrayInputStream("bla bla".getBytes()), "artifact.sh", + vspId, version, componentId, processId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + + private void testDeleteArtifact_negative(String vspId, String componentId, String processId, + String user, String expectedErrorCode) { + try { + processManager.deleteProcessArtifact(vspId, VERSION, componentId, processId, user); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), expectedErrorCode); + } + } + +} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java new file mode 100644 index 0000000000..540df7d5ed --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java @@ -0,0 +1,968 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorsoftwareproduct.impl; + +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; +import org.openecomp.core.enrichment.factory.EnrichmentManagerFactory; +import org.openecomp.core.enrichment.types.ArtifactType; +import org.openecomp.core.factory.impl.AbstractFactoryBase; +import org.openecomp.core.model.dao.EnrichedServiceModelDao; +import org.openecomp.core.model.dao.ServiceModelDao; +import org.openecomp.core.model.types.ServiceElement; +import org.openecomp.core.utilities.file.FileContentHandler; +import org.openecomp.core.utilities.file.FileUtils; +import org.openecomp.sdc.activityLog.ActivityLogManager; +import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.common.errors.ErrorCategory; +import org.openecomp.sdc.common.errors.ErrorCode; +import org.openecomp.sdc.common.errors.Messages; +import org.openecomp.sdc.common.errors.ValidationErrorBuilder; +import org.openecomp.sdc.healing.api.HealingManager; +import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; +import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition; +import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade; +import org.openecomp.sdc.vendorlicense.licenseartifacts.VendorLicenseArtifactsService; +import org.openecomp.sdc.vendorsoftwareproduct.MibManager; +import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManager; +import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants; +import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.PackageInfoDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.PackageInfo; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadDataEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; +import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes; +import org.openecomp.sdc.vendorsoftwareproduct.impl.mock.EnrichmentManagerFactoryImpl; +import org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.InformationArtifactGenerator; +import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager; +import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProductInfo; +import org.openecomp.sdc.versioning.VersioningManager; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.dao.types.VersionStatus; +import org.openecomp.sdc.versioning.errors.EditOnEntityLockedByOtherErrorBuilder; +import org.openecomp.sdc.versioning.errors.EntityNotExistErrorBuilder; +import org.openecomp.sdc.versioning.types.VersionInfo; +import org.openecomp.sdc.versioning.types.VersionableEntityAction; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + + +/** + * Created by TALIO on 4/23/2016 + */ +public class VendorSoftwareProductManagerImplTest { + private static final String INVALID_VERSION_MSG = "Invalid requested version."; + + private static String VSP_ID = "vspId"; + private static String VERSION_ID = "versionId"; + public static final Version VERSION01 = new Version(0, 1); + private static final Version VERSION10 = new Version(1, 0); + private static final String USER1 = "vspTestUser1"; + private static final String USER2 = "vspTestUser2"; + private static final String USER3 = "vspTestUser3"; + private static String id006 = null; + private static String id007 = null; + + @Mock + private VersioningManager versioningManagerMock; + @Mock + private VendorSoftwareProductDao vendorSoftwareProductDaoMock; // todo get rid of + @Mock + private OrchestrationTemplateDao orchestrationTemplateDataDaoMock; + @Mock + private VendorLicenseFacade vendorLicenseFacadeMock; + @Mock + private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDaoMock; + @Mock + private EnrichedServiceModelDao<ToscaServiceModel, ServiceElement> enrichedServiceModelDaoMock; + @Mock + private HealingManager healingManagerMock; + @Mock + private VendorLicenseArtifactsService licenseArtifactsServiceMock; + @Mock + private CompositionEntityDataManager compositionEntityDataManagerMock; + @Mock + private InformationArtifactGenerator informationArtifactGeneratorMock; + @Mock + private ActivityLogManager activityLogManagerMock; + @Mock + private PackageInfoDao packageInfoDao; + @Mock + private VendorSoftwareProductInfoDao vspInfoDaoMock; + + + @Spy + @InjectMocks + private VendorSoftwareProductManagerImpl vendorSoftwareProductManager; + + private OrchestrationTemplateCandidateManager candidateManager; + private MibManager mibManager; + + @Captor + private ArgumentCaptor<ActivityLogEntity> activityLogEntityArg; + + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testListWhenNone() { + doReturn(new HashMap<>()).when(versioningManagerMock).listEntitiesVersionInfo + (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1, + VersionableEntityAction.Read); + List<VersionedVendorSoftwareProductInfo> vsps = + vendorSoftwareProductManager.listVsps(null, USER1); + Assert.assertEquals(vsps.size(), 0); + } + + @Test + public void testList() { + String vsp1id = "vsp1_id"; + String vsp2id = "vsp2_id"; + Map<String, VersionInfo> vspsTobeReturned = new HashMap<>(); + + VersionInfo versionInfo1 = new VersionInfo(); + versionInfo1.setActiveVersion(VERSION01); + vspsTobeReturned.put(vsp1id, versionInfo1); + + VersionInfo versionInfo2 = new VersionInfo(); + versionInfo2.setActiveVersion(VERSION10); + vspsTobeReturned.put(vsp2id, versionInfo2); + + doReturn(vspsTobeReturned).when(versioningManagerMock).listEntitiesVersionInfo + (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1, + VersionableEntityAction.Read); + + VspDetails vsp1 = new VspDetails(vsp1id, VERSION01); + vsp1.setWritetimeMicroSeconds(8L); + doReturn(vsp1).when(vspInfoDaoMock) + .get(any(VspDetails.class)); + + List<VersionedVendorSoftwareProductInfo> vsps = + vendorSoftwareProductManager.listVsps(null, USER1); + Assert.assertEquals(vsps.size(), 2); + } + + @Test + public void testListFinalsWhenNone() { + String vsp1id = "vsp1_id"; + String vsp2id = "vsp2_id"; + Map<String, VersionInfo> vspsTobeReturned = new HashMap<>(); + + VersionInfo versionInfo1 = new VersionInfo(); + versionInfo1.setActiveVersion(VERSION01); + vspsTobeReturned.put(vsp1id, versionInfo1); + + VersionInfo versionInfo2 = new VersionInfo(); + versionInfo2.setActiveVersion(VERSION10); + vspsTobeReturned.put(vsp2id, versionInfo2); + + doReturn(vspsTobeReturned).when(versioningManagerMock).listEntitiesVersionInfo + (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1, + VersionableEntityAction.Read); + + List<VersionedVendorSoftwareProductInfo> vsps = + vendorSoftwareProductManager.listVsps(VersionStatus.Final.name(), USER1); + Assert.assertEquals(vsps.size(), 0); + } + + @Test + public void testListFinals() { + String vsp1id = "vsp1_id"; + String vsp2id = "vsp2_id"; + Map<String, VersionInfo> vspsTobeReturned = new HashMap<>(); + + VersionInfo versionInfo1 = new VersionInfo(); + versionInfo1.setActiveVersion(VERSION01); + vspsTobeReturned.put(vsp1id, versionInfo1); + + VersionInfo versionInfo2 = new VersionInfo(); + versionInfo2.setActiveVersion(new Version(1, 3)); + versionInfo2.setLatestFinalVersion(VERSION10); + vspsTobeReturned.put(vsp2id, versionInfo2); + + doReturn(vspsTobeReturned).when(versioningManagerMock).listEntitiesVersionInfo + (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1, + VersionableEntityAction.Read); + + VspDetails vsp2 = new VspDetails(vsp2id, VERSION10); + vsp2.setWritetimeMicroSeconds(8L); + doReturn(vsp2).when(vspInfoDaoMock) + .get(any(VspDetails.class)); + + List<VersionedVendorSoftwareProductInfo> vsps = + vendorSoftwareProductManager.listVsps(VersionStatus.Final.name(), USER1); + Assert.assertEquals(vsps.size(), 1); + } + + @Test(expectedExceptions = CoreException.class) + public void testCreateWithExistingName_negative() { + doThrow(new CoreException( + new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION).build())) + .when(vendorSoftwareProductManager).validateUniqueName("Vsp1"); + VspDetails expectedVsp = + createVspDetails(null, null, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon", + "category", "subCategory", "123", null); + + vendorSoftwareProductManager.createVsp(expectedVsp, USER1); + } + + @Test + public void testCreate() { + doNothing().when(vendorSoftwareProductManager).validateUniqueName("Vsp1"); + doNothing().when(vendorSoftwareProductManager).createUniqueName("Vsp1"); + doReturn(VERSION01).when(versioningManagerMock).create(anyObject(), anyObject(), anyObject()); + doReturn("{}") + .when(vendorSoftwareProductManager).getVspQuestionnaireSchema(anyObject()); + + VspDetails vspToCreate = + createVspDetails(null, null, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon", + "category", "subCategory", "123", null); + + VspDetails vsp = vendorSoftwareProductManager.createVsp(vspToCreate, USER1); + + Assert.assertNotNull(vsp); + vspToCreate.setId(vsp.getId()); + vspToCreate.setVersion(VERSION01); + assertVspsEquals(vsp, vspToCreate); + verify(activityLogManagerMock).addActionLog(activityLogEntityArg.capture(), eq(USER1)); + ActivityLogEntity activityLogEntity = activityLogEntityArg.getValue(); + Assert.assertEquals(activityLogEntity.getVersionId(), String.valueOf(VERSION01.getMajor()+1)); + Assert.assertTrue(activityLogEntity.isSuccess()); + } + + @Test(expectedExceptions = CoreException.class) + public void testUpdateWithExistingName_negative() { + VersionInfo versionInfo = new VersionInfo(); + versionInfo.setActiveVersion(VERSION01); + doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1, + VersionableEntityAction.Write); + + VspDetails existingVsp = + createVspDetails(VSP_ID, VERSION01, "Vsp1", "Test-existingVsp", "vendorName", "vlm1Id", + "icon", "category", "subCategory", "123", null); + VspDetails updatedVsp = + createVspDetails(VSP_ID, VERSION01, "Vsp1_updated", "Test-existingVsp", "vendorName", + "vlm1Id", "icon", "category", "subCategory", "123", null); + doReturn(existingVsp).when(vspInfoDaoMock) + .get(any(VspDetails.class)); + doThrow(new CoreException( + new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION).build())) + .when(vendorSoftwareProductManager) + .updateUniqueName(existingVsp.getName(), updatedVsp.getName()); + + vendorSoftwareProductManager.updateVsp(updatedVsp, USER1); + } + + @Test + public void testUpdate() { + VersionInfo versionInfo = new VersionInfo(); + versionInfo.setActiveVersion(VERSION01); + doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1, + VersionableEntityAction.Write); + VspDetails existingVsp = + createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon", + "category", + "subCategory", "456", null); + VspDetails updatedVsp = + createVspDetails(VSP_ID, VERSION01, "VSP1_updated", null, "vendorName", "vlm1Id", "icon", + "category_updated", + "subCategory", "456", null); + existingVsp.setWritetimeMicroSeconds(8L); + doReturn(existingVsp).when(vspInfoDaoMock) + .get(any(VspDetails.class)); + doNothing().when(vendorSoftwareProductManager) + .updateUniqueName(existingVsp.getName(), updatedVsp.getName()); + + vendorSoftwareProductManager.updateVsp(updatedVsp, USER1); + + verify(vspInfoDaoMock).update(updatedVsp); + } + + @Test(expectedExceptions = CoreException.class) + public void testGetNonExistingVersion_negative() { + Version notExistversion = new Version(43, 8); + doReturn(null).when(vspInfoDaoMock).get(any(VspDetails.class)); + vendorSoftwareProductManager.getVsp(VSP_ID, notExistversion, USER1); + } + + @Test + public void testGetCheckedOutVersion() { + VersionInfo versionInfo = new VersionInfo(); + versionInfo.setActiveVersion(VERSION01); + versionInfo.setStatus(VersionStatus.Locked); + versionInfo.setLockingUser(USER1); + doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1, + VersionableEntityAction.Read); + + VspDetails existingVsp = + createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon", + "category", + "subCategory", "456", null); + existingVsp.setWritetimeMicroSeconds(8L); + doReturn(existingVsp).when(vspInfoDaoMock).get(any(VspDetails.class)); + + VspDetails actualVsp = + vendorSoftwareProductManager.getVsp(VSP_ID, VERSION01, USER1); + + assertVspsEquals(actualVsp, existingVsp); + } + + @Test + public void testGetOldVersion() { + VersionInfo versionInfo = new VersionInfo(); + versionInfo.setActiveVersion(new Version(0, 2)); + versionInfo.setViewableVersions(Arrays.asList(VERSION01, new Version(0, 2))); + versionInfo.setStatus(VersionStatus.Locked); + versionInfo.setLockingUser(USER2); + doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1, + VersionableEntityAction.Read); + + VspDetails existingVsp = + createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon", + "category", + "subCategory", "456", null); + existingVsp.setWritetimeMicroSeconds(8L); + doReturn(existingVsp) + .when(vspInfoDaoMock).get(any(VspDetails.class)); + + VspDetails actualVsp = + vendorSoftwareProductManager.getVsp(VSP_ID, VERSION01, USER1); + + VspDetails expectedVsp = + vspInfoDaoMock + .get(new VspDetails(VSP_ID, VERSION01)); + assertVspsEquals(actualVsp, expectedVsp); + } + + @Test + public void testCheckin() { + doReturn(VERSION01).when(versioningManagerMock) + .checkin(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, + USER1, null); + Version version = vendorSoftwareProductManager.checkin(VSP_ID, USER1); + + Assert.assertEquals(version, VERSION01); + verify(versioningManagerMock) + .checkin(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, + USER1, null); + verify(activityLogManagerMock).addActionLog(activityLogEntityArg.capture(), eq(USER1)); + ActivityLogEntity activityLogEntity = activityLogEntityArg.getValue(); + Assert.assertEquals(activityLogEntity.getVersionId(), String.valueOf(VERSION01.getMajor()+1)); + Assert.assertTrue(activityLogEntity.isSuccess()); + } + + @Test + public void testCheckout() { + doReturn(VERSION01).when(versioningManagerMock) + .checkout(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, + USER1); + Version version = vendorSoftwareProductManager.checkout(VSP_ID, USER1); + + Assert.assertEquals(version, VERSION01); + verify(versioningManagerMock) + .checkout(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, + USER1); + + verify(activityLogManagerMock).addActionLog(activityLogEntityArg.capture(), eq(USER1)); + ActivityLogEntity activityLogEntity = activityLogEntityArg.getValue(); + Assert.assertEquals(activityLogEntity.getVersionId(), String.valueOf(VERSION01.getMajor()+1)); + Assert.assertTrue(activityLogEntity.isSuccess()); + } + + + @Test + public void testUndoCheckout() { + Version existingVersion = new Version(0, 2); + VersionInfo versionInfo = new VersionInfo(); + versionInfo.setActiveVersion(existingVersion); + doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, + VSP_ID, USER1, VersionableEntityAction.Read); + + doReturn(VERSION01).when(versioningManagerMock).undoCheckout(VendorSoftwareProductConstants + .VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1); + + VspDetails vsp = new VspDetails(VSP_ID, existingVersion); + vsp.setName("ExistingName"); + doReturn(vsp).when(vspInfoDaoMock).get(anyObject()); + doNothing().when(vendorSoftwareProductManager).updateUniqueName(vsp.getName(), vsp.getName()); + + Version undoCheckoutVersion = vendorSoftwareProductManager.undoCheckout(VSP_ID, USER1); + + Assert.assertEquals(undoCheckoutVersion, VERSION01); + } + + + @Test + public void testSubmitWithMissingData() throws IOException { + VersionInfo versionInfo = new VersionInfo(); + versionInfo.setActiveVersion(VERSION01); + doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, + VSP_ID, USER1, VersionableEntityAction.Read); + + VspDetails vsp = new VspDetails(VSP_ID, VERSION01); + doReturn(vsp).when(vspInfoDaoMock).get(anyObject()); + + ValidationResponse validationResponse = vendorSoftwareProductManager.submit(VSP_ID, USER1); + Assert.assertNotNull(validationResponse); + Assert.assertFalse(validationResponse.isValid()); + List<String> errorIds = validationResponse.getVspErrors().stream().map(ErrorCode::id).distinct() + .collect(Collectors.toList()); + Assert.assertTrue(errorIds.contains(ValidationErrorBuilder.FIELD_VALIDATION_ERROR_ERR_ID)); + Assert.assertTrue(errorIds.contains(VendorSoftwareProductErrorCodes.VSP_INVALID)); + + verify(versioningManagerMock, never()) + .submit(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, + USER1, null); + verify(activityLogManagerMock, never()).addActionLog(any(ActivityLogEntity.class),eq(USER1)); + } + + // TODO: 3/15/2017 fix and enable + //@Test + public void testSubmitWithInvalidLicensingData() throws IOException { + VersionInfo versionInfo = new VersionInfo(); + versionInfo.setActiveVersion(VERSION01); + doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, + VSP_ID, USER1, VersionableEntityAction.Read); + + VspDetails vsp = + createVspDetails(VSP_ID, VERSION01, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon", + "category", "subCategory", "licenseAgreementId", + Collections.singletonList("featureGroupId")); + doReturn(vsp).when(vspInfoDaoMock).get(anyObject()); + UploadDataEntity uploadData = new UploadDataEntity(VSP_ID, VERSION01); + uploadData.setContentData( + ByteBuffer.wrap(FileUtils.toByteArray(getFileInputStream("/emptyComposition")))); + doReturn(uploadData).when(orchestrationTemplateDataDaoMock) + .getOrchestrationTemplate(anyObject(), anyObject()); + doReturn(new ToscaServiceModel(new FileContentHandler(), new HashMap<>(), + "MainServiceTemplate.yaml")) + .when(serviceModelDaoMock).getServiceModel(VSP_ID, VERSION01); + + ValidationResponse validationResponse = vendorSoftwareProductManager.submit(VSP_ID, USER1); + Assert.assertNotNull(validationResponse); + Assert.assertFalse(validationResponse.isValid()); + Assert.assertNull(validationResponse.getVspErrors()); + Assert.assertEquals(validationResponse.getLicensingDataErrors(), 1); + + verify(versioningManagerMock, never()) + .submit(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, + USER1, null); + + //TODO - check.. + verify(activityLogManagerMock, never()).addActionLog(any(ActivityLogEntity.class), eq(USER1)); + } + + // TODO: 3/15/2017 fix and enable + //@Test + public void testSubmit() throws IOException { + mockVersioning(VersionableEntityAction.Read); + + EnrichmentManagerFactory.getInstance(); + AbstractFactoryBase + .registerFactory(EnrichmentManagerFactory.class, EnrichmentManagerFactoryImpl.class); + + VspDetails vsp = + createVspDetails(VSP_ID, VERSION01, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon", + "category", "subCategory", "123", Collections.singletonList("fg1")); + doReturn(vsp).when(vspInfoDaoMock).get(anyObject()); + UploadDataEntity uploadData = new UploadDataEntity(VSP_ID, VERSION01); + uploadData.setContentData( + ByteBuffer.wrap(FileUtils.toByteArray(getFileInputStream("/emptyComposition")))); + doReturn(uploadData).when(orchestrationTemplateDataDaoMock) + .getOrchestrationTemplate(anyObject(), anyObject()); + doReturn(new ToscaServiceModel(new FileContentHandler(), new HashMap<>(), + "MainServiceTemplate.yaml")) + .when(serviceModelDaoMock).getServiceModel(VSP_ID, VERSION01); + + ValidationResponse validationResponse = vendorSoftwareProductManager.submit(VSP_ID, USER1); + Assert.assertTrue(validationResponse.isValid()); + +/* Assert.assertEquals(vsp2.getVersionInfo().getActiveVersion(), VERSION10); + Assert.assertEquals(vsp2.getVersionInfo().getStatus(), VersionStatus.Final); + Assert.assertNull(vsp2.getVersionInfo().getLockingUser());*/ + + verify(versioningManagerMock) + .submit(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, + USER1, null); + verify(activityLogManagerMock).addActionLog(activityLogEntityArg.capture(),eq(USER1)); + ActivityLogEntity activityLogEntity = activityLogEntityArg.getValue(); + Assert.assertEquals(activityLogEntity.getVersionId(), String.valueOf(VERSION10.getMajor())); + Assert.assertTrue(activityLogEntity.isSuccess()); + } + + @Test(expectedExceptions = CoreException.class) + public void testCreatePackageOnNonFinalVersion_negative() throws IOException { + vendorSoftwareProductManager.createPackage(VSP_ID, VERSION01, USER1); + } + + @Test + public void testCreatePackage() throws IOException { + /*VspDetails vspDetailsMock = new VspDetails("vspId", new Version(1, 0)); + doReturn(vspDetailsMock).when(vspInfoDaoMock).get(anyObject());*/ + VersionInfo versionInfo = new VersionInfo(); + versionInfo.setActiveVersion(VERSION10); + doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1, + VersionableEntityAction.Read); + + doReturn(new ToscaServiceModel(new FileContentHandler(), new HashMap<>(), "")).when + (enrichedServiceModelDaoMock).getServiceModel(VSP_ID, VERSION10); + + VspDetails vsp = new VspDetails(VSP_ID, VERSION10); + vsp.setVendorId("vendorId"); + vsp.setVlmVersion(VERSION10); + vsp.setFeatureGroups(Arrays.asList("fg1", "fg2")); + doReturn(vsp).when(vspInfoDaoMock).get(any(VspDetails.class)); + + doReturn(new FileContentHandler()).when(licenseArtifactsServiceMock) + .createLicenseArtifacts(VSP_ID, vsp.getVendorId(), VERSION10, vsp.getFeatureGroups(), + USER1); + + PackageInfo packageInfo = vendorSoftwareProductManager.createPackage(VSP_ID, VERSION10, USER1); + Assert.assertNotNull(packageInfo.getVspId()); + } + + // TODO: 3/15/2017 fix and enable + //@Test(dependsOnMethods = {"testListFinals"}) + public void testUploadFileMissingFile() { + InputStream zis = getFileInputStream("/vspmanager/zips/missingYml.zip"); + + UploadFileResponse uploadFileResponse = + candidateManager.upload(VSP_ID, VERSION01, zis, USER1); + + Assert.assertEquals(uploadFileResponse.getErrors().size(), 0); + } + + // TODO: 3/15/2017 fix and enable + //@Test(dependsOnMethods = {"testUploadFileMissingFile"}) + public void testUploadNotZipFile() throws IOException { + URL url = this.getClass().getResource("/notZipFile"); + + try { + candidateManager + .upload(VSP_ID, VERSION01, + url.openStream(), USER1); + candidateManager.process(VSP_ID, VERSION01, USER1); + } catch (Exception ce) { + Assert.assertEquals(ce.getMessage(), Messages.CREATE_MANIFEST_FROM_ZIP.getErrorMessage()); + } + + verify(activityLogManagerMock, never()).addActionLog(any(ActivityLogEntity.class),eq(USER1)); + } +/* + @Test + public void testEnrichModelInSubmit() { + UniqueValueUtil + .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, + "VSP_syb"); + VspDetails vspDetails = vendorSoftwareProductManager.createVsp( + createVspDetails(null, null, "VSP_syb", "Test-vsp_syb", "vendorName", "vlm1Id", "icon", + "category", "subCategory", "456", null), USER1); + String id = vspDetails.getId(); + + //upload file + InputStream zis = getFileInputStream("/vspmanager/zips/fullComposition.zip"); + candidateManager.upload(id, VERSION01, zis, USER1); + OrchestrationTemplateActionResponse uploadFileResponse = + candidateManager.process(id, VERSION01, USER1); + + //check in + vendorSoftwareProductManager.checkin(id, USER1); + //submit + try { + ValidationResponse result = vendorSoftwareProductManager.submit(id, USER1); + } catch (IOException exception) { + Assert.fail(); + } + VersionedVendorSoftwareProductInfo details = + vendorSoftwareProductManager.getVsp(id, null, USER1); + Collection<ComponentEntity> components =vendorSoftwareProductManager + .listComponents(id, details.getVersionInfo().getActiveVersion(), USER1); + + ToscaServiceModel model = + (ToscaServiceModel) EnrichedServiceModelDaoFactory.getInstance().createInterface() + .getServiceModel(id, details.getVersionInfo().getActiveVersion()); + + Map<String, CapabilityDefinition> capabilities = new HashMap<>(); + for (ComponentEntity component : components) { + model.getServiceTemplates(). + entrySet(). + stream(). + filter(entryValue -> entryValue.getValue() != null && + entryValue.getValue().getNode_types() != null && + entryValue.getValue(). + getNode_types(). + containsKey(component.getComponentCompositionData().getName())). + forEach(entryValue -> entryValue.getValue().getNode_types(). + values(). + stream(). + filter(type -> MapUtils.isNotEmpty(type.getCapabilities())). + forEach(type -> type.getCapabilities(). + entrySet(). + forEach(entry -> addCapability(entryValue.getKey(), capabilities, entry.getKey(), + entry.getValue())))); + + } + + Assert.assertNotNull(capabilities); + } + + @Test(dependsOnMethods = {"testCreatePackage"}) + public void testEnrichedFilesDeletedOnNewUpload() throws IOException { + Version activeVersion; + + createPackageFromUpload(VSP_ID, USER1, "/fullComposition"); + activeVersion = vendorSoftwareProductManager.getVsp(VSP_ID, null, USER1).getVersionInfo() + .getActiveVersion(); + + List<ServiceArtifact> firstExternalArtifacts = enrichedServiceModelDaoMock + .getExternalArtifacts(VSP_ID, activeVersion); + ToscaServiceModel firstServiceModel = enrichedServiceModelDaoMock.getServiceModel(VSP_ID, + activeVersion); + + createPackageFromUpload(VSP_ID, USER1, "/emptyComposition"); + activeVersion = vendorSoftwareProductManager.getVsp(VSP_ID, null, USER1).getVersionInfo() + .getActiveVersion(); + + List<ServiceArtifact> secondExternalArtifacts = enrichedServiceModelDaoMock + .getExternalArtifacts(VSP_ID, activeVersion); + ToscaServiceModel secondServiceModel = enrichedServiceModelDaoMock.getServiceModel(VSP_ID, + activeVersion); + + Assert.assertNotEquals(firstExternalArtifacts, secondExternalArtifacts); + Assert.assertNotEquals(firstServiceModel, secondServiceModel); + + } + + @Test(dependsOnMethods = {"testMibsDeletedInCsar"}) + public void testServiceTemplatesAreDeletedInCsarOnNewUpload() throws IOException { + String nestedPath = "Definitions" + File.separator + "nested"; + + uploadFileAndProcess(VSP_ID, USER1, "/vspmanager/zips/fullCompositionNested.zip"); + checkinSubmitCreatePackage(VSP_ID, USER1); + List<String> nestedFileNamesServiceTemplates = + getWantedFileNamesFromCsar(nestedPath); + + uploadFileAndProcess(VSP_ID, USER1, "/vspmanager/zips/fullComposition.zip"); + checkinSubmitCreatePackage(VSP_ID, USER1); + List<String> emptyNestedNamesList = getWantedFileNamesFromCsar(nestedPath); + + Assert.assertEquals(emptyNestedNamesList.size(), 0); + Assert.assertNotEquals(emptyNestedNamesList.size(), nestedFileNamesServiceTemplates.size()); + }*/ + + private List<String> getWantedFileNamesFromCsar(String pathInCsar) + throws IOException { + File translatedFile = vendorSoftwareProductManager.getTranslatedFile(VSP_ID, VERSION10, USER1); + + return getFileNamesFromFolderInCsar(translatedFile, + pathInCsar); + } + + private List<String> getFileNamesFromFolderInCsar(File csar, String folderName) + throws IOException { + List<String> fileNames = new ArrayList<>(); + + ZipInputStream zip = new ZipInputStream(new FileInputStream(csar)); + ZipEntry ze; + + while ((ze = zip.getNextEntry()) != null) { + String name = ze.getName(); + if (name.contains(folderName)) { + fileNames.add(name); + } + } + + return fileNames; + } + + private Pair<String, String> uploadMib(String vspId, String user, String filePath, + String fileName) { + List<ComponentEntity> componentEntities = null; + //(List<ComponentEntity>) vendorSoftwareProductManager.listComponents(vspId, null, user); + mibManager.upload(getFileInputStream(filePath), + fileName, vspId, + VERSION01, componentEntities.get(0).getId(), ArtifactType.SNMP_POLL, user); + //TODO: add validate of addActionLog() func call + + return new ImmutablePair<>(componentEntities.get(0).getId(), + componentEntities.get(0).getComponentCompositionData() + .getDisplayName()); + } + + private void createPackageFromUpload(String vspId, String user, String filePath) + throws IOException { + uploadFileAndProcess(vspId, user, filePath); + checkinSubmitCreatePackage(vspId, user); + } + + private void uploadFileAndProcess(String vspId, String user, String filePath) { + vendorSoftwareProductManager.checkout(vspId, user); + candidateManager.upload(vspId, VERSION01, getFileInputStream(filePath), user); + candidateManager.process(vspId, VERSION01, user); + } + + private void checkinSubmitCreatePackage(String vspId, String user) throws IOException { + vendorSoftwareProductManager.checkin(vspId, user); + ValidationResponse submitResponse = vendorSoftwareProductManager.submit(vspId, user); + Assert.assertTrue(submitResponse.isValid()); + vendorSoftwareProductManager.createPackage(vspId, VERSION10, user); + } + + // TODO: 3/15/2017 fix and enable +/* + + public void testUpdatedVSPShouldBeInBeginningOfList() { + vendorSoftwareProductManager.updateVsp(new VspDetails(), USER3); + assertVSPInWantedLocationInVSPList(id006, 0, USER3); + + InputStream zis = getFileInputStream("/vspmanager/zips/fullComposition.zip"); + candidateManager.upload(id007, VERSION01, zis, USER3); + candidateManager.process(id007, VERSION01, USER3); + assertVSPInWantedLocationInVSPList(id007, 0, USER3); + } + + @Test(dependsOnMethods = {"testUpdatedVSPShouldBeInBeginningOfList"}) + public void testVSPInBeginningOfListAfterCheckin() { + vendorSoftwareProductManager.checkin(id006, USER3); + assertVSPInWantedLocationInVSPList(id006, 0, USER3); + + vendorSoftwareProductManager.checkin(id007, USER3); + assertVSPInWantedLocationInVSPList(id007, 0, USER3); + } + + @Test(dependsOnMethods = {"testVSPInBeginningOfListAfterCheckin"}) + public void testVSPInBeginningOfListAfterCheckout() { + vendorSoftwareProductManager.checkout(id006, USER3); + assertVSPInWantedLocationInVSPList(id006, 0, USER3); + } + + @Test(dependsOnMethods = {"testVSPInBeginningOfListAfterCheckout"}) + public void testVSPInBeginningOfListAfterUndoCheckout() { + vendorSoftwareProductManager.checkout(id007, USER3); + assertVSPInWantedLocationInVSPList(id007, 0, USER3); + + vendorSoftwareProductManager.undoCheckout(id006, USER3); + assertVSPInWantedLocationInVSPList(id006, 0, USER3); + } + + @Test(dependsOnMethods = {"testVSPInBeginningOfListAfterUndoCheckout"}) + public void testVSPInBeginningOfListAfterSubmit() throws IOException { + vendorSoftwareProductManager.checkin(id007, USER3); + vendorSoftwareProductManager.submit(id007, USER3); + + assertVSPInWantedLocationInVSPList(id007, 0, USER3); + } +*/ + + private void testLegalUpload(String vspId, Version version, InputStream upload, String user) { + candidateManager.upload(vspId, VERSION01, upload, USER1); + candidateManager.process(vspId, VERSION01, user); + + UploadDataEntity uploadData = + orchestrationTemplateDataDaoMock.getOrchestrationTemplate(vspId, version); + Assert.assertNotNull(uploadData); + } + + private void addCapability(String entryValueKey, Map<String, CapabilityDefinition> capabilities, + String key, CapabilityDefinition value) { + + capabilities.put(entryValueKey + "_" + key, value); + } + + public InputStream getFileInputStream(String fileName) { + URL url = this.getClass().getResource(fileName); + try { + return url.openStream(); + } catch (IOException exception) { + exception.printStackTrace(); + return null; + } + } + + private void assertVSPInWantedLocationInVSPList(String vspId, int location, String user) { + List<VersionedVendorSoftwareProductInfo> vspList = + vendorSoftwareProductManager.listVsps(null, user); + Assert.assertEquals(vspList.get(location).getVspDetails().getId(), vspId); + } + + + // private void assertInfoArtifactIsInRightPathInCsar(String vspId, String zipFileName) +// throws IOException { +// ZipInputStream inputZipStream = new ZipInputStream(new FileInputStream(new File(zipFileName))); +// boolean isInfoArtifactInZip = false; +// +// ZipEntry zipEntry; +// while ((zipEntry = inputZipStream.getNextEntry()) != null) { +// String currentEntryName = zipEntry.getName(); +// if(currentEntryName.equals("Artifacts\\Informative\\Guide\\VSP_" + +// vspId + "_Information.txt")){ +// isInfoArtifactInZip = true; +// break; +// } +// } +// +// Assert.assertTrue(isInfoArtifactInZip); +// } + static VspDetails createVspDetails(String id, Version version, String name, String desc, + String vendorName, String vlm, String icon, + String category, String subCategory, + String licenseAgreement, List<String> featureGroups) { + VspDetails vspDetails = new VspDetails(id, version); + vspDetails.setName(name); + vspDetails.setDescription(desc); + vspDetails.setIcon(icon); + vspDetails.setCategory(category); + vspDetails.setSubCategory(subCategory); + vspDetails.setVendorName(vendorName); + vspDetails.setVendorId(vlm); + vspDetails.setVlmVersion(new Version(1, 0)); + vspDetails.setLicenseAgreement(licenseAgreement); + vspDetails.setFeatureGroups(featureGroups); + return vspDetails; + } + + static void assertVspsEquals(VspDetails actual, VspDetails expected) { + Assert.assertEquals(actual.getId(), expected.getId()); + Assert.assertEquals(actual.getVersion(), expected.getVersion()); + Assert.assertEquals(actual.getName(), expected.getName()); + Assert.assertEquals(actual.getDescription(), expected.getDescription()); + Assert.assertEquals(actual.getIcon(), expected.getIcon()); + Assert.assertEquals(actual.getCategory(), expected.getCategory()); + Assert.assertEquals(actual.getSubCategory(), expected.getSubCategory()); + Assert.assertEquals(actual.getVendorName(), expected.getVendorName()); + Assert.assertEquals(actual.getVendorId(), expected.getVendorId()); + Assert.assertEquals(actual.getLicenseAgreement(), expected.getLicenseAgreement()); + Assert.assertEquals(actual.getFeatureGroups(), expected.getFeatureGroups()); + } + + +// @Test +// public void testDownloadFile() throws IOException { +// VspDetails expectedVsp = VSPCommon.createVspDetails(null, null, String.format("VSP-test-%s", vlm1Id), "Test-vsp", "vendorName", "vlm1Id", "icon", "category", "subCategory", "123", null); +// VspDetails createdVsp = vendorSoftwareProductManager.createVsp(expectedVsp, USER1); +// +// id005 = createdVsp.getId(); +// Assert.assertNotNull(id005); +// Assert.assertNotNull(createdVsp.getVersion()); +// +// try (InputStream zipInputStream = new ZipFileUtils().getZipInputStream("/legalUploadWithWarning")) { +// +// UploadFileResponse uploadFileResponse = vendorSoftwareProductManager.upload(id005, zipInputStream, USER1); +// vendorSoftwareProductManager.process(id005, USER1); +// Optional<File> fileCandidate = vendorSoftwareProductManager.get(id005, USER1); +// +// File latestHeatPackage = fileCandidate.get(); +// +// zipInputStream.reset(); +// byte[] uploaded = IOUtils.toByteArray(zipInputStream); +// +// Optional<FileContentHandler> zipContentMap = vendorSoftwareProductManager.getZipContentMap(uploadFileResponse, uploaded); +// FileContentHandler fileContentHandler = new FileContentHandler(); +// if(zipContentMap.isPresent()){ +// fileContentHandler = zipContentMap.get(); +// } +// +// uploaded = IOUtils.toByteArray(fileContentHandler.getFiles().values()); +// +// byte[] downloaded; +// try (BufferedInputStream fileStream = new BufferedInputStream(new FileInputStream(latestHeatPackage))) { +// downloaded = IOUtils.toByteArray(fileStream); +// } +// +// Assert.assertTrue(Arrays.equals(uploaded, downloaded)); +// } +// } + + // todo ********************** move to common ************************************** + + private void mockVersioning(VersionableEntityAction action) { + VersionInfo versionInfo = new VersionInfo(); + versionInfo.setActiveVersion(VERSION01); + doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1, + action); + } + + private void mockVersioningEntityNotExist(VersionableEntityAction action, String vspId) { + doThrow(new CoreException(new EntityNotExistErrorBuilder( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vspId).build())) + .when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vspId, USER1, + action); + } + + private void MockVersioningEntityLocked(VersionableEntityAction action) { + doThrow(new CoreException(new EditOnEntityLockedByOtherErrorBuilder( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1) + .build())) + .when(versioningManagerMock).getEntityVersionInfo( + VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER2, + action); + } +}
\ No newline at end of file diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/mock/EnrichmentManagerFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/mock/EnrichmentManagerFactoryImpl.java new file mode 100644 index 0000000000..db8acb29b7 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/mock/EnrichmentManagerFactoryImpl.java @@ -0,0 +1,47 @@ +package org.openecomp.sdc.vendorsoftwareproduct.impl.mock; + + +import org.openecomp.core.enrichment.api.EnrichmentManager; +import org.openecomp.core.enrichment.factory.EnrichmentManagerFactory; +import org.openecomp.core.enrichment.types.EntityInfo; +import org.openecomp.sdc.datatypes.error.ErrorMessage; +import org.openecomp.sdc.versioning.dao.types.Version; + +import java.util.List; +import java.util.Map; + + +public class EnrichmentManagerFactoryImpl extends EnrichmentManagerFactory { + + @Override + public EnrichmentManager createInterface() { + return new EnrichmentManagerMock(); + } + + public class EnrichmentManagerMock implements EnrichmentManager { + @Override + public Map<String, List<ErrorMessage>> enrich() { + return null; + } + + @Override + public void addEntityInfo(String entityKey, EntityInfo entityInfo) { + + } + + @Override + public void init(String key, Version version) { + + } + + @Override + public Object getModel() { + return null; + } + + @Override + public void setModel(Object model) { + + } + } +} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/informationartifact/InformationArtifactGeneratorImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/informationartifact/InformationArtifactGeneratorImplTest.java new file mode 100644 index 0000000000..925eb7157e --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/informationartifact/InformationArtifactGeneratorImplTest.java @@ -0,0 +1,79 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +//package org.openecomp.sdc.vendorsoftwareproduct.informationartifact; +// +//import org.openecomp.core.util.UniqueValueUtil; +//import org.openecomp.sdc.vendorsoftwareproduct.utils.VSPCommon; +//import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants; +//import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; +//import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; +//import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; +//import org.openecomp.sdc.versioning.dao.types.Version; +//import org.testng.Assert; +//import org.testng.annotations.BeforeClass; +//import org.testng.annotations.Test; +// +//import java.io.File; +//import java.io.IOException; +// +//import static org.testng.Assert.*; +// +///** +// * Created by Talio on 12/6/2016. +// */ +//public class InformationArtifactGeneratorImplTest { +// private static VendorSoftwareProductManager vendorSoftwareProductManager = +// new VendorSoftwareProductManagerImpl(); +// private static String vspId; +// private static Version vspActiveVersion; +// private static final String USER1 = "vspTestUser1"; +// +// +// @BeforeClass +// public void init(){ +// UniqueValueUtil.deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, "Test_download_info"); +// VspDetails vspDetails = vendorSoftwareProductManager.createVsp +// (VSPCommon.createVspDetails(null, null, "Test_download_info", "Test-vsp-empty", +// "vendorName", "vlm1Id", "icon", "category", "subCategory", "123", null), USER1); +// vspId = vspDetails.getId(); +// vspActiveVersion = vspDetails.getVersion(); +// } +// +// @Test +// public void testDownloadInformationArtifact() throws IOException { +// File informationArtifact = +// vendorSoftwareProductManager.getInformationArtifact(vspId, vspActiveVersion, USER1); +// +// Assert.assertNotNull(informationArtifact); +// } +// +// @Test +// public void negativeTestDownloadInformationArtifactOnNoneExistiongVsp() throws IOException { +// try { +// File informationArtifact = vendorSoftwareProductManager +// .getInformationArtifact("non_existing_id", vspActiveVersion, USER1); +// }catch(Exception e){ +// Assert.assertEquals(e.getMessage(), "Versionable entity VendorSoftwareProduct with id " + +// "non_existing_id does not exist."); +// } +// } +// +//} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/CompositionEntityDataManagerTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/CompositionEntityDataManagerTest.java deleted file mode 100644 index e1ddcdc975..0000000000 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/CompositionEntityDataManagerTest.java +++ /dev/null @@ -1,141 +0,0 @@ -package org.openecomp.sdc.vendorsoftwareproduct.services; - -import org.openecomp.sdc.common.errors.CoreException; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspQuestionnaireEntity; -import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityValidationData; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network; -import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.NetworkCompositionSchemaInput; -import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.apache.commons.collections.CollectionUtils; -import org.testng.Assert; -import org.testng.annotations.Test; - -import java.util.Collection; -import java.util.Map; - -public class CompositionEntityDataManagerTest { - - public static final String VSP1 = "vsp1"; - public static final String COMPONENT1 = "component1"; - public static final String NIC1 = "nic1"; - private static CompositionEntityDataManager compositionEntityDataManager = - new CompositionEntityDataManager(); - private static Map<CompositionEntityId, Collection<String>> errorsById; - - private static void assertValidationData(CompositionEntityValidationData validationData, - String id, CompositionEntityType type, - boolean hasErrors) { - Assert.assertNotNull(validationData); - Assert.assertEquals(validationData.getEntityId(), id); - Assert.assertEquals(validationData.getEntityType(), type); - Assert.assertTrue(CollectionUtils.isNotEmpty(validationData.getErrors()) == hasErrors); - } - - @Test(expectedExceptions = CoreException.class) - public void testAddNullEntity_negative() { - compositionEntityDataManager.addEntity(null, null); - } - - @Test - public void testAddEntity() { - compositionEntityDataManager - .addEntity(new VspQuestionnaireEntity(VSP1, new Version(0, 1)), null); - - String invalidQuestionnaireData = "{\"a\": \"b\"}"; - - ComponentEntity component = new ComponentEntity(VSP1, new Version(0, 1), COMPONENT1); - component.setQuestionnaireData(invalidQuestionnaireData); - compositionEntityDataManager.addEntity(component, null); - - org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity - nic = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(VSP1, new Version(0, 1), COMPONENT1, NIC1); - nic.setQuestionnaireData(invalidQuestionnaireData); - compositionEntityDataManager.addEntity(nic, null); - } - - @Test(dependsOnMethods = "testAddEntity") - public void testValidateEntitiesQuestionnaire() { - errorsById = compositionEntityDataManager.validateEntitiesQuestionnaire(); - Assert.assertNotNull(errorsById); - Assert.assertEquals(errorsById.size(), 2); // both component and nic data don't mach schemas - CompositionEntityId nicId = - new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(VSP1, new Version(0, 1), COMPONENT1, NIC1).getCompositionEntityId(); - Assert.assertTrue(errorsById.containsKey(nicId)); - Assert.assertTrue(errorsById.containsKey(nicId.getParentId())); - } - - @Test(dependsOnMethods = "testAddEntity") - public void testBuildTrees() { - compositionEntityDataManager.buildTrees(); - } - - @Test(dependsOnMethods = "testBuildTrees") - public void testAddErrorsToTrees() { - compositionEntityDataManager.addErrorsToTrees(errorsById); - } - - @Test(dependsOnMethods = "testAddErrorsToTrees") - public void testGetTrees() { - Collection<CompositionEntityValidationData> trees = compositionEntityDataManager.getTrees(); - Assert.assertNotNull(trees); - Assert.assertEquals(trees.size(), 1); - - CompositionEntityValidationData vspValidationData = trees.iterator().next(); - assertValidationData(vspValidationData, VSP1, CompositionEntityType.vsp, false); - Assert.assertEquals(vspValidationData.getSubEntitiesValidationData().size(), 1); - - CompositionEntityValidationData componentValidationData = - vspValidationData.getSubEntitiesValidationData().iterator().next(); - assertValidationData(componentValidationData, COMPONENT1, CompositionEntityType.component, - true); - Assert.assertEquals(componentValidationData.getSubEntitiesValidationData().size(), 1); - - CompositionEntityValidationData nicValidationData = - componentValidationData.getSubEntitiesValidationData().iterator().next(); - assertValidationData(nicValidationData, NIC1, CompositionEntityType.nic, true); - Assert.assertNull(nicValidationData.getSubEntitiesValidationData()); - } - - @Test - public void testValidateValidEntity() { - NetworkEntity networkEntity = new NetworkEntity(VSP1, new Version(0, 1), "network1"); - Network network = new Network(); - network.setName("network1 name"); - network.setDhcp(true); - networkEntity.setNetworkCompositionData(network); - - NetworkCompositionSchemaInput schemaTemplateInput = new NetworkCompositionSchemaInput(); - schemaTemplateInput.setManual(false); - schemaTemplateInput.setNetwork(network); - - CompositionEntityValidationData validationData = CompositionEntityDataManager - .validateEntity(networkEntity, SchemaTemplateContext.composition, schemaTemplateInput); - assertValidationData(validationData, "network1", CompositionEntityType.network, false); - } - - @Test - public void testValidateInvalidEntity() { - NetworkEntity networkEntity = new NetworkEntity(VSP1, new Version(0, 1), "network1"); - Network network = new Network(); - network.setName("network1 name changed"); - network.setDhcp(false); - networkEntity.setNetworkCompositionData(network); - - NetworkCompositionSchemaInput schemaTemplateInput = new NetworkCompositionSchemaInput(); - schemaTemplateInput.setManual(false); - Network origNetwork = new Network(); - origNetwork.setName("network1 name"); - origNetwork.setDhcp(true); - schemaTemplateInput.setNetwork(origNetwork); - - CompositionEntityValidationData validationData = CompositionEntityDataManager - .validateEntity(networkEntity, SchemaTemplateContext.composition, schemaTemplateInput); - assertValidationData(validationData, "network1", CompositionEntityType.network, true); - Assert.assertEquals(validationData.getErrors().size(), 2); - } -}
\ No newline at end of file diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/QuestionnaireSchemaTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/QuestionnaireSchemaTest.java deleted file mode 100644 index 4d03b5980f..0000000000 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/QuestionnaireSchemaTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.openecomp.sdc.vendorsoftwareproduct.services; - -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspQuestionnaireEntity; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.core.utilities.file.FileUtils; - -import org.testng.Assert; -import org.testng.annotations.Test; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -public class QuestionnaireSchemaTest { - - public static final String VSP1 = "vsp1"; - public static final String COMPONENT1 = "component1"; - public static final String NIC1 = "nic1"; - private static CompositionEntityDataManager compositionEntityDataManager = - new CompositionEntityDataManager(); - private static Map<CompositionEntityId, Collection<String>> errorsById; - private static org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity componentEntity; - private static org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity nicEntity; - - private static String loadFileToString(String path) { - return new String(FileUtils.toByteArray(FileUtils.loadFileToInputStream(path))); - } - - @Test - public void testAddEntity() { - compositionEntityDataManager - .addEntity(new VspQuestionnaireEntity(VSP1, new Version(0, 1)), null); - - componentEntity = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(VSP1, new Version(0, 1), COMPONENT1); - nicEntity = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(VSP1, new Version(0, 1), COMPONENT1, NIC1); - compositionEntityDataManager.addEntity(componentEntity, null); - - componentEntity.setQuestionnaireData(loadFileToString("quesionnaire/validComponent.json")); - nicEntity.setQuestionnaireData(loadFileToString("quesionnaire/validNic.json")); - compositionEntityDataManager.addEntity(nicEntity, null); - } - - @Test(dependsOnMethods = "testAddEntity") - public void testNicAndComponentValidQuestionnaire() { - errorsById = compositionEntityDataManager.validateEntitiesQuestionnaire(); - Assert.assertEquals(errorsById.size(), 0); - } - - @Test(dependsOnMethods = "testNicAndComponentValidQuestionnaire") - public void testComponentInvalidQuestionnaire() { - componentEntity.setQuestionnaireData(loadFileToString("quesionnaire/invalidComponent.json")); - compositionEntityDataManager.addEntity(componentEntity, null); - - errorsById = compositionEntityDataManager.validateEntitiesQuestionnaire(); - Assert.assertEquals(errorsById.size(), 1); - - CompositionEntityId component = errorsById.keySet().iterator().next(); - List<String> errors = (List<String>) errorsById.get(component); - Assert.assertEquals(errors.size(), 1); - Assert.assertEquals(errors.get(0), - "#/general/recovery/pointObjective: 20.0 is not lower or equal to 15"); - } -} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/QuestionnaireValidatorTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/QuestionnaireValidatorTest.java index 0dedacb34a..fbd8371d7b 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/QuestionnaireValidatorTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/QuestionnaireValidatorTest.java @@ -1,3 +1,23 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + package org.openecomp.sdc.vendorsoftwareproduct.services; public class QuestionnaireValidatorTest { @@ -31,7 +51,7 @@ public class QuestionnaireValidatorTest { @Test(dependsOnMethods = "testAddSubEntity") public void testAddSubEntities() throws Exception { - Collection<CompositionEntity> nics = new ArrayList<>(); + Collection<UnifiedCompositionEntity> nics = new ArrayList<>(); nics.add(createNic("nicId1", "componentId1")); nics.add(createNic("nicId2", "componentId1")); nics.add(createNic("nicId3", "componentId1")); @@ -64,11 +84,11 @@ public class QuestionnaireValidatorTest { return component; } - private static CompositionEntity createNic(String nicId, String componentId) { + private static UnifiedCompositionEntity createNic(String nicId, String componentId) { NicEntity nic = new NicEntity("vspId1", new Version(0, 1), componentId, nicId); nic.setQuestionnaireData("{\n" + " \"name\": \"bla bla\"\n" + "}"); return nic; }*/ -}
\ No newline at end of file +} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/CandidateServiceImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/CandidateServiceImplTest.java new file mode 100644 index 0000000000..134dbfb5d4 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/CandidateServiceImplTest.java @@ -0,0 +1,249 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorsoftwareproduct.services.impl; + +import org.apache.commons.collections4.CollectionUtils; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.openecomp.core.utilities.json.JsonUtil; +import org.openecomp.sdc.common.errors.Messages; +import org.openecomp.sdc.datatypes.error.ErrorMessage; +import org.openecomp.sdc.heat.datatypes.manifest.FileData; +import org.openecomp.sdc.heat.datatypes.manifest.ManifestContent; +import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; +import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.ManifestCreator; +import org.openecomp.sdc.vendorsoftwareproduct.services.impl.filedatastructuremodule.CandidateServiceImpl; +import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.FilesDataStructure; +import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.Module; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +import static org.mockito.Mockito.doReturn; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + +/** + * @author Avrahamg + * @since November 09, 2016 + */ +public class CandidateServiceImplTest { + @Mock + private ManifestCreator manifestCreatorMock; + @Mock + private VendorSoftwareProductDao vendorSoftwareProductDaoMock; + @InjectMocks + private CandidateServiceImpl candidateService; + + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void shouldReturnOptionalPresentIfInputStreamIsNull() { + assertTrue(candidateService.validateNonEmptyFileToUpload(null).isPresent()); + } + + // end validateNonEmptyFileToUpload tests + // start validateNonEmptyFileToUpload tests + @Test + public void shouldReturnOptionalEmptyIfUploadedFileDataIsNotNull() { + assertEquals(candidateService.validateRawZipData(new byte[]{}), Optional.empty()); + } + + @Test + public void shouldReturnOptionalPresentIfUploadedFileDataIsNull() { + assertTrue(candidateService.validateRawZipData(null).isPresent()); + } + // end validateNonEmptyFileToUpload tests + // start heatStructureTreeToFileDataStructure tests + + @Test + public void shouldValidateManifestInZipMatchesFileDataStructureFromDB() { + VspDetails vspDetails = new VspDetails("vspTest", null); + vspDetails.setName("vspTest"); + vspDetails.setDescription("Test description"); + vspDetails.setVersion(new Version(0, 1)); + + FilesDataStructure structure = JsonUtil.json2Object(getExpectedJson(), FilesDataStructure.class); + + Optional<ManifestContent> expectedManifest = getExpectedManifestJson(); + doReturn(expectedManifest) + .when(manifestCreatorMock).createManifest(vspDetails, structure); + + String expectedManifestJson = JsonUtil.object2Json(expectedManifest.get()); + String actualManifest = candidateService.createManifest(vspDetails, structure); + Assert.assertEquals(actualManifest, expectedManifestJson); + } + + @Test + public void shouldReturnValidationErrorOnMissingfModule() { + FilesDataStructure filesDataStructure = new FilesDataStructure(); + filesDataStructure.setArtifacts(Collections.singletonList("artifact.sh")); + + Optional<List<ErrorMessage>> validateErrors = + candidateService.validateFileDataStructure(filesDataStructure); + assertValidationErrorIsAsExpected(validateErrors, 1, Messages.NO_MODULES_IN_MANIFEST + .getErrorMessage()); + } + + @Test + public void shouldReturnValidationErrorOnVolumeEnvWithoutVolumeYaml() { + FilesDataStructure filesDataStructure = new FilesDataStructure(); + Module module = new Module(); + module.setName("test"); + module.setYaml("base_file.yml"); + module.setVolEnv("vol_env.env"); + filesDataStructure.setModules(Collections.singletonList(module)); + + Optional<List<ErrorMessage>> validateErrors = + candidateService.validateFileDataStructure(filesDataStructure); + assertValidationErrorIsAsExpected(validateErrors, 1, String.format(Messages + .MODULE_IN_MANIFEST_VOL_ENV_NO_VOL.getErrorMessage(), module.getName())); + } + + @Test + public void shouldReturnValidationErrorOnModuleWithoutYaml() { + FilesDataStructure filesDataStructure = new FilesDataStructure(); + Module module = new Module(); + module.setName("test"); + filesDataStructure.setModules(Collections.singletonList(module)); + + Optional<List<ErrorMessage>> validateErrors = + candidateService.validateFileDataStructure(filesDataStructure); + assertValidationErrorIsAsExpected(validateErrors, 1, String.format(Messages + .MODULE_IN_MANIFEST_NO_YAML.getErrorMessage(), module.getName())); + } + + private void assertValidationErrorIsAsExpected(Optional<List<ErrorMessage>> validateErrors, + int errorListSize, String expectedErrorMessage) { + if (validateErrors.isPresent()) { + List<ErrorMessage> errorMessages = validateErrors.get(); + Assert.assertEquals(errorMessages.size(), errorListSize); + Assert.assertEquals(errorMessages.get(0).getMessage(), expectedErrorMessage); + } + } + + private String getExpectedJson() { + return "{\n" + + " \"modules\": [\n" + + " {\n" + + " \"isBase\": false,\n" + + " \"yaml\": \"file2.yaml\"\n" + + " },\n" + + " {\n" + + " \"isBase\": true,\n" + + " \"yaml\": \"file1.yaml\",\n" + + " \"vol\": \"file1_vol.yaml\",\n" + + " \"volEnv\": \"file1.env\"\n" + + " }\n" + + " ],\n" + + " \"unassigned\": [\n" + + " \"file3.yml\"\n" + + " ],\n" + + " \"artifacts\": [\n" + + " \"file2.sh\"\n" + + " ],\n" + + " \"nested\": []\n" + + "}"; + } + + private Optional<ManifestContent> getExpectedManifestJson() { + ManifestContent mock = new ManifestContent(); + mock.setDescription("Test description"); + mock.setName("vspTest"); + mock.setVersion("0.1"); + + + List<FileData> mockFileData = new ArrayList<>(); + FileData fileData = createFileData("file2.yaml", false, FileData.Type.HEAT, null); + mockFileData.add(fileData); + fileData = createFileData("file1.yaml", true, FileData.Type.HEAT, null); + mockFileData.add(fileData); + fileData = createFileData("file1_vol.yaml", null, FileData.Type.HEAT_VOL, fileData); + fileData = createFileData("file1.env", null, FileData.Type.HEAT_ENV, mockFileData.get(1).getData().get(0)); + mockFileData.add(createFileData("file2.sh", null, FileData.Type.OTHER, null)); + mockFileData.add(createFileData("file3.yml", null, FileData.Type.OTHER, null)); + mock.setData(mockFileData); + return Optional.of(mock); + } + + private FileData createFileData(String fileName, Boolean isBase, FileData.Type fileType, + FileData fileDataToAddTo) { + FileData fileData = new FileData(); + fileData.setFile(fileName); + if(isBase != null) { + fileData.setBase(isBase); + } + fileData.setType(fileType); + addFileDataToList(fileDataToAddTo, fileData); + return fileData; + } + + private void addFileDataToList(FileData fileDataToAddTo, FileData fileData) { + if(fileDataToAddTo != null) + { + List<FileData> list = fileDataToAddTo.getData(); + if(CollectionUtils.isEmpty(list)) + { + list = new ArrayList<>(); + } + list.add(fileData); + fileDataToAddTo.setData(list); + + } + } + + private HeatStructureTree createHeatWithEnvAndVolIncludeVolEnv() { + HeatStructureTree heat1 = createBasicHeatTree("file1.yaml", true, FileData.Type.HEAT); + addEnvToHeat(heat1, "file1.env"); + HeatStructureTree heat1Vol = + createBasicHeatTree("file1_vol.yaml", false, FileData.Type.HEAT_VOL); + addEnvToHeat(heat1Vol, "file1_vol.env"); + heat1.addVolumeFileToVolumeList(heat1Vol); + return heat1; + } + + private void addEnvToHeat(HeatStructureTree toAddHeat, String envFileName) { + HeatStructureTree heat1Env = createBasicHeatTree(envFileName, false, FileData.Type.HEAT_ENV); + toAddHeat.setEnv(heat1Env); + } + + private HeatStructureTree createBasicHeatTree(String fileName, boolean isBase, + FileData.Type type) { + HeatStructureTree heat = new HeatStructureTree(); + heat.setFileName(fileName); + heat.setBase(isBase); + heat.setType(type); + return heat; + } + +} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/CompositionDataExtractorTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImplTest.java index 55f30db609..d6060e6114 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/CompositionDataExtractorTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImplTest.java @@ -1,20 +1,64 @@ -package org.openecomp.sdc.vendorsoftwareproduct.services; +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.openecomp.sdc.vendorsoftwareproduct.services.impl.composition; + +import org.apache.commons.io.FileUtils; +import org.mockito.InjectMocks; +import org.mockito.MockitoAnnotations; import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.tosca.services.ToscaUtil; import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil; - +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic; import org.testng.Assert; +import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import java.io.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; import java.net.URL; import java.nio.file.NotDirectoryException; +import java.util.Collection; import java.util.HashMap; import java.util.Map; -public class CompositionDataExtractorTest { +/** + * @author shiria + * @since July 17, 2016. + */ + +public class CompositionDataExtractorImplTest { + @InjectMocks + private static CompositionDataExtractorImpl compositionDataExtractor; + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } private static ToscaServiceModel loadToscaServiceModel(String serviceTemplatesPath, String globalServiceTemplatesPath, @@ -38,10 +82,10 @@ public class CompositionDataExtractorTest { ToscaExtensionYamlUtil toscaExtensionYamlUtil, Map<String, ServiceTemplate> serviceTemplates) throws IOException { - URL urlFile = CompositionDataExtractorTest.class.getResource(serviceTemplatesPath); + URL urlFile = CompositionDataExtractorImplTest.class.getResource(serviceTemplatesPath); if (urlFile != null) { File pathFile = new File(urlFile.getFile()); - File[] files = pathFile.listFiles(); + Collection<File> files = FileUtils.listFiles(pathFile, null, true); if (files != null) { addServiceTemplateFiles(serviceTemplates, files, toscaExtensionYamlUtil); } else { @@ -53,22 +97,22 @@ public class CompositionDataExtractorTest { } private static void addServiceTemplateFiles(Map<String, ServiceTemplate> serviceTemplates, - File[] files, + Collection<File> files, ToscaExtensionYamlUtil toscaExtensionYamlUtil) throws IOException { for (File file : files) { try (InputStream yamlFile = new FileInputStream(file)) { ServiceTemplate serviceTemplateFromYaml = toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class); - serviceTemplates.put(file.getName(), serviceTemplateFromYaml); + serviceTemplates.put(ToscaUtil.getServiceTemplateFileName(serviceTemplateFromYaml), serviceTemplateFromYaml); try { yamlFile.close(); } catch (IOException ignore) { } - } catch (FileNotFoundException e) { - throw e; - } catch (IOException e) { - throw e; + } catch (FileNotFoundException exception) { + throw exception; + } catch (IOException exception) { + throw exception; } } } @@ -78,12 +122,12 @@ public class CompositionDataExtractorTest { ToscaServiceModel toscaServiceModel = loadToscaServiceModel("/extractServiceComposition/networks/", "/extractServiceComposition/toscaGlobalServiceTemplates/", null); - org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData compositionData = - CompositionDataExtractor.extractServiceCompositionData(toscaServiceModel); + CompositionData compositionData = + compositionDataExtractor.extractServiceCompositionData(toscaServiceModel); Assert.assertEquals(compositionData.getComponents().size(), 0); Assert.assertEquals(compositionData.getNetworks().size(), 7); - for (org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network network : compositionData.getNetworks()) { + for (Network network : compositionData.getNetworks()) { boolean dhcp = network.isDhcp(); switch (network.getName()) { case "contail-net-default-true-dhcp": @@ -118,13 +162,13 @@ public class CompositionDataExtractorTest { public void testExtractOnlyComponents() throws Exception { ToscaServiceModel toscaServiceModel = loadToscaServiceModel("/extractServiceComposition/onlyComponents/", - "/extractServiceComposition/toscaGlobalServiceTemplates/", "OnlyComponentsST.yaml"); - org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData compositionData = - CompositionDataExtractor.extractServiceCompositionData(toscaServiceModel); + "/extractServiceComposition/toscaGlobalServiceTemplates/", null); + CompositionData compositionData = + compositionDataExtractor.extractServiceCompositionData(toscaServiceModel); Assert.assertEquals(compositionData.getComponents().size(), 3); Assert.assertEquals(compositionData.getNetworks().size(), 0); - for (org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component component : compositionData.getComponents()) { + for (Component component : compositionData.getComponents()) { switch (component.getData().getName()) { case "org.openecomp.resource.vfc.nodes.heat.pcrf_psm": Assert.assertNull(component.getNics()); @@ -149,14 +193,14 @@ public class CompositionDataExtractorTest { ToscaServiceModel toscaServiceModel = loadToscaServiceModel("/extractServiceComposition/componentsWithPort/", - "/extractServiceComposition/toscaGlobalServiceTemplates/", "ComponentsWithPortST.yaml"); - org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData compositionData = - CompositionDataExtractor.extractServiceCompositionData(toscaServiceModel); + "/extractServiceComposition/toscaGlobalServiceTemplates/", null); + CompositionData compositionData = + compositionDataExtractor.extractServiceCompositionData(toscaServiceModel); Assert.assertEquals(compositionData.getComponents().size(), 3); Assert.assertEquals(compositionData.getNetworks().size(), 0); - for (org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component component : compositionData.getComponents()) { + for (Component component : compositionData.getComponents()) { switch (component.getData().getName()) { case "org.openecomp.resource.vfc.nodes.heat.pcrf_psm": Assert.assertEquals(component.getNics().size(), 1); @@ -165,9 +209,11 @@ public class CompositionDataExtractorTest { Assert.assertEquals(component.getData().getDisplayName(), "pcrf_psm"); break; case "org.openecomp.resource.vfc.nodes.heat.nova.Server": - Assert.assertEquals(component.getNics().size(), 1); - Assert.assertEquals(component.getNics().get(0).getName(), "FSB1_Internal2"); + Assert.assertEquals(component.getNics().size(), 2); + Assert.assertEquals(component.getNics().get(0).getName(), "template_VMInt_OAM_lb_2"); Assert.assertNull(component.getNics().get(0).getNetworkName()); + Assert.assertEquals(component.getNics().get(1).getName(), "FSB1_Internal2"); + Assert.assertNull(component.getNics().get(1).getNetworkName()); Assert.assertEquals(component.getData().getDisplayName(), "Server"); break; case "org.openecomp.resource.vfc.nodes.heat.pcm": @@ -186,12 +232,12 @@ public class CompositionDataExtractorTest { ToscaServiceModel toscaServiceModel = loadToscaServiceModel("/extractServiceComposition/fullComposition/", "/extractServiceComposition/toscaGlobalServiceTemplates/", null); - org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData compositionData = - CompositionDataExtractor.extractServiceCompositionData(toscaServiceModel); + CompositionData compositionData = + compositionDataExtractor.extractServiceCompositionData(toscaServiceModel); Assert.assertEquals(compositionData.getComponents().size(), 3); - Assert.assertEquals(compositionData.getNetworks().size(), 3); + Assert.assertEquals(compositionData.getNetworks().size(), 4); - for (org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component component : compositionData.getComponents()) { + for (Component component : compositionData.getComponents()) { switch (component.getData().getName()) { case "org.openecomp.resource.vfc.nodes.heat.pcrf_psm": Assert.assertEquals(component.getNics().size(), 1); @@ -200,9 +246,9 @@ public class CompositionDataExtractorTest { Assert.assertEquals(component.getData().getDisplayName(), "pcrf_psm"); break; case "org.openecomp.resource.vfc.nodes.heat.nova.Server": - Assert.assertEquals(component.getNics().size(), 3); + Assert.assertEquals(component.getNics().size(), 4); Assert.assertEquals(component.getData().getDisplayName(), "Server"); - for (org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic port : component.getNics()) { + for (Nic port : component.getNics()) { switch (port.getName()) { case "FSB1_Internal2_port": Assert.assertEquals(port.getNetworkName(), "Internal2-net"); @@ -213,6 +259,9 @@ public class CompositionDataExtractorTest { case "FSB1_Internal1_port": Assert.assertEquals(port.getNetworkName(), "Internal1-net"); break; + case "template_VMInt_OAM_lb_2": + Assert.assertEquals(port.getNetworkName(), "jsa_net1"); + break; default: throw new Exception("Unexpected Nic " + port.getName()); } @@ -234,12 +283,12 @@ public class CompositionDataExtractorTest { ToscaServiceModel toscaServiceModel = loadToscaServiceModel("/extractServiceComposition/substitution/", "/extractServiceComposition/toscaGlobalServiceTemplates/", null); - org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData compositionData = - CompositionDataExtractor.extractServiceCompositionData(toscaServiceModel); + CompositionData compositionData = + compositionDataExtractor.extractServiceCompositionData(toscaServiceModel); Assert.assertEquals(compositionData.getComponents().size(), 2); Assert.assertEquals(compositionData.getNetworks().size(), 4); - for (org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component component : compositionData.getComponents()) { + for (Component component : compositionData.getComponents()) { switch (component.getData().getName()) { case "org.openecomp.resource.vfc.nodes.heat.cmaui_image": Assert.assertEquals(component.getNics().size(), 1); @@ -257,7 +306,7 @@ public class CompositionDataExtractorTest { throw new Exception("Unexpected ComponentData Name " + component.getData().getName()); } } - for (org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network network : compositionData.getNetworks()) { + for (Network network : compositionData.getNetworks()) { boolean dhcp = network.isDhcp(); switch (network.getName()) { case "test_net2": @@ -275,6 +324,4 @@ public class CompositionDataExtractorTest { } } - - }
\ No newline at end of file diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImplTest.java new file mode 100644 index 0000000000..1acd58d157 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImplTest.java @@ -0,0 +1,283 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorsoftwareproduct.services.impl.composition; + +import org.apache.commons.collections.CollectionUtils; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; +import org.openecomp.core.utilities.file.FileUtils; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspQuestionnaireEntity; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network; +import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.NetworkCompositionSchemaInput; +import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import static org.mockito.Mockito.doReturn; + +public class CompositionEntityDataManagerImplTest { + private static final String VSP1 = "vsp1"; + private static final Version VERSION = new Version(0, 1); + private static final String COMPONENT1 = "component1"; + private static final String NIC1 = "nic1"; + private static final String SIMPLE_SCHEMA = "{\n" + + " \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n" + + " \"type\": \"object\",\n" + + " \"properties\": {\n" + + " \"a\": {\n" + + " \"type\": \"number\"\n" + + " }\n" + + " }\n" + + "}"; + private static final String NETWORK_COMPOSITION_SCHEMA = "{\n" + + " \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n" + + " \"type\": \"object\",\n" + + " \"properties\": {\n" + + " \"name\": {\n" + + " \"type\": \"string\",\n" + + " \"enum\": [\n" + + " \"network1 name\"\n" + + " ],\n" + + " \"default\": \"network1 name\"\n" + + " },\n" + + " \"dhcp\": {\n" + + " \"type\": \"boolean\",\n" + + " \"enum\": [\n" + + " true\n" + + " ],\n" + + " \"default\": true\n" + + " }\n" + + " },\n" + + " \"additionalProperties\": false,\n" + + " \"required\": [\n" + + " \"name\",\n" + + " \"dhcp\"\n" + + " ]\n" + + "}"; + + private Map<CompositionEntityId, Collection<String>> errorsById; + @Mock + private VendorSoftwareProductDao vendorSoftwareProductDaoMock; + @InjectMocks + @Spy + private CompositionEntityDataManagerImpl compositionEntityDataManager; + + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test(expectedExceptions = CoreException.class) + public void testAddNullEntity_negative() { + compositionEntityDataManager.addEntity(null, null); + } + + @Test + public void testAddEntity() { + compositionEntityDataManager + .addEntity(new VspQuestionnaireEntity(VSP1, VERSION), null); + + String invalidQuestionnaireData = "{\"a\": \"b\"}"; + + ComponentEntity component = new ComponentEntity(VSP1, VERSION, COMPONENT1); + component.setQuestionnaireData(invalidQuestionnaireData); + compositionEntityDataManager.addEntity(component, null); + + NicEntity nic = new NicEntity(VSP1, VERSION, COMPONENT1, NIC1); + nic.setQuestionnaireData(invalidQuestionnaireData); + compositionEntityDataManager.addEntity(nic, null); + } + + // TODO: 3/15/2017 fix and enable + //@Test(dependsOnMethods = "testAddEntity") + public void testValidateEntitiesQuestionnaire() { + doReturn(SIMPLE_SCHEMA).when(compositionEntityDataManager) + .generateSchema(SchemaTemplateContext.questionnaire, CompositionEntityType.vsp, null); + doReturn(SIMPLE_SCHEMA).when(compositionEntityDataManager) + .generateSchema(SchemaTemplateContext.questionnaire, CompositionEntityType.component, null); + doReturn(SIMPLE_SCHEMA).when(compositionEntityDataManager) + .generateSchema(SchemaTemplateContext.questionnaire, CompositionEntityType.nic, null); + + errorsById = compositionEntityDataManager.validateEntitiesQuestionnaire(); + Assert.assertNotNull(errorsById); + Assert.assertEquals(errorsById.size(), 2); // both component and nic data don't mach schemas + CompositionEntityId nicId = + new NicEntity(VSP1, VERSION, COMPONENT1, NIC1).getCompositionEntityId(); + Assert.assertTrue(errorsById.containsKey(nicId)); + Assert.assertTrue(errorsById.containsKey(nicId.getParentId())); + } + + @Test(dependsOnMethods = "testAddEntity") + public void testBuildTrees() { + compositionEntityDataManager.buildTrees(); + } + + // TODO: 3/15/2017 fix and enable + //@Test(dependsOnMethods = "testBuildTrees") + public void testAddErrorsToTrees() { + compositionEntityDataManager.addErrorsToTrees(errorsById); + } + + // TODO: 3/15/2017 fix and enable + //@Test(dependsOnMethods = "testAddErrorsToTrees") + public void testGetTrees() { + Collection<CompositionEntityValidationData> trees = compositionEntityDataManager.getTrees(); + Assert.assertNotNull(trees); + Assert.assertEquals(trees.size(), 1); + + CompositionEntityValidationData vspValidationData = trees.iterator().next(); + assertValidationData(vspValidationData, VSP1, CompositionEntityType.vsp, false); + Assert.assertEquals(vspValidationData.getSubEntitiesValidationData().size(), 1); + + CompositionEntityValidationData componentValidationData = + vspValidationData.getSubEntitiesValidationData().iterator().next(); + assertValidationData(componentValidationData, COMPONENT1, CompositionEntityType.component, + true); + Assert.assertEquals(componentValidationData.getSubEntitiesValidationData().size(), 1); + + CompositionEntityValidationData nicValidationData = + componentValidationData.getSubEntitiesValidationData().iterator().next(); + assertValidationData(nicValidationData, NIC1, CompositionEntityType.nic, true); + Assert.assertNull(nicValidationData.getSubEntitiesValidationData()); + } + + @Test + public void testValidateValidEntity() { + NetworkEntity networkEntity = new NetworkEntity(VSP1, VERSION, "network1"); + Network network = new Network(); + network.setName("network1 name"); + network.setDhcp(true); + networkEntity.setNetworkCompositionData(network); + + NetworkCompositionSchemaInput schemaTemplateInput = new NetworkCompositionSchemaInput(); + schemaTemplateInput.setManual(false); + schemaTemplateInput.setNetwork(network); + + doReturn(NETWORK_COMPOSITION_SCHEMA).when(compositionEntityDataManager) + .generateSchema(SchemaTemplateContext.composition, CompositionEntityType.network, + schemaTemplateInput); + + CompositionEntityValidationData validationData = compositionEntityDataManager + .validateEntity(networkEntity, SchemaTemplateContext.composition, schemaTemplateInput); + assertValidationData(validationData, "network1", CompositionEntityType.network, false); + } + + @Test + public void testValidateInvalidEntity() { + NetworkEntity networkEntity = new NetworkEntity(VSP1, VERSION, "network1"); + Network network = new Network(); + network.setName("network1 name changed"); + network.setDhcp(false); + networkEntity.setNetworkCompositionData(network); + + NetworkCompositionSchemaInput schemaTemplateInput = new NetworkCompositionSchemaInput(); + schemaTemplateInput.setManual(false); + Network origNetwork = new Network(); + origNetwork.setName("network1 name"); + origNetwork.setDhcp(true); + schemaTemplateInput.setNetwork(origNetwork); + + doReturn(NETWORK_COMPOSITION_SCHEMA).when(compositionEntityDataManager) + .generateSchema(SchemaTemplateContext.composition, CompositionEntityType.network, + schemaTemplateInput); + + CompositionEntityValidationData validationData = compositionEntityDataManager + .validateEntity(networkEntity, SchemaTemplateContext.composition, schemaTemplateInput); + assertValidationData(validationData, "network1", CompositionEntityType.network, true); + Assert.assertEquals(validationData.getErrors().size(), 2); + } + + @Test + public void testNicAndComponentValidQuestionnaire() { + compositionEntityDataManager + .addEntity(new VspQuestionnaireEntity(VSP1, VERSION), null); + + ComponentEntity componentEntity = new ComponentEntity(VSP1, VERSION, COMPONENT1); + componentEntity.setQuestionnaireData(loadFileToString("quesionnaire/validComponent.json")); + compositionEntityDataManager.addEntity(componentEntity, null); + + NicEntity nicEntity = new NicEntity(VSP1, VERSION, COMPONENT1, NIC1); + nicEntity.setQuestionnaireData(loadFileToString("quesionnaire/validNic.json")); + compositionEntityDataManager.addEntity(nicEntity, null); + + doReturn(SIMPLE_SCHEMA) + .when(compositionEntityDataManager) + .generateSchema(SchemaTemplateContext.questionnaire, CompositionEntityType.vsp, null); + + doReturn(loadFileToString("quesionnaire/schema/componentQuestionnaire.json")) + .when(compositionEntityDataManager) + .generateSchema(SchemaTemplateContext.questionnaire, CompositionEntityType.component, null); + + doReturn(loadFileToString("quesionnaire/schema/nicQuestionnaire.json")) + .when(compositionEntityDataManager) + .generateSchema(SchemaTemplateContext.questionnaire, CompositionEntityType.nic, null); + + Map<CompositionEntityId, Collection<String>> errorsById = + compositionEntityDataManager.validateEntitiesQuestionnaire(); + Assert.assertEquals(errorsById.size(), 0); + } + + @Test(dependsOnMethods = "testNicAndComponentValidQuestionnaire") + public void testComponentInvalidQuestionnaire() { + ComponentEntity componentEntity = new ComponentEntity(VSP1, VERSION, COMPONENT1); + componentEntity.setQuestionnaireData(loadFileToString("quesionnaire/invalidComponent.json")); + compositionEntityDataManager.addEntity(componentEntity, null); + + Map<CompositionEntityId, Collection<String>> errorsById = + compositionEntityDataManager.validateEntitiesQuestionnaire(); + Assert.assertEquals(errorsById.size(), 1); + + CompositionEntityId component = errorsById.keySet().iterator().next(); + List<String> errors = (List<String>) errorsById.get(component); + Assert.assertEquals(errors.size(), 1); + Assert.assertEquals(errors.get(0), + "#/general/recovery/pointObjective: 20.0 is not lower or equal to 15"); + } + + private static void assertValidationData(CompositionEntityValidationData validationData, + String id, CompositionEntityType type, + boolean hasErrors) { + Assert.assertNotNull(validationData); + Assert.assertEquals(validationData.getEntityId(), id); + Assert.assertEquals(validationData.getEntityType(), type); + Assert.assertTrue(CollectionUtils.isNotEmpty(validationData.getErrors()) == hasErrors); + } + + private static String loadFileToString(String path) { + return new String(FileUtils.toByteArray(FileUtils.loadFileToInputStream(path))); + } +}
\ No newline at end of file diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/SchemaGeneratorTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/schemagenerator/SchemaGeneratorTest.java index fd293c66dd..fdbf400406 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/SchemaGeneratorTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/schemagenerator/SchemaGeneratorTest.java @@ -1,9 +1,30 @@ -package org.openecomp.sdc.vendorsoftwareproduct.services; +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator; -import org.openecomp.core.utilities.json.JsonUtil; import org.everit.json.schema.EmptySchema; import org.everit.json.schema.loader.SchemaLoader; import org.json.JSONObject; +import org.openecomp.core.utilities.json.JsonUtil; +import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator; import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData; import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network; @@ -37,7 +58,7 @@ public class SchemaGeneratorTest { return schemaJson; } - @Test + // TODO: 3/15/2017 fix and enable //@Test public void testGenerateVspQuestionnaire() { String schema = SchemaGenerator .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.vsp, null); @@ -79,15 +100,15 @@ public class SchemaGeneratorTest { @Test public void testGenerateComponentQuestionnaireWithMissingInput() { - ComponentQuestionnaireSchemaInput input = - new ComponentQuestionnaireSchemaInput(Arrays.asList("nic1", "nic2"), - JsonUtil.json2Object("{\n" + - " \"compute\": {\n" + - " \"numOfVMs\": {\n" + - " \"blabla\": 70\n" + // no minimum - " }\n" + - " }\n" + - "}", Map.class)); + ComponentQuestionnaireSchemaInput + input = new ComponentQuestionnaireSchemaInput(Arrays.asList("nic1", "nic2"), + JsonUtil.json2Object("{\n" + + " \"compute\": {\n" + + " \"numOfVMs\": {\n" + + " \"blabla\": 70\n" + // no minimum + " }\n" + + " }\n" + + "}", Map.class)); String schema = SchemaGenerator .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.component, input); JSONObject schemaJson = validateSchema(schema); diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/HeatTreeManagerTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/HeatTreeManagerTest.java index c926977c7b..baa0d8da3f 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/HeatTreeManagerTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/HeatTreeManagerTest.java @@ -1,13 +1,38 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + package org.openecomp.sdc.vendorsoftwareproduct.tree; +import org.openecomp.sdc.datatypes.error.ErrorLevel; import org.openecomp.sdc.datatypes.error.ErrorMessage; import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree; import org.openecomp.sdc.heat.services.tree.HeatTreeManager; -import org.junit.Assert; -import org.junit.Test; +import org.testng.Assert; +import org.testng.annotations.Test; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; public class HeatTreeManagerTest extends TreeBaseTest { @@ -15,16 +40,16 @@ public class HeatTreeManagerTest extends TreeBaseTest { @Test public void testHeatTreeManager() { - INPUT_DIR = "/tree/valid_tree/input/"; + INPUT_DIR = "./tree/valid_tree/input/"; HeatTreeManager heatTreeManager = initHeatTreeManager(); heatTreeManager.createTree(); Map<String, List<ErrorMessage>> errorMap = new HashMap<>(); List<ErrorMessage> errorList = new ArrayList<>(); - errorList.add(new ErrorMessage(org.openecomp.sdc.datatypes.error.ErrorLevel.ERROR, "Missing Artifact")); + errorList.add(new ErrorMessage(ErrorLevel.ERROR, "Missing Artifact")); errorMap.put("missing-artifact", errorList); errorList = new ArrayList<>(); - errorList.add(new ErrorMessage(org.openecomp.sdc.datatypes.error.ErrorLevel.WARNING, "Missing Nested File")); + errorList.add(new ErrorMessage(ErrorLevel.WARNING, "Missing Nested File")); errorMap.put("missingNested.yaml", errorList); heatTreeManager.addErrors(errorMap); HeatStructureTree tree = heatTreeManager.getTree(); @@ -34,33 +59,33 @@ public class HeatTreeManagerTest extends TreeBaseTest { @Test public void testHeatTreeManagerMissingManifest() { - INPUT_DIR = "/tree/missing_manifest/input/"; + INPUT_DIR = "./tree/missing_manifest/input/"; HeatTreeManager heatTreeManager = initHeatTreeManager(); heatTreeManager.createTree(); Map<String, List<ErrorMessage>> errorMap = new HashMap<>(); List<ErrorMessage> errorList = new ArrayList<>(); - errorList.add(new ErrorMessage(org.openecomp.sdc.datatypes.error.ErrorLevel.ERROR, "Missing Artifact")); + errorList.add(new ErrorMessage(ErrorLevel.ERROR, "Missing Artifact")); errorMap.put("missing-artifact", errorList); errorList = new ArrayList<>(); - errorList.add(new ErrorMessage(org.openecomp.sdc.datatypes.error.ErrorLevel.WARNING, "Missing Nested File")); + errorList.add(new ErrorMessage(ErrorLevel.WARNING, "Missing Nested File")); errorMap.put("missingNested.yaml", errorList); heatTreeManager.addErrors(errorMap); HeatStructureTree tree = heatTreeManager.getTree(); Assert.assertNotNull(tree); - Assert.assertEquals(tree.getHEAT(), null); + Assert.assertEquals(tree.getHeat(), null); } @Test public void testResourceGroupShowsAsNestedFileInTree() throws IOException { - INPUT_DIR = "/tree/nested_resource_group"; + INPUT_DIR = "./tree/nested_resource_group"; HeatTreeManager heatTreeManager = initHeatTreeManager(); heatTreeManager.createTree(); HeatStructureTree tree = heatTreeManager.getTree(); - Set<HeatStructureTree> heat = tree.getHEAT(); + Set<HeatStructureTree> heat = tree.getHeat(); Assert.assertNotNull(heat); HeatStructureTree addOnHeatSubTree = @@ -78,12 +103,12 @@ public class HeatTreeManagerTest extends TreeBaseTest { @Test public void testVolumeNestedFileIsNotUnderVolumeSubTree() { - INPUT_DIR = "/tree/nested_volume"; + INPUT_DIR = "./tree/nested_volume"; HeatTreeManager heatTreeManager = initHeatTreeManager(); heatTreeManager.createTree(); HeatStructureTree tree = heatTreeManager.getTree(); - Set<HeatStructureTree> heat = tree.getHEAT(); + Set<HeatStructureTree> heat = tree.getHeat(); Set<HeatStructureTree> volume = tree.getVolume(); Assert.assertNotNull(heat); Assert.assertNull(volume); diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/TreeBaseTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/TreeBaseTest.java index df6cf54058..42eee1fb10 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/TreeBaseTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/TreeBaseTest.java @@ -1,12 +1,35 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + package org.openecomp.sdc.vendorsoftwareproduct.tree; -import org.openecomp.sdc.heat.services.tree.HeatTreeManager; import org.openecomp.core.utilities.file.FileUtils; +import org.openecomp.sdc.heat.services.tree.HeatTreeManager; import java.io.File; import java.net.URISyntaxException; import java.net.URL; +/** + * Created by SHALOMB on 6/8/2016. + */ public class TreeBaseTest { String INPUT_DIR; @@ -15,18 +38,23 @@ public class TreeBaseTest { HeatTreeManager initHeatTreeManager() { HeatTreeManager heatTreeManager = new HeatTreeManager(); - URL url = TreeBaseTest.class.getResource(INPUT_DIR); + URL url = Thread.currentThread().getContextClassLoader().getResource(INPUT_DIR); File inputDir = null; try { inputDir = new File(url.toURI()); - } catch (URISyntaxException e) { - e.printStackTrace(); + } catch (URISyntaxException exception) { + exception.printStackTrace(); } File[] files = inputDir.listFiles(); for (File inputFile : files) { - heatTreeManager.addFile(inputFile.getName(), FileUtils.loadFileToInputStream( - INPUT_DIR.replace("/", File.separator) + File.separator + inputFile.getName())); + try { + heatTreeManager.addFile(inputFile.getName(), FileUtils.loadFileToInputStream( + INPUT_DIR.replace("/", File.separator) + File.separator + inputFile.getName())); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } } return heatTreeManager; } diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/UploadFileTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/UploadFileTest.java index ee31ba4d70..236b7e7594 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/UploadFileTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/UploadFileTest.java @@ -1,72 +1,110 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + package org.openecomp.sdc.vendorsoftwareproduct.tree; -import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade; -import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory; -import org.openecomp.sdc.vendorsoftwareproduct.VSPCommon; -import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; + +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; +import org.openecomp.core.model.dao.ServiceModelDao; +import org.openecomp.core.model.types.ServiceElement; +import org.openecomp.sdc.healing.api.HealingManager; +import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; +import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadDataEntity; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; +import org.openecomp.sdc.vendorsoftwareproduct.impl.OrchestrationTemplateCandidateManagerImpl; +import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor; +import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager; +import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService; +import org.openecomp.sdc.vendorsoftwareproduct.services.impl.filedatastructuremodule.CandidateServiceImpl; +import org.openecomp.sdc.vendorsoftwareproduct.utils.VSPCommon; import org.openecomp.sdc.versioning.dao.types.Version; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.*; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.net.URL; import java.util.zip.ZipOutputStream; -public class UploadFileTest { +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.doReturn; +public class UploadFileTest { + private static final String USER1 = "vspTestUser1"; public static final Version VERSION01 = new Version(0, 1); - private static final String USER1 = "vspTestUser1"; + @Mock + private VendorSoftwareProductDao vendorSoftwareProductDaoMock; + @Mock + private OrchestrationTemplateDao orchestrationTemplateDataDaoMock; + @Spy + private CandidateServiceImpl candidateService; + @Mock + private HealingManager healingManagerMock; + @Mock + private CompositionDataExtractor compositionDataExtractorMock; + @Mock + private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDaoMock; + @Mock + private CompositionEntityDataManager compositionEntityDataManagerMock; + @Mock + private VendorSoftwareProductInfoDao vspInfoDaoMock; + + @InjectMocks + private OrchestrationTemplateCandidateManagerImpl candidateManager; + + private static String vlm1Id; public static String id001 = null; public static String id002 = null; - public static Version activeVersion002 = null; - private static VendorSoftwareProductManager vendorSoftwareProductManager = - new VendorSoftwareProductManagerImpl(); - private static VendorSoftwareProductDao vendorSoftwareProductDao = - VendorSoftwareProductDaoFactory.getInstance().createInterface(); - private static VendorLicenseFacade vendorLicenseFacade = - VendorLicenseFacadeFactory.getInstance().createInterface(); - private static String vlm1Id; - - @BeforeClass - static public void init() { - //testCreateVSP - vlm1Id = vendorLicenseFacade.createVendorLicenseModel( - VSPCommon.createVendorLicenseModel("vlmName", "vlm1Id desc", "icon1"), USER1).getId(); - VspDetails expectedVsp = VSPCommon - .createVspDetails(null, null, "VSP1", "Test-vsp", "vendorName", vlm1Id, "icon", "category", - "subCategory", "123", null); - - VspDetails createdVsp = vendorSoftwareProductManager.createNewVsp(expectedVsp, USER1); - id001 = createdVsp.getId(); - - VspDetails actualVsp = - vendorSoftwareProductDao.getVendorSoftwareProductInfo(new VspDetails(id001, VERSION01)); - expectedVsp.setId(id001); - expectedVsp.setVersion(VERSION01); + public static Version activeVersion002 = null; + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); } @Test public void testUploadFile() { - //vspActiveVersion = vendorSoftwareProductManager.checkout(id001, USER1); - vendorSoftwareProductManager.uploadFile(id001, getZipInputStream("/legalUpload"), USER1); - //testLegalUpload(id001, vspActiveVersion, getZipInputStream("/legalUpload"), USER1); + VspDetails vspDetails = new VspDetails("dummyId", new Version(1, 0)); + doReturn(vspDetails).when(vspInfoDaoMock).get(any(VspDetails.class)); + candidateManager.upload(id001, activeVersion002, getZipInputStream("/legalUpload"), USER1); } private void testLegalUpload(String vspId, Version version, InputStream upload, String user) { - vendorSoftwareProductManager.uploadFile(vspId, upload, user); + candidateManager.upload(vspId, activeVersion002, upload, user); UploadDataEntity uploadData = - vendorSoftwareProductDao.getUploadData(new UploadDataEntity(vspId, version)); + orchestrationTemplateDataDaoMock.getOrchestrationTemplate(vspId, version); } diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/HeatCleanup/HeatCleanupOnNewUploadTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/HeatCleanup/HeatCleanupOnNewUploadTest.java index f1bf5682e0..e1073db941 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/HeatCleanup/HeatCleanupOnNewUploadTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/HeatCleanup/HeatCleanupOnNewUploadTest.java @@ -1,40 +1,33 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + package org.openecomp.sdc.vendorsoftwareproduct.upload.HeatCleanup; -import org.openecomp.sdc.datatypes.error.ErrorLevel; -import org.openecomp.sdc.vendorsoftwareproduct.VSPCommon; -import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants; -import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadDataEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; -import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse; -import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileStatus; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.core.model.dao.ServiceModelDao; -import org.openecomp.core.model.dao.ServiceModelDaoFactory; -import org.openecomp.core.util.UniqueValueUtil; -import org.openecomp.core.validation.types.MessageContainerUtil; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.List; - -public class HeatCleanupOnNewUploadTest { +public class HeatCleanupOnNewUploadTest {/* private static final String USER1 = "vspTestUser1"; - private static final VendorSoftwareProductManager vendorSoftwareProductManager = - new VendorSoftwareProductManagerImpl(); + private static final VendorSoftwareProductManager + vendorSoftwareProductManager = new VendorSoftwareProductManagerImpl(); private static final VendorSoftwareProductDao vendorSoftwareProductDao = - VendorSoftwareProductDaoFactory.getInstance().createInterface(); + VendorSoftwareProductDaoFactory + .getInstance().createInterface(); private static final ServiceModelDao serviceModelDao = ServiceModelDaoFactory.getInstance().createInterface(); @@ -48,7 +41,8 @@ public class HeatCleanupOnNewUploadTest { Assert.assertTrue((uploadDataEntity.getValidationData() != null) == exist); Assert.assertTrue((uploadDataEntity.getPackageName() != null) == exist); Assert.assertTrue((uploadDataEntity.getPackageVersion() != null) == exist); - Assert.assertTrue((serviceModelDao.getServiceModel(vspId, vspActiveVersion) != null) == exist); + //TODO: talio - delete enrich data on new upload + //Assert.assertTrue((serviceModelDao.getServiceModel(vspId, vspActiveVersion) != null) == ex } private static void validateCompositionDataExistence(boolean exist) { @@ -64,8 +58,8 @@ public class HeatCleanupOnNewUploadTest { URL url = HeatCleanupOnNewUploadTest.class.getResource(fileName); try { return url.openStream(); - } catch (IOException e) { - e.printStackTrace(); + } catch (IOException exception) { + exception.printStackTrace(); return null; } } @@ -76,7 +70,7 @@ public class HeatCleanupOnNewUploadTest { .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, "VSPTestEmpty"); - VspDetails vspDetails = vendorSoftwareProductManager.createNewVsp(VSPCommon + VspDetails vspDetails = vendorSoftwareProductManager.createVsp(VSPCommon .createVspDetails(null, null, "VSPTestEmpty", "Test-vsp-empty", "vendorName", "vlm1Id", "icon", "category", "subCategory", "123", null), USER1); vspId = vspDetails.getId(); @@ -87,12 +81,13 @@ public class HeatCleanupOnNewUploadTest { public void testUploadWithComposition() { InputStream zis = getFileInputStream("/vspmanager/zips/fullComposition.zip"); - UploadFileResponse uploadFileResponse = - vendorSoftwareProductManager.uploadFile(vspId, zis, USER1); + vendorSoftwareProductManager.upload(vspId, zis, USER1); + OrchestrationTemplateActionResponse orchestrationTemplateActionResponse = + vendorSoftwareProductManager.process(vspId, USER1); - Assert.assertEquals(uploadFileResponse.getStatus(), UploadFileStatus.Success); - Assert.assertTrue(MapUtils.isEmpty( - MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, uploadFileResponse.getErrors()))); + Assert.assertEquals(orchestrationTemplateActionResponse.getStatus(), UploadFileStatus.Success); + Assert.assertTrue(MapUtils.isEmpty(MessageContainerUtil + .getMessageByLevel(ErrorLevel.ERROR, orchestrationTemplateActionResponse.getErrors()))); validateUploadContentExistence(true); validateCompositionDataExistence(true); @@ -104,50 +99,40 @@ public class HeatCleanupOnNewUploadTest { InputStream zis2 = getFileInputStream("/vspmanager/zips/fullComposition.zip"); InputStream mib = getFileInputStream("/vspmanager/zips/vDNS.zip"); - vendorSoftwareProductManager.uploadFile(vspId, zis1, USER1); + vendorSoftwareProductManager.upload(vspId, zis1, USER1); + vendorSoftwareProductManager.process(vspId, USER1); List<ComponentEntity> components = (List<ComponentEntity>) vendorSoftwareProductDao.listComponents(vspId, vspActiveVersion); String componentId = components.get(0).getId(); vendorSoftwareProductManager - .uploadComponentMib(mib, "vDNS.zip", vspId, componentId, true, USER1); + .upload(mib, "vDNS.zip", vspId, componentId, ArtifactType.SNMP_TRAP, USER1); vendorSoftwareProductManager - .createProcess(new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity(vspId, vspActiveVersion, componentId, null), USER1); + .createProcess(new ProcessEntity(vspId, vspActiveVersion, componentId, null), USER1); - vendorSoftwareProductManager.uploadFile(vspId, zis2, USER1); + vendorSoftwareProductManager.upload(vspId, zis2, USER1); + vendorSoftwareProductManager.process(vspId, USER1); Assert.assertTrue( - vendorSoftwareProductManager.listMibFilenames(vspId, componentId, USER1).getSnmpTrap() == + vendorSoftwareProductManager.listFilenames(vspId, componentId, USER1).getSnmpTrap() == null); Assert.assertTrue(CollectionUtils .isEmpty(vendorSoftwareProductDao.listProcesses(vspId, vspActiveVersion, componentId))); } @Test(dependsOnMethods = {"testProccesesMIBsDeletionAfterNewUpload"}) - public void testInvalidStructureUploadAfterFullComposition() { - InputStream zis = getFileInputStream("/vspmanager/zips/withoutManifest.zip"); - - UploadFileResponse uploadFileResponse = - vendorSoftwareProductManager.uploadFile(vspId, zis, USER1); - Assert.assertEquals(uploadFileResponse.getStatus(), UploadFileStatus.Failure); - Assert.assertTrue(MapUtils.isNotEmpty( - MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, uploadFileResponse.getErrors()))); - - validateUploadContentExistence(true); - validateCompositionDataExistence(true); - } - - @Test(dependsOnMethods = {"testInvalidStructureUploadAfterFullComposition"}) public void testInvalidUploadAfterFullComposition() { InputStream zis = getFileInputStream("/vspmanager/zips/missingYml.zip"); - UploadFileResponse uploadFileResponse = - vendorSoftwareProductManager.uploadFile(vspId, zis, USER1); - Assert.assertEquals(uploadFileResponse.getStatus(), UploadFileStatus.Success); + vendorSoftwareProductManager.upload(vspId, zis, USER1); + OrchestrationTemplateActionResponse uploadFileResponse = + vendorSoftwareProductManager.process(vspId, USER1); + Assert.assertEquals(uploadFileResponse.getStatus(), UploadFileStatus.Failure); Assert.assertTrue(MapUtils.isNotEmpty( MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, uploadFileResponse.getErrors()))); validateUploadContentExistence(true); - validateCompositionDataExistence(false); + //TODO: talio - check upload cleanup +// validateCompositionDataExistence(false); } @Test(dependsOnMethods = {"testInvalidUploadAfterFullComposition"}) @@ -155,8 +140,9 @@ public class HeatCleanupOnNewUploadTest { testUploadWithComposition(); InputStream zis = getFileInputStream("/vspmanager/zips/emptyComposition.zip"); - UploadFileResponse uploadFileResponse = - vendorSoftwareProductManager.uploadFile(vspId, zis, USER1); + vendorSoftwareProductManager.upload(vspId, zis, USER1); + OrchestrationTemplateActionResponse uploadFileResponse = + vendorSoftwareProductManager.process(vspId, USER1); Assert.assertEquals(uploadFileResponse.getStatus(), UploadFileStatus.Success); Assert.assertTrue(MapUtils.isEmpty( MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, uploadFileResponse.getErrors()))); @@ -164,4 +150,4 @@ public class HeatCleanupOnNewUploadTest { validateUploadContentExistence(true); validateCompositionDataExistence(false); } -} +*/} diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/validation/UploadFileValidationTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/validation/UploadFileValidationTest.java index 3ec8cb2e40..0be5bef352 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/validation/UploadFileValidationTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/validation/UploadFileValidationTest.java @@ -1,28 +1,27 @@ -package org.openecomp.sdc.vendorsoftwareproduct.upload.validation; +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ -import org.openecomp.sdc.common.errors.CoreException; -import org.openecomp.sdc.common.utils.AsdcCommon; -import org.openecomp.sdc.datatypes.error.ErrorMessage; - -import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl; -import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse; -import org.openecomp.core.util.UniqueValueUtil; -import org.openecomp.core.utilities.CommonMethods; -import org.openecomp.core.validation.errors.Messages; -import org.openecomp.core.validation.types.MessageContainerUtil; -import org.apache.commons.collections4.MapUtils; -import org.testng.Assert; -import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; - -import java.io.*; -import java.net.URL; -import java.util.List; -import java.util.Map; +package org.openecomp.sdc.vendorsoftwareproduct.upload.validation; public class UploadFileValidationTest { +/* private static final String USER1 = "UploadFileValidationTest"; private static final String EMPTY_ZIP_FILE = "/validation/zips/emptyZip.zip"; @@ -33,10 +32,9 @@ public class UploadFileValidationTest { new VendorSoftwareProductManagerImpl(); private static String vspId; - public static org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity createVendorLicenseModel(String name, String desc, - String icon) { - org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity - vendorLicenseModel = new org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity(); + public static VendorLicenseModelEntity createVendorLicenseModel(String name, String desc, + String icon) { + VendorLicenseModelEntity vendorLicenseModel = new VendorLicenseModelEntity(); vendorLicenseModel.setVendorName(name); vendorLicenseModel.setDescription(desc); vendorLicenseModel.setIconRef(icon); @@ -47,66 +45,71 @@ public class UploadFileValidationTest { private void init() { VspDetails vspDetails = new VspDetails(); vspDetails.setVendorName("vspName_" + CommonMethods.nextUuId()); - vspId = vendorSoftwareProductManager.createNewVsp(vspDetails, USER1).getId(); + vspId = vendorSoftwareProductManager.createVsp(vspDetails, USER1).getId(); UniqueValueUtil - .deleteUniqueValue(org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, + .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, "VSP_syb_upload_various"); UniqueValueUtil - .deleteUniqueValue(org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, + .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, "vsp_syb_upload_no_error"); UniqueValueUtil - .deleteUniqueValue(org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, + .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, "vsp_syb"); } @Test public void testUploadZipNull() { - UploadFileResponse response = vendorSoftwareProductManager.uploadFile(vspId, null, USER1); - Assert.assertEquals(response.getErrors().size(), 1); - Assert.assertTrue(response.getErrors().containsKey(AsdcCommon.UPLOAD_FILE)); - Assert.assertEquals(response.getErrors().get(AsdcCommon.UPLOAD_FILE).get(0).getMessage(), - Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()); + try { + vendorSoftwareProductManager.upload(vspId, null, USER1); + OrchestrationTemplateActionResponse response = + vendorSoftwareProductManager.process(vspId, USER1); + } catch (Exception exception) { + Assert.assertEquals(exception.getMessage(), + "Failed to get orchestration template for VSP with id " + vspId); + } } @Test(dependsOnMethods = "testUploadZipNull") public void testUploadEmptyFile() { - UploadFileResponse response = vendorSoftwareProductManager - .uploadFile(vspId, new ByteArrayInputStream("".getBytes()), USER1); - Assert.assertEquals(response.getErrors().size(), 1); - Assert.assertTrue(response.getErrors().containsKey(AsdcCommon.UPLOAD_FILE)); - Assert.assertEquals(response.getErrors().get(AsdcCommon.UPLOAD_FILE).get(0).getMessage(), + UploadFileResponse uploadFileResponse = vendorSoftwareProductManager + .upload(vspId, new ByteArrayInputStream("".getBytes()), + USER1); + Assert.assertEquals(uploadFileResponse.getErrors().get(SdcCommon.UPLOAD_FILE).get(0) + .getMessage(), Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()); } @Test(dependsOnMethods = "testUploadEmptyFile") public void testUploadEmptyZip() { - UploadFileResponse response = - vendorSoftwareProductManager.uploadFile(vspId, getFileInputStream(EMPTY_ZIP_FILE), USER1); - Assert.assertEquals(response.getErrors().size(), 1); - Assert.assertTrue(response.getErrors().containsKey(AsdcCommon.UPLOAD_FILE)); - Assert.assertEquals(response.getErrors().get(AsdcCommon.UPLOAD_FILE).get(0).getMessage(), - Messages.INVALID_ZIP_FILE.getErrorMessage()); + UploadFileResponse uploadFileResponse = vendorSoftwareProductManager + .upload(vspId, getFileInputStream(EMPTY_ZIP_FILE), USER1); + Assert.assertEquals(uploadFileResponse.getErrors().get(SdcCommon.UPLOAD_FILE).get(0) + .getMessage(), + Messages.CREATE_MANIFEST_FROM_ZIP.getErrorMessage()); + */ +/*Assert.assertEquals(exception.getMessage(), + Messages.CREATE_MANIFEST_FROM_ZIP.getErrorMessage());*//* + } @Test(dependsOnMethods = "testUploadEmptyZip") public void testUploadMissingManifestInZip() { - UploadFileResponse response = vendorSoftwareProductManager - .uploadFile(vspId, getFileInputStream(MISSING_MANIFEST_IN_ZIP_FILE), USER1); - Assert.assertEquals(response.getErrors().size(), 1); - Assert.assertTrue(response.getErrors().containsKey(AsdcCommon.MANIFEST_NAME)); - Assert.assertEquals(response.getErrors().get(AsdcCommon.MANIFEST_NAME).get(0).getMessage(), - Messages.MANIFEST_NOT_EXIST.getErrorMessage()); + vendorSoftwareProductManager.upload(vspId, + getFileInputStream(MISSING_MANIFEST_IN_ZIP_FILE), USER1); + OrchestrationTemplateActionResponse response = + vendorSoftwareProductManager.process(vspId, USER1); + Assert.assertEquals(response.getErrors().size(), 2); } @Test(dependsOnMethods = "testUploadMissingManifestInZip") public void testUploadZipWithFolder() { - UploadFileResponse response = vendorSoftwareProductManager - .uploadFile(vspId, getFileInputStream(ZIP_FILE_WITH_FOLDER), USER1); - Assert.assertEquals(response.getErrors().size(), 1); - Assert.assertTrue(response.getErrors().containsKey(AsdcCommon.UPLOAD_FILE)); - Assert.assertEquals(response.getErrors().get(AsdcCommon.UPLOAD_FILE).get(0).getMessage(), - Messages.ZIP_SHOULD_NOT_CONTAIN_FOLDERS.getErrorMessage()); + vendorSoftwareProductManager + .upload(vspId, getFileInputStream(ZIP_FILE_WITH_FOLDER), + USER1); + OrchestrationTemplateActionResponse response = + vendorSoftwareProductManager.process(vspId, USER1); + Assert.assertEquals(response.getErrors().size(), 2); } @Test(dependsOnMethods = "testUploadZipWithFolder") @@ -116,24 +119,24 @@ public class UploadFileValidationTest { InputStream is; for (File file : files) { if (file.isFile()) { - UploadFileResponse response = null; + OrchestrationTemplateActionResponse response; try { is = new FileInputStream(file); - response = vendorSoftwareProductManager.uploadFile(vspId, is, USER1); + vendorSoftwareProductManager.upload(vspId, is, USER1); + response = + vendorSoftwareProductManager.process(vspId, USER1); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } catch (CoreException ce) { - throw new RuntimeException("failed upload:" + file.getName(), ce); + } catch (FileNotFoundException exception) { + throw new RuntimeException(exception); } catch (RuntimeException re) { throw new RuntimeException("failed upload:" + file.getName(), re); } System.out.println("zip:" + file.getName() + " Errors:" + calculateNumberOfMessages( - MessageContainerUtil.getMessageByLevel(org.openecomp.sdc.datatypes.error.ErrorLevel.ERROR, response.getErrors())) + + MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, response.getErrors())) + " Warnings:" + calculateNumberOfMessages( - MessageContainerUtil.getMessageByLevel(org.openecomp.sdc.datatypes.error.ErrorLevel.WARNING, response.getErrors()))); + MessageContainerUtil.getMessageByLevel(ErrorLevel.WARNING, response.getErrors()))); } } } @@ -148,18 +151,16 @@ public class UploadFileValidationTest { if (file.isFile()) { try { is = new FileInputStream(file); - UploadFileResponse response = vendorSoftwareProductManager.uploadFile(vspId, is, USER1); + vendorSoftwareProductManager.upload(vspId, is, USER1); + OrchestrationTemplateActionResponse response = + vendorSoftwareProductManager.process(vspId, USER1); Map<String, List<ErrorMessage>> errors = response.getErrors(); Assert.assertTrue( - MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel( - org.openecomp.sdc.datatypes.error.ErrorLevel.ERROR, errors))); - + MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, errors))); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } catch (CoreException ce) { - Assert.fail("failed upload:" + file.getName() + " exception:" + ce.getMessage()); + } catch (FileNotFoundException exception) { + throw new RuntimeException(exception); } catch (RuntimeException re) { Assert.fail("failed upload:" + file.getName() + " exception:" + re.getMessage()); } @@ -171,8 +172,8 @@ public class UploadFileValidationTest { URL url = this.getClass().getResource(fileName); try { return url.openStream(); - } catch (IOException e) { - e.printStackTrace(); + } catch (IOException exception) { + exception.printStackTrace(); return null; } } @@ -195,5 +196,6 @@ public class UploadFileValidationTest { return sum; } +*/ } diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VSPCommon.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/utils/VSPCommon.java index 4eaba77f2b..6bfe9e5eac 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VSPCommon.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/utils/VSPCommon.java @@ -1,12 +1,34 @@ -package org.openecomp.sdc.vendorsoftwareproduct; +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.openecomp.sdc.vendorsoftwareproduct.utils; + +import org.openecomp.core.utilities.file.FileUtils; import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; - import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.core.utilities.file.FileUtils; -import java.io.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -69,8 +91,8 @@ public class VSPCommon { byte[] data = FileUtils.toByteArray(is); zos.write(data); zos.closeEntry(); - } catch (IOException e) { - e.printStackTrace(); + } catch (IOException exception) { + exception.printStackTrace(); } } } diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ZipFileUtils.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ZipFileUtils.java new file mode 100644 index 0000000000..12324ed777 --- /dev/null +++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ZipFileUtils.java @@ -0,0 +1,51 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorsoftwareproduct.utils; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.zip.ZipOutputStream; + +/** + * @author Avrahamg + * @since November 08, 2016 + */ +public class ZipFileUtils { + public InputStream getZipInputStream(String name) { + URL url = getClass().getResource(name); + File templateDir = new File(url.getFile()); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ZipOutputStream zos = new ZipOutputStream(baos); + + VSPCommon.zipDir(templateDir, "", zos, true); + try { + zos.close(); + } catch (IOException exception) { + exception.printStackTrace(); + } + return new ByteArrayInputStream(baos.toByteArray()); + } +} |