summaryrefslogtreecommitdiffstats
path: root/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java')
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/controllers/OrchestrationTemplateCandidateUploadManagerControllerImplTest.java92
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/mapping/VspUploadStatusRecordMapperTest.java59
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImplTest.java23
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateUploadManagerImplTest.java312
4 files changed, 481 insertions, 5 deletions
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/controllers/OrchestrationTemplateCandidateUploadManagerControllerImplTest.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/controllers/OrchestrationTemplateCandidateUploadManagerControllerImplTest.java
new file mode 100644
index 0000000000..db66f91473
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/controllers/OrchestrationTemplateCandidateUploadManagerControllerImplTest.java
@@ -0,0 +1,92 @@
+/*
+ * -
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 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.sdcrests.vsp.rest.controllers;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.when;
+
+import java.util.Date;
+import java.util.Optional;
+import java.util.UUID;
+import javax.ws.rs.core.Response;
+import org.apache.http.HttpStatus;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspUploadStatus;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspUploadStatusDto;
+import org.openecomp.sdcrests.vsp.rest.services.OrchestrationTemplateCandidateUploadManager;
+
+class OrchestrationTemplateCandidateUploadManagerControllerImplTest {
+
+ @Mock
+ private OrchestrationTemplateCandidateUploadManager orchestrationTemplateCandidateUploadManager;
+
+ @InjectMocks
+ private OrchestrationTemplateCandidateUploadManagerControllerImpl packageUploadManagerControllerImpl;
+
+ @BeforeEach
+ void setUp() {
+ MockitoAnnotations.openMocks(this);
+ }
+
+ @Test
+ void getLatestSuccessTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final String username = "username";
+ final VspUploadStatusDto vspUploadStatusDto = buildDefaultVspUploadStatus(vspId, vspVersionId);
+ //when
+ when(orchestrationTemplateCandidateUploadManager.findLatestStatus(vspId, vspVersionId, username)).thenReturn(Optional.of(vspUploadStatusDto));
+
+ final Response response = packageUploadManagerControllerImpl.getLatestStatus(vspId, vspVersionId, username);
+ //then
+ assertEquals(HttpStatus.SC_OK, response.getStatus());
+ final Object actualEntity = response.getEntity();
+ assertTrue(actualEntity instanceof VspUploadStatusDto);
+ assertEquals(vspUploadStatusDto, actualEntity);
+ }
+
+ private VspUploadStatusDto buildDefaultVspUploadStatus(final String vspId, final String vspVersionId) {
+ final var vspUploadStatusDto = new VspUploadStatusDto();
+ vspUploadStatusDto.setStatus(VspUploadStatus.UPLOADING);
+ vspUploadStatusDto.setLockId(UUID.randomUUID());
+ vspUploadStatusDto.setVspId(vspId);
+ vspUploadStatusDto.setVspVersionId(vspVersionId);
+ vspUploadStatusDto.setCreated(new Date());
+ vspUploadStatusDto.setComplete(false);
+ return vspUploadStatusDto;
+ }
+
+ @Test
+ void buildGetUrlSuccessTest() {
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final String actualGetUrl = OrchestrationTemplateCandidateUploadManagerControllerImpl.buildGetUrl(vspId, vspVersionId);
+ assertEquals("/v1.0/vendor-software-products/vspId/versions/vspVersionId/orchestration-template-candidate/upload", actualGetUrl);
+ }
+
+} \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/mapping/VspUploadStatusRecordMapperTest.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/mapping/VspUploadStatusRecordMapperTest.java
new file mode 100644
index 0000000000..9bba87b38e
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/mapping/VspUploadStatusRecordMapperTest.java
@@ -0,0 +1,59 @@
+/*
+ * -
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 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.sdcrests.vsp.rest.mapping;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.Date;
+import java.util.UUID;
+import org.junit.jupiter.api.Test;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspUploadStatusRecord;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspUploadStatus;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspUploadStatusDto;
+
+class VspUploadStatusRecordMapperTest {
+
+ @Test
+ void fullMappingTest() {
+ //given
+ final VspUploadStatusRecordMapper vspUploadStatusRecordMapper = new VspUploadStatusRecordMapper();
+ final var vspUploadStatus = new VspUploadStatusRecord();
+ vspUploadStatus.setVspId("vspId");
+ vspUploadStatus.setVspVersionId("vspVersionId");
+ vspUploadStatus.setStatus(VspUploadStatus.UPLOADING);
+ vspUploadStatus.setLockId(UUID.randomUUID());
+ vspUploadStatus.setIsComplete(true);
+ vspUploadStatus.setCreated(new Date());
+ vspUploadStatus.setUpdated(new Date());
+ final var vspUploadStatusDto = new VspUploadStatusDto();
+ //when
+ vspUploadStatusRecordMapper.doMapping(vspUploadStatus, vspUploadStatusDto);
+ //then
+ assertEquals(vspUploadStatus.getVspId(), vspUploadStatusDto.getVspId());
+ assertEquals(vspUploadStatus.getVspVersionId(), vspUploadStatusDto.getVspVersionId());
+ assertEquals(vspUploadStatus.getStatus(), vspUploadStatusDto.getStatus());
+ assertEquals(vspUploadStatus.getLockId(), vspUploadStatusDto.getLockId());
+ assertEquals(vspUploadStatus.getIsComplete(), vspUploadStatusDto.isComplete());
+ assertEquals(vspUploadStatus.getCreated(), vspUploadStatusDto.getCreated());
+ assertEquals(vspUploadStatus.getUpdated(), vspUploadStatusDto.getUpdated());
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImplTest.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImplTest.java
index 2d2c30865a..6e0231aaf7 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImplTest.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImplTest.java
@@ -28,7 +28,7 @@ import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
import java.io.IOException;
@@ -76,6 +76,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.Module;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.FileDataStructureDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.OrchestrationTemplateActionResponseDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.UploadFileResponseDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspUploadStatusDto;
class OrchestrationTemplateCandidateImplTest {
@@ -94,6 +95,8 @@ class OrchestrationTemplateCandidateImplTest {
private ArtifactStorageManager artifactStorageManager;
@Mock
private PackageSizeReducer packageSizeReducer;
+ @Mock
+ private OrchestrationTemplateCandidateUploadManager orchestrationTemplateCandidateUploadManager;
@InjectMocks
private OrchestrationTemplateCandidateImpl orchestrationTemplateCandidate;
@@ -146,15 +149,21 @@ class OrchestrationTemplateCandidateImplTest {
@Test
void uploadSignedTest() throws IOException {
+ final String vspId = "vspId";
+ final String versionId = "versionId";
+ when(orchestrationTemplateCandidateUploadManager.putUploadInProgress(vspId, versionId, user)).thenReturn(new VspUploadStatusDto());
Response response = orchestrationTemplateCandidate
- .upload("1", "1", mockAttachment("filename.zip", this.getClass().getResource("/files/sample-signed.zip")), user);
+ .upload(vspId, versionId, mockAttachment("filename.zip", this.getClass().getResource("/files/sample-signed.zip")), user);
assertEquals(Status.OK.getStatusCode(), response.getStatus());
assertTrue(((UploadFileResponseDto) response.getEntity()).getErrors().isEmpty());
}
@Test
void uploadNotSignedTest() throws IOException {
- Response response = orchestrationTemplateCandidate.upload("1", "1",
+ final String vspId = "vspId";
+ final String versionId = "versionId";
+ when(orchestrationTemplateCandidateUploadManager.putUploadInProgress(vspId, versionId, user)).thenReturn(new VspUploadStatusDto());
+ Response response = orchestrationTemplateCandidate.upload(vspId, versionId,
mockAttachment("filename.csar", this.getClass().getResource("/files/sample-not-signed.csar")), user);
assertEquals(Status.OK.getStatusCode(), response.getStatus());
assertTrue(((UploadFileResponseDto) response.getEntity()).getErrors().isEmpty());
@@ -167,11 +176,15 @@ class OrchestrationTemplateCandidateImplTest {
new MinIoStorageArtifactStorageConfig(true, new EndPoint("host", 9000, false), new Credentials("accessKey", "secretKey"), "tempPath"));
final Path path = Path.of("src/test/resources/files/sample-not-signed.csar");
- when(artifactStorageManager.upload(anyString(), anyString(), any())).thenReturn(new MinIoArtifactInfo("vspId", "name"));
+ final String vspId = "vspId";
+ final String versionId = "versionId";
+ when(artifactStorageManager.upload(eq(vspId), eq(versionId), any())).thenReturn(new MinIoArtifactInfo("vspId", "name"));
final byte[] bytes = Files.readAllBytes(path);
when(packageSizeReducer.reduce(any())).thenReturn(bytes);
- Response response = orchestrationTemplateCandidate.upload("1", "1",
+ when(orchestrationTemplateCandidateUploadManager.putUploadInProgress(vspId, versionId, user)).thenReturn(new VspUploadStatusDto());
+
+ Response response = orchestrationTemplateCandidate.upload(vspId, versionId,
mockAttachment("filename.csar", this.getClass().getResource("/files/sample-not-signed.csar")), user);
assertEquals(Status.OK.getStatusCode(), response.getStatus());
assertTrue(((UploadFileResponseDto) response.getEntity()).getErrors().isEmpty());
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateUploadManagerImplTest.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateUploadManagerImplTest.java
new file mode 100644
index 0000000000..9a7629f563
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateUploadManagerImplTest.java
@@ -0,0 +1,312 @@
+/*
+ * -
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 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.sdcrests.vsp.rest.services;
+
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.when;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VspUploadStatusRecordDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspUploadStatus;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspUploadStatusRecord;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspUploadStatusDto;
+import org.openecomp.sdcrests.vsp.rest.exception.OrchestrationTemplateCandidateUploadManagerExceptionSupplier;
+
+class OrchestrationTemplateCandidateUploadManagerImplTest {
+
+ @Mock
+ private VspUploadStatusRecordDao vspUploadStatusRecordDao;
+ @Mock
+ private VendorSoftwareProductManager vendorSoftwareProductManager;
+ @InjectMocks
+ private OrchestrationTemplateCandidateUploadManagerImpl packageUploadManagerImpl;
+
+ @BeforeEach
+ void setUp() {
+ MockitoAnnotations.openMocks(this);
+ }
+
+ @Test
+ void startUploadSuccessTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final String username = "username";
+ when(vendorSoftwareProductManager.getVsp(vspId, new Version(vspVersionId))).thenReturn(new VspDetails());
+ //when
+ final VspUploadStatusDto vspUploadStatusDto = packageUploadManagerImpl.putUploadInProgress(vspId, vspVersionId, username);
+ //then
+ assertEquals(vspId, vspUploadStatusDto.getVspId());
+ assertEquals(vspVersionId, vspUploadStatusDto.getVspVersionId());
+ assertEquals(VspUploadStatus.UPLOADING, vspUploadStatusDto.getStatus());
+ assertFalse(vspUploadStatusDto.isComplete());
+ assertNotNull(vspUploadStatusDto.getLockId());
+ assertNotNull(vspUploadStatusDto.getCreated());
+ }
+
+ @Test
+ void startUpload_uploadAlreadyInProgressTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final String username = "username";
+ when(vspUploadStatusRecordDao.findAllInProgress(vspId, vspVersionId)).thenReturn(List.of(new VspUploadStatusRecord()));
+ when(vendorSoftwareProductManager.getVsp(vspId, new Version(vspVersionId))).thenReturn(new VspDetails());
+ //when/then
+ final CoreException actualCoreException =
+ assertThrows(CoreException.class, () -> packageUploadManagerImpl.putUploadInProgress(vspId, vspVersionId, username));
+ final CoreException expectedCoreException = OrchestrationTemplateCandidateUploadManagerExceptionSupplier.vspUploadAlreadyInProgress(vspId,
+ vspVersionId).get();
+ assertEquals(expectedCoreException.code().id(), actualCoreException.code().id());
+ assertEquals(expectedCoreException.code().message(), actualCoreException.code().message());
+ }
+
+ @Test
+ void startUpload_vspNotFoundTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final String username = "username";
+ //when/then
+ final CoreException actualCoreException =
+ assertThrows(CoreException.class, () -> packageUploadManagerImpl.putUploadInProgress(vspId, vspVersionId, username));
+ final CoreException expectedCoreException = OrchestrationTemplateCandidateUploadManagerExceptionSupplier.vspNotFound(vspId, vspVersionId)
+ .get();
+ assertEquals(expectedCoreException.code().id(), actualCoreException.code().id());
+ assertEquals(expectedCoreException.code().message(), actualCoreException.code().message());
+ }
+
+ @Test
+ void startUpload_createLockErrorTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final String username = "username";
+ //when/then
+ when(vendorSoftwareProductManager.getVsp(vspId, new Version(vspVersionId))).thenReturn(new VspDetails());
+ doThrow(new RuntimeException()).when(vspUploadStatusRecordDao).create(any(VspUploadStatusRecord.class));
+ final CoreException actualCoreException =
+ assertThrows(CoreException.class, () -> packageUploadManagerImpl.putUploadInProgress(vspId, vspVersionId, username));
+ final CoreException expectedCoreException =
+ OrchestrationTemplateCandidateUploadManagerExceptionSupplier.couldNotCreateLock(vspId, vspVersionId, new RuntimeException()).get();
+ assertEquals(expectedCoreException.code().id(), actualCoreException.code().id());
+ assertEquals(expectedCoreException.code().message(), actualCoreException.code().message());
+ }
+
+ @Test
+ void finishUploadSuccessTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final UUID lockId = UUID.randomUUID();
+ final String username = "username";
+ final VspUploadStatusRecord vspUploadStatusRecord = new VspUploadStatusRecord();
+ vspUploadStatusRecord.setVspId(vspId);
+ vspUploadStatusRecord.setVspVersionId(vspVersionId);
+ vspUploadStatusRecord.setLockId(lockId);
+ vspUploadStatusRecord.setStatus(VspUploadStatus.UPLOADING);
+ vspUploadStatusRecord.setCreated(new Date());
+ when(vspUploadStatusRecordDao.findByVspIdAndVersionIdAndLockId(vspId, vspVersionId, lockId))
+ .thenReturn(Optional.of(vspUploadStatusRecord));
+ //when
+ final VspUploadStatusDto actualVspUploadStatus = packageUploadManagerImpl
+ .putUploadAsFinished(vspId, vspVersionId, lockId, VspUploadStatus.SUCCESS, username);
+ //then
+ assertEquals(vspId, actualVspUploadStatus.getVspId());
+ assertEquals(vspVersionId, actualVspUploadStatus.getVspVersionId());
+ assertEquals(VspUploadStatus.SUCCESS, actualVspUploadStatus.getStatus());
+ assertEquals(vspUploadStatusRecord.getLockId(), actualVspUploadStatus.getLockId());
+ assertEquals(vspUploadStatusRecord.getCreated(), actualVspUploadStatus.getCreated());
+ assertNotNull(actualVspUploadStatus.getUpdated());
+ assertTrue(actualVspUploadStatus.isComplete());
+ }
+
+ @Test
+ void finishUploadIllegalStatusTest() {
+ final UUID lockId = UUID.randomUUID();
+ IllegalArgumentException actualException = assertThrows(IllegalArgumentException.class,
+ () -> packageUploadManagerImpl.putUploadAsFinished("vspId", "vspVersionId", lockId, VspUploadStatus.UPLOADING, "username"));
+ IllegalArgumentException expectedException = OrchestrationTemplateCandidateUploadManagerExceptionSupplier.invalidCompleteStatus(
+ VspUploadStatus.UPLOADING).get();
+ assertEquals(expectedException.getMessage(), actualException.getMessage());
+
+ actualException = assertThrows(IllegalArgumentException.class,
+ () -> packageUploadManagerImpl
+ .putUploadAsFinished("vspId", "vspVersionId", lockId, VspUploadStatus.PROCESSING, "username")
+ );
+ expectedException = OrchestrationTemplateCandidateUploadManagerExceptionSupplier.invalidCompleteStatus(
+ VspUploadStatus.PROCESSING).get();
+ assertEquals(expectedException.getMessage(), actualException.getMessage());
+ }
+
+ @Test
+ void finishUploadCouldNotFindLockTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final UUID lockId = UUID.randomUUID();
+ final String username = "username";
+ final VspUploadStatusRecord vspUploadStatusRecord = new VspUploadStatusRecord();
+ vspUploadStatusRecord.setVspId(vspId);
+ vspUploadStatusRecord.setVspVersionId(vspVersionId);
+ vspUploadStatusRecord.setLockId(lockId);
+ vspUploadStatusRecord.setStatus(VspUploadStatus.UPLOADING);
+ vspUploadStatusRecord.setCreated(new Date());
+ when(vspUploadStatusRecordDao.findByVspIdAndVersionIdAndLockId(vspId, vspVersionId, lockId))
+ .thenReturn(Optional.empty());
+ //when/then
+ final CoreException actualException = assertThrows(CoreException.class,
+ () -> packageUploadManagerImpl.putUploadAsFinished(vspId, vspVersionId, lockId, VspUploadStatus.SUCCESS, username));
+
+ final CoreException expectedException =
+ OrchestrationTemplateCandidateUploadManagerExceptionSupplier.couldNotFindLock(lockId, vspId, vspVersionId).get();
+ assertEquals(expectedException.getMessage(), actualException.getMessage());
+ }
+
+ @Test
+ void finishUpload_uploadAlreadyFinishedTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final UUID lockId = UUID.randomUUID();
+ final String username = "username";
+ final VspUploadStatusRecord vspUploadStatusRecord = new VspUploadStatusRecord();
+ vspUploadStatusRecord.setVspId(vspId);
+ vspUploadStatusRecord.setVspVersionId(vspVersionId);
+ vspUploadStatusRecord.setLockId(lockId);
+ vspUploadStatusRecord.setIsComplete(true);
+ when(vspUploadStatusRecordDao.findByVspIdAndVersionIdAndLockId(vspId, vspVersionId, lockId))
+ .thenReturn(Optional.of(vspUploadStatusRecord));
+ //when/then
+ final CoreException actualException = assertThrows(CoreException.class, () -> packageUploadManagerImpl
+ .putUploadAsFinished(vspId, vspVersionId, lockId, VspUploadStatus.SUCCESS, username));
+
+ final CoreException expectedException =
+ OrchestrationTemplateCandidateUploadManagerExceptionSupplier.uploadAlreadyFinished(lockId, vspId, vspVersionId).get();
+ assertEquals(expectedException.getMessage(), actualException.getMessage());
+ }
+
+ @Test
+ void finishUploadCouldNotUpdateLockTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final UUID lockId = UUID.randomUUID();
+ final String username = "username";
+ final VspUploadStatusRecord vspUploadStatusRecord = new VspUploadStatusRecord();
+ vspUploadStatusRecord.setVspId(vspId);
+ vspUploadStatusRecord.setVspVersionId(vspVersionId);
+ vspUploadStatusRecord.setLockId(lockId);
+ vspUploadStatusRecord.setStatus(VspUploadStatus.UPLOADING);
+ vspUploadStatusRecord.setCreated(new Date());
+ when(vspUploadStatusRecordDao.findByVspIdAndVersionIdAndLockId(vspId, vspVersionId, lockId))
+ .thenReturn(Optional.of(vspUploadStatusRecord));
+ doThrow(new RuntimeException()).when(vspUploadStatusRecordDao).update(vspUploadStatusRecord);
+ //when/then
+ final CoreException actualException = assertThrows(CoreException.class, () -> packageUploadManagerImpl
+ .putUploadAsFinished(vspId, vspVersionId, lockId, VspUploadStatus.SUCCESS, username));
+
+ final CoreException expectedException =
+ OrchestrationTemplateCandidateUploadManagerExceptionSupplier
+ .couldNotUpdateLock(lockId, vspId, vspVersionId, new RuntimeException()).get();
+ assertEquals(expectedException.getMessage(), actualException.getMessage());
+ }
+
+ @Test
+ void findLatestSuccessTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final String username = "username";
+ when(vendorSoftwareProductManager.getVsp(vspId, new Version(vspVersionId))).thenReturn(new VspDetails());
+ final var expectedVspUploadStatus = new VspUploadStatusRecord();
+ expectedVspUploadStatus.setStatus(VspUploadStatus.UPLOADING);
+ expectedVspUploadStatus.setLockId(UUID.randomUUID());
+ expectedVspUploadStatus.setVspId(vspId);
+ expectedVspUploadStatus.setVspVersionId(vspVersionId);
+ expectedVspUploadStatus.setCreated(new Date());
+ expectedVspUploadStatus.setUpdated(new Date());
+ expectedVspUploadStatus.setIsComplete(true);
+ when(vspUploadStatusRecordDao.findLatest(vspId, vspVersionId)).thenReturn(Optional.of(expectedVspUploadStatus));
+ //when
+ final Optional<VspUploadStatusDto> actualVspUploadStatusDtoOpt = packageUploadManagerImpl.findLatestStatus(vspId, vspVersionId, username);
+ //then
+ assertTrue(actualVspUploadStatusDtoOpt.isPresent());
+ final VspUploadStatusDto actualVspUploadStatusDto = actualVspUploadStatusDtoOpt.get();
+ assertEquals(expectedVspUploadStatus.getVspId(), actualVspUploadStatusDto.getVspId());
+ assertEquals(expectedVspUploadStatus.getVspVersionId(), actualVspUploadStatusDto.getVspVersionId());
+ assertEquals(expectedVspUploadStatus.getLockId(), actualVspUploadStatusDto.getLockId());
+ assertEquals(expectedVspUploadStatus.getIsComplete(), actualVspUploadStatusDto.isComplete());
+ assertEquals(expectedVspUploadStatus.getCreated(), actualVspUploadStatusDto.getCreated());
+ assertEquals(expectedVspUploadStatus.getUpdated(), actualVspUploadStatusDto.getUpdated());
+ assertEquals(expectedVspUploadStatus.getStatus(), actualVspUploadStatusDto.getStatus());
+ }
+
+ @Test
+ void findLatest_noStatusFoundTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final String username = "username";
+ when(vendorSoftwareProductManager.getVsp(vspId, new Version(vspVersionId))).thenReturn(new VspDetails());
+ when(vspUploadStatusRecordDao.findLatest(vspId, vspVersionId)).thenReturn(Optional.empty());
+ //when
+ final Optional<VspUploadStatusDto> actualVspUploadStatusDtoOpt = packageUploadManagerImpl.findLatestStatus(vspId, vspVersionId, username);
+ //then
+ assertTrue(actualVspUploadStatusDtoOpt.isEmpty());
+ }
+
+ @Test
+ void findLatest_vspNotFoundTest() {
+ //given
+ final String vspId = "vspId";
+ final String vspVersionId = "vspVersionId";
+ final String username = "username";
+ //when/then
+ final CoreException actualCoreException =
+ assertThrows(CoreException.class, () -> packageUploadManagerImpl.findLatestStatus(vspId, vspVersionId, username));
+ final CoreException expectedCoreException = OrchestrationTemplateCandidateUploadManagerExceptionSupplier.vspNotFound(vspId, vspVersionId)
+ .get();
+ assertEquals(expectedCoreException.code().id(), actualCoreException.code().id());
+ assertEquals(expectedCoreException.code().message(), actualCoreException.code().message());
+ }
+
+} \ No newline at end of file