From 2496d39d11abf52843673da08c829632bed44cc7 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 20 Sep 2021 09:50:59 +0300 Subject: [PATCH] more tests --- .../v1/api/model/LegalBasisMapping.java | 17 +++++++ .../server/controller/UploadController.java | 7 +-- .../client/RedactionLogClient.java | 9 ++++ .../service/FileTesterAndProvider.java | 17 +++++++ .../v1/server/integration/tests/FileTest.java | 44 +++++++++++++------ .../integration/tests/NotificationTest.java | 42 ++++++++++++++++++ .../integration/tests/RedactionLogTest.java | 34 ++++++++++++++ .../AbstractPersistenceServerServiceTest.java | 20 ++++++++- 8 files changed, 172 insertions(+), 18 deletions(-) create mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/configuration/v1/api/model/LegalBasisMapping.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RedactionLogClient.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RedactionLogTest.java diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/configuration/v1/api/model/LegalBasisMapping.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/configuration/v1/api/model/LegalBasisMapping.java new file mode 100644 index 000000000..95c3d7699 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/configuration/v1/api/model/LegalBasisMapping.java @@ -0,0 +1,17 @@ +package com.iqser.red.service.configuration.v1.api.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +// TODO remove this - compatibility for classpath error +public class LegalBasisMapping { + + private String name; + private String description; + private String reason; + +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/UploadController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/UploadController.java index 52eb31bbf..f7e98e0e8 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/UploadController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/UploadController.java @@ -44,7 +44,6 @@ public class UploadController implements UploadResource { private final PDFTronRedactionClient pdfTronRedactionClient; private final FileManagementStorageService fileManagementStorageService; private final RedactionClient redactionClient; - private final DossierPersistenceService dossierPersistenceService; @Override public JSONPrimitive upload(@RequestBody BinaryFileRequest request) { @@ -135,11 +134,13 @@ public class UploadController implements UploadResource { var fileStatus = fileStatusService.getStatus(fileId); var dossier = dossierService.getDossierById(dossierId); - PdfTronRedactionResult pdfTronRedactionResult = pdfTronRedactionClient.redact(PdfTronRedactionRequest.builder() + var request = PdfTronRedactionRequest.builder() .dossierTemplateId(dossier.getDossierTemplateId()) .document(fileManagementStorageService.getStoredObjectBytes(dossierId, fileId, FileType.ORIGIN)) .redactionLog(fileManagementStorageService.getRedactionLog(dossierId, fileId)) - .build()); + .build(); + + PdfTronRedactionResult pdfTronRedactionResult = pdfTronRedactionClient.redact(request); return new BinaryFileResult(pdfTronRedactionResult.getDocument(), fileStatus.getFilename()); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RedactionLogClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RedactionLogClient.java new file mode 100644 index 000000000..eaae236c4 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RedactionLogClient.java @@ -0,0 +1,9 @@ +package com.iqser.red.service.peristence.v1.server.integration.client; + +import com.iqser.red.service.persistence.service.v1.api.resources.RedactionLogResource; +import org.springframework.cloud.openfeign.FeignClient; + + +@FeignClient(name = "RedactionLogClient", url = "http://localhost:${server.port}") +public interface RedactionLogClient extends RedactionLogResource { +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java index 5ccc1ec7d..b616520a5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java @@ -1,12 +1,20 @@ package com.iqser.red.service.peristence.v1.server.integration.service; +import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; import com.iqser.red.service.peristence.v1.server.integration.client.UploadClient; +import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService; import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileRequest; +import com.iqser.red.service.persistence.service.v1.api.model.FileType; import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier; import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File; +import com.iqser.red.service.redaction.v1.model.RedactionLog; +import com.iqser.red.service.redaction.v1.model.SectionGrid; +import com.iqser.red.storage.commons.service.StorageService; +import lombok.SneakyThrows; +import org.assertj.core.util.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -18,6 +26,11 @@ import static org.assertj.core.api.AssertionsForClassTypes.assertThat; public class FileTesterAndProvider { + @Autowired + private FileManagementStorageService fileManagementStorageService; + + @Autowired + private ObjectMapper objectMapper; @Autowired private UploadClient uploadClient; @@ -26,6 +39,7 @@ public class FileTesterAndProvider { private FileClient fileClient; + @SneakyThrows public File testAndProvideFile(Dossier dossier){ @@ -38,6 +52,9 @@ public class FileTesterAndProvider { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); + fileManagementStorageService.storeObject(dossier.getId(),file.getId(), FileType.REDACTION_LOG, objectMapper.writeValueAsBytes(new RedactionLog(1, Lists.newArrayList(), Lists.newArrayList(),0,0,0,0))); + fileManagementStorageService.storeObject(dossier.getId(),file.getId(), FileType.SECTION_GRID, objectMapper.writeValueAsBytes(new SectionGrid())); + return file; } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java index 1945c7bb5..02bbcd113 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java @@ -9,6 +9,7 @@ import com.iqser.red.service.peristence.v1.server.integration.service.FileTester import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.FileStatus; +import org.assertj.core.util.Lists; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -55,15 +56,6 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getExcludedPages()).isEmpty(); - fileClient.toggleExclusion(dossier.getId(),file.getId(),true); - loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); - assertThat(loadedFile.isExcluded()).isTrue(); - - - fileClient.toggleExclusion(dossier.getId(),file.getId(),false); - loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); - assertThat(loadedFile.isExcluded()).isFalse(); - fileClient.setCurrentFileReviewer(dossier.getId(), file.getId(), JSONPrimitive.of("1")); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); @@ -91,18 +83,41 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.APPROVED); - fileClient.setStatusUnderReview(dossier.getId(), file.getId()); - uploadClient.deleteFile(dossier.getId(),file.getId()); + assertThat(uploadClient.getOriginal(dossier.getId(),file.getId())).isNotNull(); + assertThat(uploadClient.getRedacted(dossier.getId(),file.getId())).isNotNull(); + assertThat(uploadClient.getFlatRedacted(dossier.getId(),file.getId())).isNotNull(); + assertThat(uploadClient.getPreview(dossier.getId(),file.getId())).isNotNull(); + assertThat(uploadClient.getAnnotated(dossier.getId(),file.getId())).isNotNull(); + fileClient.setStatusUnderReview(dossier.getId(), file.getId()); + + + fileClient.toggleExclusion(dossier.getId(),file.getId(),true); + loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); + assertThat(loadedFile.isExcluded()).isTrue(); + + + fileClient.toggleExclusion(dossier.getId(),file.getId(),false); + loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); + assertThat(loadedFile.isExcluded()).isFalse(); + + uploadClient.deleteFile(dossier.getId(),file.getId()); + var softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(1); - - var activeFiles = fileClient.getDossierStatus(dossier.getId()); assertThat(activeFiles.size()).isEqualTo(0); + uploadClient.undeleteFiles(dossier.getId(), Sets.newHashSet(file.getId())); + softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); + assertThat(softDeletedFiles.size()).isEqualTo(0); + activeFiles = fileClient.getDossierStatus(dossier.getId()); + assertThat(activeFiles.size()).isEqualTo(1); + + + uploadClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId())); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(0); @@ -111,5 +126,8 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(activeFiles.size()).isEqualTo(0); + + + } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationTest.java index 0715b87a4..1b471443f 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationTest.java @@ -3,6 +3,8 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import com.iqser.red.service.peristence.v1.server.integration.client.NotificationClient; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.data.audit.AddNotificationRequest; +import com.iqser.red.service.persistence.service.v1.api.model.data.notification.Notification; +import org.assertj.core.util.Lists; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -20,8 +22,48 @@ public class NotificationTest extends AbstractPersistenceServerServiceTest { notificationClient.addNotification(AddNotificationRequest.builder().notificationType("test").issuerId("1").userId("1").target(Map.of("test", "test")).build()); + var notification = getNotification(); + + + assertThat(notification.getReadDate()).isNull(); + notificationClient.toggleRead("1", Lists.newArrayList(notification.getId()), true); + notification = getNotification(); + assertThat(notification.getReadDate()).isNotNull(); + + + + assertThat(notification.getSeenDate()).isNull(); + notificationClient.toggleSeen("1", Lists.newArrayList(notification.getId()), true); + notification = getNotification(); + assertThat(notification.getSeenDate()).isNotNull(); + + var currentNotifications = notificationClient.getNotifications("1", false); + assertThat(currentNotifications).isEmpty(); + + + + notificationClient.toggleRead("1", Lists.newArrayList(notification.getId()), false); + notification = getNotification(); + assertThat(notification.getReadDate()).isNull(); + + + + notificationClient.toggleSeen("1", Lists.newArrayList(notification.getId()), false); + notification = getNotification(); + assertThat(notification.getSeenDate()).isNull(); + + + + notificationClient.softDelete("1",Lists.newArrayList(notification.getId())); + currentNotifications = notificationClient.getNotifications("1", true); + assertThat(currentNotifications).isEmpty(); + + } + + private Notification getNotification() { var currentNotifications = notificationClient.getNotifications("1", true); assertThat(currentNotifications.size()).isEqualTo(1); + return currentNotifications.iterator().next(); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RedactionLogTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RedactionLogTest.java new file mode 100644 index 000000000..3dee37eb3 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RedactionLogTest.java @@ -0,0 +1,34 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import com.iqser.red.service.peristence.v1.server.integration.client.RedactionLogClient; +import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; +import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider; +import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import static org.assertj.core.api.Assertions.assertThat; + +public class RedactionLogTest extends AbstractPersistenceServerServiceTest { + + @Autowired + private FileTesterAndProvider fileTesterAndProvider; + + @Autowired + private DossierTesterAndProvider dossierTesterAndProvider; + + @Autowired + private RedactionLogClient redactionLogClient; + + @Test + public void testRedactionLog() { + + var dossier = dossierTesterAndProvider.provideTestDossier(); + var file = fileTesterAndProvider.testAndProvideFile(dossier); + + assertThat(redactionLogClient.getSectionGrid(dossier.getId(), file.getId())).isNotNull(); + assertThat(redactionLogClient.getRedactionLog(dossier.getId(), file.getId(), true)).isNotNull(); + assertThat(redactionLogClient.getRedactionLog(dossier.getId(), file.getId(), false)).isNotNull(); + + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java index a28a0f654..7a35cf0fb 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java @@ -1,7 +1,6 @@ package com.iqser.red.service.peristence.v1.server.integration.utils; -import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronOptimizeRequest; -import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronOptimizeResponse; +import com.iqser.red.service.pdftron.redaction.v1.api.model.*; import com.iqser.red.service.peristence.v1.server.Application; import com.iqser.red.service.peristence.v1.server.client.RedactionClient; import com.iqser.red.service.peristence.v1.server.client.SearchClient; @@ -9,8 +8,13 @@ import com.iqser.red.service.peristence.v1.server.controller.LicenseReportContro import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; import com.iqser.red.service.persistence.management.v1.processor.client.PDFTronRedactionClient; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.*; +import com.iqser.red.service.redaction.v1.model.AnnotateRequest; +import com.iqser.red.service.redaction.v1.model.AnnotateResponse; +import com.iqser.red.service.redaction.v1.model.RedactionLog; +import com.iqser.red.service.redaction.v1.model.RedactionResult; import com.iqser.red.storage.commons.StorageAutoConfiguration; import com.iqser.red.storage.commons.service.StorageService; +import org.assertj.core.util.Lists; import org.junit.After; import org.junit.Before; import org.junit.runner.RunWith; @@ -77,6 +81,17 @@ public abstract class AbstractPersistenceServerServiceTest { public void setupOptimize() { when(pdfTronRedactionClient.optimize(Mockito.any())).thenAnswer((args) -> new PdfTronOptimizeResponse(((PdfTronOptimizeRequest) args.getArguments()[0]).getDocument())); + when(pdfTronRedactionClient.redact(Mockito.any())).thenAnswer((args) -> + new PdfTronRedactionResult(((PdfTronRedactionRequest) args.getArguments()[0]).getDocument())); + when(pdfTronRedactionClient.redactionPreview(Mockito.any())).thenAnswer((args) -> + new PdfTronRedactionResult(((PdfTronRedactionRequest) args.getArguments()[0]).getDocument())); + + when(pdfTronRedactionClient.flatDocument(Mockito.any())).thenAnswer((args) -> + new PdfTronFlattenResponse(((PdfTronFlattenRequest) args.getArguments()[0]).getDocument())); + + when(redactionClient.annotate(Mockito.any())).thenReturn(new AnnotateResponse("document".getBytes())); + when(redactionClient.sections(Mockito.any())).thenReturn(new RedactionResult()); + when(redactionClient.getRedactionLog(Mockito.any())).thenReturn(new RedactionLog(1, Lists.newArrayList(),Lists.newArrayList(),0,0,0,0)); } @Configuration @@ -90,6 +105,7 @@ public abstract class AbstractPersistenceServerServiceTest { return new FileSystemBackedStorageService(); } + } @After