1 package org.openecomp.sdc.vendorsoftwareproduct.impl;
3 import org.mockito.InjectMocks;
4 import org.mockito.Mock;
5 import org.mockito.MockitoAnnotations;
6 import org.openecomp.core.enrichment.types.ArtifactType;
7 import org.openecomp.sdc.common.errors.CoreException;
8 import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
9 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
10 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
11 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus;
12 import org.openecomp.sdc.versioning.dao.types.Version;
13 import org.testng.Assert;
14 import org.testng.annotations.BeforeMethod;
15 import org.testng.annotations.Test;
17 import java.io.IOException;
18 import java.io.InputStream;
20 import java.util.Arrays;
21 import java.util.Optional;
23 import static org.mockito.Matchers.any;
24 import static org.mockito.Matchers.anyObject;
25 import static org.mockito.Mockito.doReturn;
26 import static org.mockito.Mockito.never;
27 import static org.mockito.Mockito.verify;
29 public class MibManagerImplTest {
31 private static final String USER1 = "ComponentsUploadTestUser";
32 private static final String COMPONENT_ID = "COMPONENT_ID";
33 private static final String VSP_ID = "vspId";
34 private static final Version VERSION = new Version(0, 1);
35 private static final String trapFileName = "MMSC.zip";
36 private static final String pollFileName = "MNS OAM FW.zip";
37 private static final String notZipFileName = "notZipFile";
38 private static final String zipWithFoldersFileName = "zipFileWithFolder.zip";
39 private static final String emptyZipFileName = "emptyZip.zip";
40 private static final String ZIP_DIR = "/vspmanager/zips/";
43 private VendorSoftwareProductDao vendorSoftwareProductDaoMock;
45 private MibDao mibDaoMock;
47 private MibManagerImpl mibManager;
50 public void setUp() throws Exception {
51 MockitoAnnotations.initMocks(this);
54 @Test(expectedExceptions = CoreException.class)
55 public void testUploadEmptyZip() {
56 InputStream zis = getFileInputStream(ZIP_DIR + emptyZipFileName);
57 mibManager.upload(zis, emptyZipFileName, VSP_ID, VERSION, COMPONENT_ID,
58 ArtifactType.SNMP_TRAP, USER1);
62 public void testUploadInvalidZip() {
63 URL url = this.getClass().getResource("/notZipFile");
66 .upload(url.openStream(), notZipFileName, VSP_ID, VERSION, COMPONENT_ID,
67 ArtifactType.SNMP_TRAP, USER1);
69 } catch (Exception exception) {
70 Assert.assertEquals(exception.getMessage(), "Invalid zip file");
75 public void testUploadZipWithFolders() {
76 InputStream zis = getFileInputStream(ZIP_DIR + zipWithFoldersFileName);
80 .upload(zis, zipWithFoldersFileName, VSP_ID, VERSION, COMPONENT_ID,
81 ArtifactType.SNMP_TRAP, USER1);
83 } catch (Exception exception) {
84 Assert.assertEquals(exception.getMessage(), "Zip file should not contain folders");
90 public void testListMibFilenames() {
92 new MibEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact1");
93 artifact1.setType(ArtifactType.SNMP_TRAP);
94 artifact1.setArtifactName(trapFileName);
97 new MibEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact2");
98 artifact2.setType(ArtifactType.SNMP_POLL);
99 artifact2.setArtifactName(pollFileName);
101 doReturn(Arrays.asList(artifact1, artifact2))
102 .when(mibDaoMock).list(anyObject());
104 MibUploadStatus mibUploadStatus =
105 mibManager.listFilenames(VSP_ID, VERSION, COMPONENT_ID, USER1);
107 Assert.assertEquals(mibUploadStatus.getSnmpTrap(), trapFileName);
108 Assert.assertEquals(mibUploadStatus.getSnmpPoll(), pollFileName);
111 @Test (expectedExceptions = CoreException.class)
112 public void testDeleteComponentMibWhenNone() {
113 doReturn(Optional.empty()).when(mibDaoMock).getByType(any());
114 mibManager.delete(VSP_ID, VERSION, COMPONENT_ID, ArtifactType.SNMP_POLL, USER1);
116 verify(mibDaoMock, never()).delete(anyObject());
120 public void testDeleteComponentMib() {
121 doReturn(Optional.of(new MibEntity(VSP_ID, VERSION, COMPONENT_ID, "artifactId"))).when
122 (mibDaoMock).getByType(anyObject());
124 mibManager.delete(VSP_ID, VERSION, COMPONENT_ID, ArtifactType.SNMP_POLL, USER1);
126 verify(mibDaoMock).delete(anyObject());
130 private InputStream getFileInputStream(String fileName) {
131 URL url = this.getClass().getResource(fileName);
133 return url.openStream();
134 } catch (IOException exception) {
135 exception.printStackTrace();