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.MonitoringUploadType;
7 import org.openecomp.sdc.common.errors.CoreException;
8 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
9 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
10 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MonitoringUploadStatus;
11 import org.openecomp.sdc.versioning.dao.types.Version;
12 import org.testng.Assert;
13 import org.testng.annotations.BeforeMethod;
14 import org.testng.annotations.Test;
16 import java.io.IOException;
17 import java.io.InputStream;
19 import java.util.Arrays;
20 import java.util.Optional;
22 import static org.mockito.Matchers.any;
23 import static org.mockito.Matchers.anyObject;
24 import static org.mockito.Mockito.doReturn;
25 import static org.mockito.Mockito.never;
26 import static org.mockito.Mockito.verify;
28 public class MonitoringUploadsManagerImplTest {
30 private static final String USER1 = "ComponentsUploadTestUser";
31 private static final String COMPONENT_ID = "COMPONENT_ID";
32 private static final String VSP_ID = "vspId";
33 private static final Version VERSION = new Version(0, 1);
34 private static final String trapFileName = "MMSC.zip";
35 private static final String pollFileName = "MNS OAM FW.zip";
36 private static final String vesFileName = "vesTest-yml_only.zip";
37 private static final String invalidVesFileName = "invalid_ves_file.zip";
38 private static final String notZipFileName = "notZipFile";
39 private static final String zipWithFoldersFileName = "zipFileWithFolder.zip";
40 private static final String emptyZipFileName = "emptyZip.zip";
41 private static final String ZIP_DIR = "/vspmanager/zips/";
44 private ComponentArtifactDao componentArtifactDaoMock;
46 private MonitoringUploadsManagerImpl moitoringUploadsManager;
49 public void setUp() throws Exception {
50 MockitoAnnotations.initMocks(this);
53 @Test(expectedExceptions = CoreException.class)
54 public void testUploadEmptyZip() {
55 InputStream zis = getFileInputStream(ZIP_DIR + emptyZipFileName);
56 moitoringUploadsManager.upload(zis, emptyZipFileName, VSP_ID, VERSION, COMPONENT_ID,
57 MonitoringUploadType.SNMP_TRAP, USER1);
61 public void testUploadInvalidZip() {
62 URL url = this.getClass().getResource("/notZipFile");
64 moitoringUploadsManager
65 .upload(url.openStream(), notZipFileName, VSP_ID, VERSION, COMPONENT_ID,
66 MonitoringUploadType.VES_EVENTS, USER1);
68 } catch (Exception exception) {
69 Assert.assertEquals(exception.getMessage(), "Invalid zip file");
74 public void testUploadZipWithFolders() {
75 InputStream zis = getFileInputStream(ZIP_DIR + zipWithFoldersFileName);
78 moitoringUploadsManager
79 .upload(zis, zipWithFoldersFileName, VSP_ID, VERSION, COMPONENT_ID,
80 MonitoringUploadType.SNMP_TRAP, USER1);
82 } catch (Exception exception) {
83 Assert.assertEquals(exception.getMessage(), "Zip file should not contain folders");
88 public void testUploadVEsEventZipWithNonYamlFiles() {
89 InputStream zis = getFileInputStream(ZIP_DIR + invalidVesFileName);
92 moitoringUploadsManager
93 .upload(zis, invalidVesFileName, VSP_ID, VERSION, COMPONENT_ID,
94 MonitoringUploadType.VES_EVENTS, USER1);
96 } catch (Exception exception) {
97 Assert.assertEquals(exception.getMessage(),
98 "Wrong VES EVENT Artifact was uploaded - all files contained in Artifact must be YAML " +
99 "files (using .yaml/.yml extensions)");
105 public void testListMonitoringFilenames() {
106 ComponentMonitoringUploadEntity artifact1 =
107 new ComponentMonitoringUploadEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact1");
108 artifact1.setType(MonitoringUploadType.SNMP_TRAP);
109 artifact1.setArtifactName(trapFileName);
111 ComponentMonitoringUploadEntity artifact2 =
112 new ComponentMonitoringUploadEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact2");
113 artifact2.setType(MonitoringUploadType.SNMP_POLL);
114 artifact2.setArtifactName(pollFileName);
116 ComponentMonitoringUploadEntity artifact3 =
117 new ComponentMonitoringUploadEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact3");
118 artifact3.setType(MonitoringUploadType.VES_EVENTS);
119 artifact3.setArtifactName(vesFileName);
121 doReturn(Arrays.asList(artifact1, artifact2, artifact3))
122 .when(componentArtifactDaoMock).list(anyObject());
124 MonitoringUploadStatus monitoringUploadStatus =
125 moitoringUploadsManager.listFilenames(VSP_ID, VERSION, COMPONENT_ID, USER1);
127 Assert.assertEquals(monitoringUploadStatus.getSnmpTrap(), trapFileName);
128 Assert.assertEquals(monitoringUploadStatus.getSnmpPoll(), pollFileName);
129 Assert.assertEquals(monitoringUploadStatus.getVesEvent(), vesFileName);
132 @Test (expectedExceptions = CoreException.class)
133 public void testDeleteComponentMibWhenNone() {
134 doReturn(Optional.empty()).when(componentArtifactDaoMock).getByType(any());
135 moitoringUploadsManager
136 .delete(VSP_ID, VERSION, COMPONENT_ID, MonitoringUploadType.SNMP_POLL, USER1);
138 verify(componentArtifactDaoMock, never()).delete(anyObject());
142 public void testDeleteComponentMonitoringUpload() {
144 .of(new ComponentMonitoringUploadEntity(VSP_ID, VERSION, COMPONENT_ID, "artifactId")))
146 (componentArtifactDaoMock).getByType(anyObject());
148 moitoringUploadsManager
149 .delete(VSP_ID, VERSION, COMPONENT_ID, MonitoringUploadType.SNMP_POLL, USER1);
151 verify(componentArtifactDaoMock).delete(anyObject());
155 private InputStream getFileInputStream(String fileName) {
156 URL url = this.getClass().getResource(fileName);
158 return url.openStream();
159 } catch (IOException exception) {
160 exception.printStackTrace();