aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/validation/UploadFileValidationTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/validation/UploadFileValidationTest.java')
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/validation/UploadFileValidationTest.java199
1 files changed, 199 insertions, 0 deletions
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
new file mode 100644
index 0000000000..3ec8cb2e40
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/validation/UploadFileValidationTest.java
@@ -0,0 +1,199 @@
+package org.openecomp.sdc.vendorsoftwareproduct.upload.validation;
+
+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;
+
+public class UploadFileValidationTest {
+
+ private static final String USER1 = "UploadFileValidationTest";
+ private static final String EMPTY_ZIP_FILE = "/validation/zips/emptyZip.zip";
+ private static final String MISSING_MANIFEST_IN_ZIP_FILE =
+ "/validation/zips/missingManifestInZip.zip";
+ private static final String ZIP_FILE_WITH_FOLDER = "/validation/zips/zipFileWithFolder.zip";
+ private static VendorSoftwareProductManager vendorSoftwareProductManager =
+ 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();
+ vendorLicenseModel.setVendorName(name);
+ vendorLicenseModel.setDescription(desc);
+ vendorLicenseModel.setIconRef(icon);
+ return vendorLicenseModel;
+ }
+
+ @BeforeTest
+ private void init() {
+ VspDetails vspDetails = new VspDetails();
+ vspDetails.setVendorName("vspName_" + CommonMethods.nextUuId());
+ vspId = vendorSoftwareProductManager.createNewVsp(vspDetails, USER1).getId();
+
+ UniqueValueUtil
+ .deleteUniqueValue(org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
+ "VSP_syb_upload_various");
+ UniqueValueUtil
+ .deleteUniqueValue(org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
+ "vsp_syb_upload_no_error");
+ UniqueValueUtil
+ .deleteUniqueValue(org.openecomp.sdc.vendorsoftwareproduct.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());
+ }
+
+ @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(),
+ 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());
+ }
+
+ @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());
+ }
+
+ @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());
+ }
+
+ @Test(dependsOnMethods = "testUploadZipWithFolder")
+ public void testUploadVariousZips() {
+
+ File[] files = getFileList("/validation/zips/various");
+ InputStream is;
+ for (File file : files) {
+ if (file.isFile()) {
+ UploadFileResponse response = null;
+ try {
+
+ is = new FileInputStream(file);
+ response = vendorSoftwareProductManager.uploadFile(vspId, is, USER1);
+
+ } catch (FileNotFoundException e) {
+ throw new RuntimeException(e);
+ } catch (CoreException ce) {
+ throw new RuntimeException("failed upload:" + file.getName(), ce);
+ } 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())) +
+ " Warnings:" + calculateNumberOfMessages(
+ MessageContainerUtil.getMessageByLevel(org.openecomp.sdc.datatypes.error.ErrorLevel.WARNING, response.getErrors())));
+ }
+ }
+ }
+
+ @Test(dependsOnMethods = "testUploadVariousZips")
+ public void testUploadNoErrorVariousZips() {
+
+
+ File[] files = getFileList("/validation/zips/various/noError");
+ InputStream is;
+ for (File file : files) {
+ if (file.isFile()) {
+ try {
+ is = new FileInputStream(file);
+ UploadFileResponse response = vendorSoftwareProductManager.uploadFile(vspId, is, USER1);
+ Map<String, List<ErrorMessage>> errors = response.getErrors();
+ Assert.assertTrue(
+ MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(
+ org.openecomp.sdc.datatypes.error.ErrorLevel.ERROR, errors)));
+
+
+ } catch (FileNotFoundException e) {
+ throw new RuntimeException(e);
+ } catch (CoreException ce) {
+ Assert.fail("failed upload:" + file.getName() + " exception:" + ce.getMessage());
+
+ } catch (RuntimeException re) {
+ Assert.fail("failed upload:" + file.getName() + " exception:" + re.getMessage());
+ }
+ }
+ }
+ }
+
+ private InputStream getFileInputStream(String fileName) {
+ URL url = this.getClass().getResource(fileName);
+ try {
+ return url.openStream();
+ } catch (IOException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ private File[] getFileList(String dir) {
+ URL url = UploadFileValidationTest.class.getResource(dir);
+
+ String path = url.getPath();
+ File pathFile = new File(path);
+ return pathFile.listFiles();
+
+
+ }
+
+ private int calculateNumberOfMessages(Map<String, List<ErrorMessage>> messages) {
+ int sum = 0;
+ for (List<ErrorMessage> errors : messages.values()) {
+ sum += errors.size();
+ }
+ return sum;
+ }
+
+
+}