summaryrefslogtreecommitdiffstats
path: root/common-be/src/test/java/org
diff options
context:
space:
mode:
authorvasraz <vasyl.razinkov@est.tech>2021-10-08 14:48:08 +0100
committerAndr� Schmid <andre.schmid@est.tech>2021-11-05 20:28:52 +0000
commit707fb6d83819058d5736b2dc38bea3c2d9e07a2d (patch)
treed319572a4514f9bdc86619a53eba22a8c0d0abd0 /common-be/src/test/java/org
parent90ff4221ee13c227cd6b2d4566f785602781f7b0 (diff)
Large csar handling - object store
Change-Id: I4e88bd7bfcc1fdbc93d67da2682f2e873ba243c6 Signed-off-by: Vasyl Razinkov <vasyl.razinkov@est.tech> Issue-ID: SDC-3754
Diffstat (limited to 'common-be/src/test/java/org')
-rw-r--r--common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManagerTest.java120
-rw-r--r--common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageCsarSizeReducerTest.java (renamed from common-be/src/test/java/org/openecomp/sdc/be/csar/storage/CsarSizeReducerTest.java)12
-rw-r--r--common-be/src/test/java/org/openecomp/sdc/be/csar/storage/NoneStorageManagerTest.java78
-rw-r--r--common-be/src/test/java/org/openecomp/sdc/be/csar/storage/PersistentVolumeArtifactStorageManagerTest.java118
4 files changed, 204 insertions, 124 deletions
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManagerTest.java b/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManagerTest.java
new file mode 100644
index 0000000000..41eed0cebb
--- /dev/null
+++ b/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageArtifactStorageManagerTest.java
@@ -0,0 +1,120 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.csar.storage;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+
+import io.minio.BucketExistsArgs;
+import io.minio.MinioClient;
+import java.io.IOException;
+import java.io.InputStream;
+import javax.activation.DataHandler;
+import org.apache.cxf.jaxrs.ext.multipart.Attachment;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.openecomp.sdc.be.csar.storage.MinIoStorageArtifactStorageConfig.Credentials;
+import org.openecomp.sdc.be.csar.storage.MinIoStorageArtifactStorageConfig.EndPoint;
+
+@ExtendWith(MockitoExtension.class)
+class MinIoStorageArtifactStorageManagerTest {
+
+ public static final String VSP_ID = "vsp-id";
+ public static final String VERSION_ID = "version-id";
+ private MinIoStorageArtifactStorageManager testSubject;
+ @Mock
+ private MinioClient minioClient;
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private MinioClient.Builder builderMinio;
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private BucketExistsArgs.Builder builderBucketExistsArgs;
+
+ @BeforeEach
+ void setUp() {
+ MockitoAnnotations.openMocks(this);
+
+ try (MockedStatic<MinioClient> utilities = Mockito.mockStatic(MinioClient.class)) {
+ utilities.when(MinioClient::builder).thenReturn(builderMinio);
+ when(builderMinio
+ .endpoint(anyString(), anyInt(), anyBoolean())
+ .credentials(anyString(), anyString())
+ .build()
+ ).thenReturn(minioClient);
+
+ testSubject = new MinIoStorageArtifactStorageManager(
+ new MinIoStorageArtifactStorageConfig(true, new EndPoint("host", 9000, false), new Credentials("accessKey", "secretKey"), ""));
+ }
+ }
+
+ @Test
+ void testUpload() throws Exception {
+
+ when(builderBucketExistsArgs
+ .bucket(anyString())
+ .build()
+ ).thenReturn(new BucketExistsArgs());
+ when(minioClient.bucketExists(any(BucketExistsArgs.class))).thenReturn(true);
+
+ final Attachment attachment = mockAttachment();
+ final ArtifactInfo result = testSubject.upload(VSP_ID, VERSION_ID, attachment.getDataHandler().getInputStream());
+ Assertions.assertNotNull(result);
+ Assertions.assertTrue(result instanceof MinIoArtifactInfo);
+ Assertions.assertEquals(VSP_ID, ((MinIoArtifactInfo) result).getBucket());
+ Assertions.assertTrue(((MinIoArtifactInfo) result).getObjectName().startsWith(VERSION_ID + "--"));
+ }
+
+ @Test
+ void testPersist() {
+ final ArtifactInfo result = testSubject.persist(VSP_ID, VERSION_ID, new MinIoArtifactInfo(VSP_ID, VERSION_ID));
+ Assertions.assertNotNull(result);
+ Assertions.assertTrue(result instanceof MinIoArtifactInfo);
+ Assertions.assertEquals(VSP_ID, ((MinIoArtifactInfo) result).getBucket());
+ Assertions.assertEquals(VERSION_ID, ((MinIoArtifactInfo) result).getObjectName());
+ }
+
+ @Test
+ void testIsEnabled() {
+ Assertions.assertTrue(testSubject.isEnabled());
+ }
+
+ private Attachment mockAttachment() throws IOException {
+ final Attachment attachment = Mockito.mock(Attachment.class);
+ final DataHandler dataHandler = Mockito.mock(DataHandler.class);
+ final InputStream inputStream = Mockito.mock(InputStream.class);
+ when(dataHandler.getInputStream()).thenReturn(inputStream);
+ when(attachment.getDataHandler()).thenReturn(dataHandler);
+ return attachment;
+ }
+
+}
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/CsarSizeReducerTest.java b/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageCsarSizeReducerTest.java
index e9748f0a16..6515c6fb1e 100644
--- a/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/CsarSizeReducerTest.java
+++ b/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/MinIoStorageCsarSizeReducerTest.java
@@ -42,12 +42,12 @@ import org.mockito.MockitoAnnotations;
import org.openecomp.sdc.common.zip.ZipUtils;
import org.openecomp.sdc.common.zip.exception.ZipException;
-class CsarSizeReducerTest {
+class MinIoStorageCsarSizeReducerTest {
@Mock
private CsarPackageReducerConfiguration csarPackageReducerConfiguration;
@InjectMocks
- private CsarSizeReducer csarSizeReducer;
+ private MinIoStorageCsarSizeReducer minIoStorageCsarSizeReducer;
@BeforeEach
void setUp() {
@@ -55,7 +55,7 @@ class CsarSizeReducerTest {
}
@ParameterizedTest
- @ValueSource(strings = {"dummyToReduce.zip", "dummyToReduce.csar", "dummyToNotReduce.csar"})
+ @ValueSource(strings = {"dummyToReduce-3-files.zip", "dummyToReduce.csar", "dummyToNotReduce.csar", "dummyToReduce-2-files.zip"})
void reduceByPathAndSizeTest(String fileName) throws ZipException {
final var pathToReduce1 = Path.of("Files/images");
final var pathToReduce2 = Path.of("Files/Scripts/my_script.sh");
@@ -68,7 +68,7 @@ class CsarSizeReducerTest {
final Map<String, byte[]> originalCsar = ZipUtils.readZip(csarPath.toFile(), false);
- final byte[] reduce = csarSizeReducer.reduce(csarPath);
+ final byte[] reduce = minIoStorageCsarSizeReducer.reduce(csarPath);
final Map<String, byte[]> reducedCsar = ZipUtils.readZip(reduce, false);
@@ -113,7 +113,7 @@ class CsarSizeReducerTest {
assertArrayEquals("".getBytes(StandardCharsets.UTF_8), reducedCsar.get(originalFilePath),
String.format("File '%s' expected to be reduced to empty string", originalFilePath));
} else {
- if (originalFilePath.endsWith(".csar") && csarSizeReducer.getReduced().get()) {
+ if (originalFilePath.endsWith(".csar") && minIoStorageCsarSizeReducer.getReduced().get()) {
assertNotEquals(originalBytes.length, reducedCsar.get(originalFilePath).length,
String.format("File '%s' expected to be NOT equal", originalFilePath));
} else {
@@ -122,4 +122,4 @@ class CsarSizeReducerTest {
}
}
}
-}
+} \ No newline at end of file
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/NoneStorageManagerTest.java b/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/NoneStorageManagerTest.java
new file mode 100644
index 0000000000..58394b9b76
--- /dev/null
+++ b/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/NoneStorageManagerTest.java
@@ -0,0 +1,78 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.csar.storage;
+
+import java.io.ByteArrayInputStream;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+@ExtendWith(MockitoExtension.class)
+class NoneStorageManagerTest {
+
+ public static final MinIoArtifactInfo UPLOADED_ARTIFACT_INFO = new MinIoArtifactInfo("bucket", "object");
+ private NoneStorageManager testSubject;
+
+ @BeforeEach
+ void setUp() {
+ testSubject = new NoneStorageManager();
+ }
+
+ @Test
+ void testCtor() {
+ Assertions.assertTrue(testSubject instanceof NoneStorageManager);
+ }
+
+ @Test
+ void testPersist() {
+ Assertions.assertThrows(UnsupportedOperationException.class,
+ () -> testSubject.persist("vspId", "versionId", UPLOADED_ARTIFACT_INFO));
+ }
+
+ @Test
+ void testUpload() {
+ Assertions.assertThrows(UnsupportedOperationException.class,
+ () -> testSubject.upload("vspId", "versionId", new ByteArrayInputStream(new byte[0])));
+ }
+
+ @Test
+ void testGetStorageConfiguration() {
+ Assertions.assertThrows(UnsupportedOperationException.class, () -> testSubject.getStorageConfiguration());
+ }
+
+ @Test
+ void testGet() {
+ Assertions.assertThrows(UnsupportedOperationException.class, () -> testSubject.get(UPLOADED_ARTIFACT_INFO));
+ }
+
+ @Test
+ void testDelete() {
+ Assertions.assertThrows(UnsupportedOperationException.class, () -> testSubject.delete(UPLOADED_ARTIFACT_INFO));
+ }
+
+ @Test
+ void testIsEnabled() {
+ Assertions.assertFalse(testSubject.isEnabled());
+ }
+
+}
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/PersistentVolumeArtifactStorageManagerTest.java b/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/PersistentVolumeArtifactStorageManagerTest.java
deleted file mode 100644
index ab8c11c7c1..0000000000
--- a/common-be/src/test/java/org/openecomp/sdc/be/csar/storage/PersistentVolumeArtifactStorageManagerTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.be.csar.storage;
-
-import static org.junit.jupiter.api.Assertions.fail;
-import static org.mockito.Mockito.when;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Objects;
-import javax.activation.DataHandler;
-import org.apache.commons.io.IOUtils;
-import org.apache.cxf.jaxrs.ext.multipart.Attachment;
-import org.apache.cxf.jaxrs.ext.multipart.ContentDisposition;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
-import org.junit.jupiter.api.Order;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.TestMethodOrder;
-import org.mockito.ArgumentMatchers;
-import org.mockito.Mockito;
-
-@TestMethodOrder(OrderAnnotation.class)
-class PersistentVolumeArtifactStorageManagerTest {
-
- private static final String SRC_TEST_RESOURCES = "src/test/resources/";
-
- private PersistentVolumeArtifactStorageManager testSubject;
-
- @BeforeEach
- void setUp() {
- testSubject = new PersistentVolumeArtifactStorageManager(new PersistentVolumeArtifactStorageConfig(true, Path.of(SRC_TEST_RESOURCES)));
- }
-
- @AfterAll
- static void tearDown() throws IOException {
- Files.move(Path.of(SRC_TEST_RESOURCES + "vspId/versionId/versionId"),
- Path.of(SRC_TEST_RESOURCES + "persistentVolumeArtifactStorageManager/dummy.csar"));
- Files.list(Path.of("src/test/resources/vspId/versionId/")).forEach(path -> {
- try {
- Files.deleteIfExists(path);
- } catch (IOException e) {
- e.printStackTrace();
- }
- });
- Files.deleteIfExists(Path.of(SRC_TEST_RESOURCES + "vspId/versionId/"));
- Files.deleteIfExists(Path.of(SRC_TEST_RESOURCES + "vspId/"));
- }
-
- @Test
- @Order(1)
- void testUpload() throws IOException {
- final Attachment attachment = mockAttachment("dummy.csar", this.getClass().getResource("/persistentVolumeArtifactStorageManager/dummy.csar"));
- final ArtifactInfo result = testSubject.upload("vspId", "versionId", attachment.getDataHandler().getInputStream());
- Assertions.assertNotNull(result);
- Assertions.assertNotNull(result.getPath());
- Assertions.assertTrue(result.getPath().startsWith(Path.of(SRC_TEST_RESOURCES + "vspId/versionId/")));
- }
-
- @Test
- @Order(2)
- void testPersist() {
- final ArtifactInfo result = testSubject.persist("vspId", "versionId",
- new PersistentStorageArtifactInfo(Path.of(SRC_TEST_RESOURCES + "persistentVolumeArtifactStorageManager/dummy.csar")));
- Assertions.assertNotNull(result);
- Assertions.assertNotNull(result.getPath());
- Assertions.assertTrue(result.getPath().startsWith(Path.of(SRC_TEST_RESOURCES + "vspId/versionId/")));
- }
-
- @Test
- void testIsEnabled() {
- Assertions.assertTrue(testSubject.isEnabled());
- }
-
- private Attachment mockAttachment(final String fileName, final URL fileToUpload) throws IOException {
- final Attachment attachment = Mockito.mock(Attachment.class);
- when(attachment.getContentDisposition()).thenReturn(new ContentDisposition("test"));
- final DataHandler dataHandler = Mockito.mock(DataHandler.class);
- when(dataHandler.getName()).thenReturn(fileName);
- final InputStream inputStream = Mockito.mock(InputStream.class);
- when(dataHandler.getInputStream()).thenReturn(inputStream);
- when(attachment.getDataHandler()).thenReturn(dataHandler);
- byte[] bytes = "upload package Test".getBytes();
- if (Objects.nonNull(fileToUpload)) {
- try {
- bytes = IOUtils.toByteArray(fileToUpload);
- } catch (final IOException e) {
- fail("Not able to convert file to byte array");
- }
- }
- when(attachment.getObject(ArgumentMatchers.any())).thenReturn(bytes);
- return attachment;
- }
-
-}