1 package org.openecomp.sdc.vendorsoftwareproduct.upload.validation;
3 import org.openecomp.sdc.common.errors.CoreException;
4 import org.openecomp.sdc.common.utils.AsdcCommon;
5 import org.openecomp.sdc.datatypes.error.ErrorMessage;
7 import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
8 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
9 import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl;
10 import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
11 import org.openecomp.core.util.UniqueValueUtil;
12 import org.openecomp.core.utilities.CommonMethods;
13 import org.openecomp.core.validation.errors.Messages;
14 import org.openecomp.core.validation.types.MessageContainerUtil;
15 import org.apache.commons.collections4.MapUtils;
16 import org.testng.Assert;
17 import org.testng.annotations.BeforeTest;
18 import org.testng.annotations.Test;
22 import java.util.List;
25 public class UploadFileValidationTest {
27 private static final String USER1 = "UploadFileValidationTest";
28 private static final String EMPTY_ZIP_FILE = "/validation/zips/emptyZip.zip";
29 private static final String MISSING_MANIFEST_IN_ZIP_FILE =
30 "/validation/zips/missingManifestInZip.zip";
31 private static final String ZIP_FILE_WITH_FOLDER = "/validation/zips/zipFileWithFolder.zip";
32 private static VendorSoftwareProductManager vendorSoftwareProductManager =
33 new VendorSoftwareProductManagerImpl();
34 private static String vspId;
36 public static org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity createVendorLicenseModel(String name, String desc,
38 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity
39 vendorLicenseModel = new org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity();
40 vendorLicenseModel.setVendorName(name);
41 vendorLicenseModel.setDescription(desc);
42 vendorLicenseModel.setIconRef(icon);
43 return vendorLicenseModel;
48 VspDetails vspDetails = new VspDetails();
49 vspDetails.setVendorName("vspName_" + CommonMethods.nextUuId());
50 vspId = vendorSoftwareProductManager.createNewVsp(vspDetails, USER1).getId();
53 .deleteUniqueValue(org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
54 "VSP_syb_upload_various");
56 .deleteUniqueValue(org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
57 "vsp_syb_upload_no_error");
59 .deleteUniqueValue(org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
64 public void testUploadZipNull() {
65 UploadFileResponse response = vendorSoftwareProductManager.uploadFile(vspId, null, USER1);
66 Assert.assertEquals(response.getErrors().size(), 1);
67 Assert.assertTrue(response.getErrors().containsKey(AsdcCommon.UPLOAD_FILE));
68 Assert.assertEquals(response.getErrors().get(AsdcCommon.UPLOAD_FILE).get(0).getMessage(),
69 Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage());
72 @Test(dependsOnMethods = "testUploadZipNull")
73 public void testUploadEmptyFile() {
74 UploadFileResponse response = vendorSoftwareProductManager
75 .uploadFile(vspId, new ByteArrayInputStream("".getBytes()), USER1);
76 Assert.assertEquals(response.getErrors().size(), 1);
77 Assert.assertTrue(response.getErrors().containsKey(AsdcCommon.UPLOAD_FILE));
78 Assert.assertEquals(response.getErrors().get(AsdcCommon.UPLOAD_FILE).get(0).getMessage(),
79 Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage());
82 @Test(dependsOnMethods = "testUploadEmptyFile")
83 public void testUploadEmptyZip() {
84 UploadFileResponse response =
85 vendorSoftwareProductManager.uploadFile(vspId, getFileInputStream(EMPTY_ZIP_FILE), USER1);
86 Assert.assertEquals(response.getErrors().size(), 1);
87 Assert.assertTrue(response.getErrors().containsKey(AsdcCommon.UPLOAD_FILE));
88 Assert.assertEquals(response.getErrors().get(AsdcCommon.UPLOAD_FILE).get(0).getMessage(),
89 Messages.INVALID_ZIP_FILE.getErrorMessage());
92 @Test(dependsOnMethods = "testUploadEmptyZip")
93 public void testUploadMissingManifestInZip() {
94 UploadFileResponse response = vendorSoftwareProductManager
95 .uploadFile(vspId, getFileInputStream(MISSING_MANIFEST_IN_ZIP_FILE), USER1);
96 Assert.assertEquals(response.getErrors().size(), 1);
97 Assert.assertTrue(response.getErrors().containsKey(AsdcCommon.MANIFEST_NAME));
98 Assert.assertEquals(response.getErrors().get(AsdcCommon.MANIFEST_NAME).get(0).getMessage(),
99 Messages.MANIFEST_NOT_EXIST.getErrorMessage());
102 @Test(dependsOnMethods = "testUploadMissingManifestInZip")
103 public void testUploadZipWithFolder() {
104 UploadFileResponse response = vendorSoftwareProductManager
105 .uploadFile(vspId, getFileInputStream(ZIP_FILE_WITH_FOLDER), USER1);
106 Assert.assertEquals(response.getErrors().size(), 1);
107 Assert.assertTrue(response.getErrors().containsKey(AsdcCommon.UPLOAD_FILE));
108 Assert.assertEquals(response.getErrors().get(AsdcCommon.UPLOAD_FILE).get(0).getMessage(),
109 Messages.ZIP_SHOULD_NOT_CONTAIN_FOLDERS.getErrorMessage());
112 @Test(dependsOnMethods = "testUploadZipWithFolder")
113 public void testUploadVariousZips() {
115 File[] files = getFileList("/validation/zips/various");
117 for (File file : files) {
119 UploadFileResponse response = null;
122 is = new FileInputStream(file);
123 response = vendorSoftwareProductManager.uploadFile(vspId, is, USER1);
125 } catch (FileNotFoundException e) {
126 throw new RuntimeException(e);
127 } catch (CoreException ce) {
128 throw new RuntimeException("failed upload:" + file.getName(), ce);
129 } catch (RuntimeException re) {
131 throw new RuntimeException("failed upload:" + file.getName(), re);
133 System.out.println("zip:" + file.getName() + " Errors:" + calculateNumberOfMessages(
134 MessageContainerUtil.getMessageByLevel(org.openecomp.sdc.datatypes.error.ErrorLevel.ERROR, response.getErrors())) +
135 " Warnings:" + calculateNumberOfMessages(
136 MessageContainerUtil.getMessageByLevel(org.openecomp.sdc.datatypes.error.ErrorLevel.WARNING, response.getErrors())));
141 @Test(dependsOnMethods = "testUploadVariousZips")
142 public void testUploadNoErrorVariousZips() {
145 File[] files = getFileList("/validation/zips/various/noError");
147 for (File file : files) {
150 is = new FileInputStream(file);
151 UploadFileResponse response = vendorSoftwareProductManager.uploadFile(vspId, is, USER1);
152 Map<String, List<ErrorMessage>> errors = response.getErrors();
154 MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(
155 org.openecomp.sdc.datatypes.error.ErrorLevel.ERROR, errors)));
158 } catch (FileNotFoundException e) {
159 throw new RuntimeException(e);
160 } catch (CoreException ce) {
161 Assert.fail("failed upload:" + file.getName() + " exception:" + ce.getMessage());
163 } catch (RuntimeException re) {
164 Assert.fail("failed upload:" + file.getName() + " exception:" + re.getMessage());
170 private InputStream getFileInputStream(String fileName) {
171 URL url = this.getClass().getResource(fileName);
173 return url.openStream();
174 } catch (IOException e) {
180 private File[] getFileList(String dir) {
181 URL url = UploadFileValidationTest.class.getResource(dir);
183 String path = url.getPath();
184 File pathFile = new File(path);
185 return pathFile.listFiles();
190 private int calculateNumberOfMessages(Map<String, List<ErrorMessage>> messages) {
192 for (List<ErrorMessage> errors : messages.values()) {
193 sum += errors.size();