From 1e2388dcae19643fc46a1edc83296627c2b575a9 Mon Sep 17 00:00:00 2001 From: Viktor Seifert Date: Fri, 10 Mar 2023 17:39:53 +0100 Subject: [PATCH] RED-6310: Updated test for download preparation test to execute all preparation steps. Previously the last step was not executed. --- .../download/DownloadPreparationService.java | 11 ++++- .../RedactionResultMessageReceiver.java | 6 +++ .../tests/DownloadPreparationTest.java | 45 +++++++++++++++++-- 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java index 72b8806ab..d550931eb 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java @@ -143,7 +143,7 @@ public class DownloadPreparationService { addReports(reportResultMessage.getDownloadId(), storedFileInformations, fileSystemBackedArchiver); storeZipFile(downloadStatus, fileSystemBackedArchiver); - downloadStatusPersistenceService.updateStatus(downloadStatus.getStorageId(), DownloadStatusValue.READY, fileSystemBackedArchiver.getContentLength()); + updateStatusToReady(downloadStatus, fileSystemBackedArchiver); notificationPersistenceService.insertNotification(AddNotificationRequest.builder() .userId(downloadStatus.getUserId()) @@ -163,6 +163,15 @@ public class DownloadPreparationService { } + private void updateStatusToReady(DownloadStatusEntity downloadStatus, FileSystemBackedArchiver fileSystemBackedArchiver) { + + downloadStatusPersistenceService.updateStatus(downloadStatus.getStorageId(), DownloadStatusValue.READY, fileSystemBackedArchiver.getContentLength()); + if (!Objects.equals(downloadStatus.getStatus(), DownloadStatusValue.READY)) { + downloadStatus.setStatus(DownloadStatusValue.READY); + } + } + + private void generateAndAddFiles(DownloadStatusEntity downloadStatus, RedactionResultMessage reportResultMessage, FileSystemBackedArchiver fileSystemBackedArchiver) { int i = 1; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionResultMessageReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionResultMessageReceiver.java index e1210982d..dde5484d2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionResultMessageReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionResultMessageReceiver.java @@ -40,6 +40,12 @@ public class RedactionResultMessageReceiver { redactionResultMessage.getDownloadId())); } + receive(redactionResultMessage); + } + + + public void receive(RedactionResultMessage redactionResultMessage) { + log.info("Received redaction results for downloadId:{}", redactionResultMessage.getDownloadId()); downloadPreparationService.createDownload(redactionResultMessage); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadPreparationTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadPreparationTest.java index 16baea5ad..de672524d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadPreparationTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadPreparationTest.java @@ -5,6 +5,7 @@ import static org.assertj.core.api.Assertions.assertThat; import java.io.ByteArrayInputStream; import java.util.ArrayList; import java.util.Collections; +import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -12,6 +13,7 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mock.web.MockMultipartFile; +import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionResultMessage; import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; import com.iqser.red.service.peristence.v1.server.integration.client.DownloadClient; import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; @@ -21,11 +23,13 @@ import com.iqser.red.service.peristence.v1.server.integration.service.DossierTes import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.management.v1.processor.service.download.DownloadReportMessageReceiver; +import com.iqser.red.service.persistence.management.v1.processor.service.download.RedactionResultMessageReceiver; import com.iqser.red.service.persistence.management.v1.processor.utils.multitenancy.TenantContext; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.PrepareDownloadWithOptionRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DownloadFileType; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ReportTemplate; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; import com.iqser.red.service.redaction.report.v1.api.model.ReportResultMessage; import com.iqser.red.service.redaction.report.v1.api.model.StoredFileInformation; @@ -38,6 +42,9 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes @Autowired private DownloadReportMessageReceiver downloadReportMessageReceiver; + @Autowired + private RedactionResultMessageReceiver redactionResultMessageReceiver; + @Autowired private StorageService storageService; @@ -63,10 +70,19 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes private FileClient fileClient; + @Before + public void before() { + + TenantContext.setTenantId("redaction"); + } + + @Test @SneakyThrows public void testReceiveDownloadPackage() { + String userId = "1"; + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate); @@ -113,17 +129,38 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes assertThat(statuses.getDownloadStatus()).isNotEmpty(); assertThat(statuses.getDownloadStatus().iterator().next().getLastDownload()).isNull(); - // FIXME Check if this is still needed. - // This variable seems to do nothing, if it is not needed it can be removed. + String downloadId = statuses.iterator().next().getStorageId(); + + addStoredFileInformationToStorage(file, availableTemplates, downloadId); + + ReportResultMessage reportResultMessage = new ReportResultMessage(); + reportResultMessage.setUserId(userId); + reportResultMessage.setDownloadId(downloadId); + + downloadReportMessageReceiver.receive(reportResultMessage); + + redactionResultMessageReceiver.receive(RedactionResultMessage.builder() + .downloadId(downloadId) + .dossierId(dossier.getId()) + .redactionResultDetails(Collections.emptyList()) + .build()); + } + + + @SneakyThrows + private void addStoredFileInformationToStorage(FileModel file, List availableTemplates, String downloadId) { + + String reportStorageId = "XYZ"; + var storedFileInformationstorageId = downloadId.substring(0, downloadId.length() - 3) + "/REPORT_INFO.json"; + var sivList = new ArrayList(); var siv = new StoredFileInformation(); siv.setFileId(file.getId()); - siv.setStorageId("XYZ"); + siv.setStorageId(reportStorageId); siv.setTemplateId(availableTemplates.iterator().next().getTemplateId()); sivList.add(siv); - // FIXME Check if this is still needed. storageService.storeObject(TenantContext.getTenantId(), "XYZ", new ByteArrayInputStream(new byte[]{1, 2, 3, 4})); ReportResultMessage reportResultMessage = new ReportResultMessage();