From 63137b84c27277d4f6e68abe90aac4de7fec8bde Mon Sep 17 00:00:00 2001 From: aoezyetimoglu Date: Thu, 23 Sep 2021 10:08:20 +0200 Subject: [PATCH] Tests for Manual Redaction --- .../service/ManualRedactionService.java | 8 +- .../service/FileTesterAndProvider.java | 4 +- .../v1/server/integration/tests/FileTest.java | 10 ++ .../tests/ManualRedactionTest.java | 98 +++++++++++++++++-- 4 files changed, 107 insertions(+), 13 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java index f0fd50623..cada506cf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java @@ -30,7 +30,7 @@ public class ManualRedactionService { private final ForceRedactionPersistenceService forceRedactionPersistenceService; private final CommentPersistenceService commentPersistenceService; private final FileStatusPersistenceService fileStatusPersistenceService; - private final DictionaryController dictionaryClient; + private final DictionaryController dictionaryController; private final FileManagementStorageService fileManagementStorageService; private final ImageRecategorizationPersistenceService recategorizationPersistenceService; private final LegalBasisChangePersistenceService legalBasisChangePersistenceService; @@ -46,7 +46,7 @@ public class ManualRedactionService { if (addRedactionRequest.isAddToDictionary()) { try { - dictionaryClient.getDictionaryForType(addRedactionRequest.getType()); + dictionaryController.getDictionaryForType(addRedactionRequest.getType()); } catch (FeignException e) { if (e.status() == 404) { throw new BadRequestException("Invalid type: " + addRedactionRequest.getType()); @@ -480,7 +480,7 @@ public class ManualRedactionService { try { log.debug("Adding entries for {} / {}", dossierId, fileId); - dictionaryClient.addEntries(typeId, List.of(value), false); + dictionaryController.addEntries(typeId, List.of(value), false); fileStatusService.setStatusReprocess(dossierId, fileId, 100); } catch (Exception e) { @@ -493,7 +493,7 @@ public class ManualRedactionService { try { log.debug("Deleting entries for {} / {}", dossierId, fileId); - dictionaryClient.deleteEntries(typeId, List.of(value)); + dictionaryController.deleteEntries(typeId, List.of(value)); fileStatusService.setStatusReprocess(dossierId, fileId, 100); } catch (FeignException e) { throw new BadRequestException(e.getMessage()); 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 b616520a5..4356ed783 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 @@ -11,6 +11,7 @@ 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.RedactionLogEntry; import com.iqser.red.service.redaction.v1.model.SectionGrid; import com.iqser.red.storage.commons.service.StorageService; import lombok.SneakyThrows; @@ -19,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.nio.charset.StandardCharsets; +import java.util.List; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; @@ -52,7 +54,7 @@ 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.REDACTION_LOG, objectMapper.writeValueAsBytes(new RedactionLog(1, List.of(RedactionLogEntry.builder().id("annotationId").type("manual:" + dossier.getDossierTemplateId()).value("value").build()), 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 02bbcd113..f06fecb84 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 @@ -129,5 +129,15 @@ public class FileTest extends AbstractPersistenceServerServiceTest { + } + + @Test + public void testFileAlternative() { + var dossier = dossierTesterAndProvider.provideTestDossier(); + + var file = fileTesterAndProvider.testAndProvideFile(dossier); + + var loadedFile = fileTesterAndProvider.testAndProvideFile(dossier); + } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java index 9028cab25..c5288d05d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java @@ -1,16 +1,26 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient; import com.iqser.red.service.peristence.v1.server.integration.client.ManualRedactionClient; 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.service.TypeProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; -import com.iqser.red.service.persistence.service.v1.api.model.*; +import com.iqser.red.service.persistence.service.v1.api.model.AddRedactionRequest; +import com.iqser.red.service.persistence.service.v1.api.model.CommentRequest; +import com.iqser.red.service.persistence.service.v1.api.model.ForceRedactionRequest; +import com.iqser.red.service.persistence.service.v1.api.model.ImageRecategorizationRequest; +import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive; +import com.iqser.red.service.persistence.service.v1.api.model.LegalBasisChangeRequest; +import com.iqser.red.service.persistence.service.v1.api.model.ManualRedactions; +import com.iqser.red.service.persistence.service.v1.api.model.RemoveRedactionRequest; import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationStatus; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import static org.assertj.core.api.Assertions.assertThat; public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { @@ -26,6 +36,9 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { @Autowired private ManualRedactionClient manualRedactionClient; + @Autowired + private DictionaryClient dictionaryClient; + @Test public void testManualRedaction() { @@ -55,10 +68,18 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { loadedAddRedaction = manualRedactionClient.getAddRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedAddRedaction.getStatus()).isEqualTo(AnnotationStatus.APPROVED); - manualRedactionClient.updateAddRedactionStatus(dossier.getId(), file.getId(), addRedaction.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.DECLINED)); + manualRedactionClient.updateAddRedactionStatus(dossier.getId(), file.getId(), addRedaction.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.DECLINED)); loadedAddRedaction = manualRedactionClient.getAddRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedAddRedaction.getStatus()).isEqualTo(AnnotationStatus.DECLINED); + var addRedaction2 = manualRedactionClient.addAddRedaction(dossier.getId(), file.getId(), AddRedactionRequest.builder().addToDictionary(true) + .addToDossierDictionary(false).status(AnnotationStatus.APPROVED).type(type.getId()).user("user").reason("1").value("test").legalBasis("1").comment("comment").build()); + + manualRedactionClient.updateAddRedactionStatus(dossier.getId(), file.getId(), addRedaction2.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.REQUESTED)); + var loadedAddRedaction2 = manualRedactionClient.getAddRedaction(file.getId(), addRedaction2.getAnnotationId()); + assertThat(loadedAddRedaction2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); + assertThat(loadedAddRedaction2.isAddToDossierDictionary()).isEqualTo(false); + assertThat(loadedAddRedaction2.isAddToDictionary()).isEqualTo(true); @@ -77,6 +98,22 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { loadedRemoveRedaction = manualRedactionClient.getRemoveRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedRemoveRedaction.getStatus()).isEqualTo(AnnotationStatus.DECLINED); + var removeRedaction2 = manualRedactionClient.addRemoveRedaction(dossier.getId(), file.getId(), RemoveRedactionRequest.builder() + .annotationId("annotationId").comment("comment").status(AnnotationStatus.APPROVED).user("test").removeFromDictionary(true).build()); + manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), file.getId(), removeRedaction2.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.REQUESTED)); + var loadedRemoveRedaction2 = manualRedactionClient.getRemoveRedaction(file.getId(), removeRedaction2.getAnnotationId()); + assertThat(loadedRemoveRedaction2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); + assertThat(dictionaryClient.getDictionaryForType(type.getId()).getEntries().isEmpty()); + assertThat(loadedRemoveRedaction2.isRemoveFromDictionary()).isEqualTo(true); + + manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), file.getId(), removeRedaction2.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.APPROVED)); + loadedRemoveRedaction2 = manualRedactionClient.getRemoveRedaction(file.getId(), removeRedaction2.getAnnotationId()); + assertThat(loadedRemoveRedaction2.getStatus()).isEqualTo(AnnotationStatus.APPROVED); + + manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), file.getId(), removeRedaction2.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.REQUESTED)); + loadedRemoveRedaction2 = manualRedactionClient.getRemoveRedaction(file.getId(), removeRedaction2.getAnnotationId()); + assertThat(loadedRemoveRedaction2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); + @@ -84,6 +121,9 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .annotationId(addRedaction.getAnnotationId()).comment("comment").status(AnnotationStatus.REQUESTED).user("test").legalBasis("1").build()); var loadedForceRedaction = manualRedactionClient.getForceRedaction(file.getId(), forceRedaction.getAnnotationId()); assertThat(loadedForceRedaction.getLegalBasis()).isEqualTo("1"); + assertThat(loadedForceRedaction.getUser()).isEqualTo("test"); + assertThat(loadedForceRedaction.getId()).isEqualTo(loadedForceRedaction.getId()); + assertThat(loadedForceRedaction.getId().getId()).isEqualTo(loadedForceRedaction.getId().getId()); manualRedactionClient.updateForceRedactionStatus(dossier.getId(), file.getId(), forceRedaction.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.APPROVED)); loadedForceRedaction = manualRedactionClient.getForceRedaction(file.getId(), addRedaction.getAnnotationId()); @@ -95,11 +135,12 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { - var legalBasisChange = manualRedactionClient.addLegalBasisChange(dossier.getId(), file.getId(), LegalBasisChangeRequest.builder() .annotationId(addRedaction.getAnnotationId()).comment("comment").status(AnnotationStatus.REQUESTED).user("test").legalBasis("1").build()); var loadedLegalBasisChange = manualRedactionClient.getLegalBasisChange(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedLegalBasisChange.getId().getId()).isEqualTo(legalBasisChange.getAnnotationId()); + assertThat(loadedLegalBasisChange.getUser()).isEqualTo("test"); + assertThat(loadedLegalBasisChange.getLegalBasis()).isEqualTo("1"); manualRedactionClient.updateLegalBasisChangeStatus(dossier.getId(), file.getId(), legalBasisChange.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.APPROVED)); loadedLegalBasisChange = manualRedactionClient.getLegalBasisChange(file.getId(), addRedaction.getAnnotationId()); @@ -111,7 +152,6 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { - var imageRecategorization = manualRedactionClient.addImageRecategorization(dossier.getId(), file.getId(), ImageRecategorizationRequest.builder() .annotationId(addRedaction.getAnnotationId()).comment("comment").status(AnnotationStatus.REQUESTED).user("test").type("new-type").build()); var loadedImageRecategorization = manualRedactionClient.getImageRecategorization(file.getId(), addRedaction.getAnnotationId()); @@ -125,6 +165,17 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { loadedImageRecategorization = manualRedactionClient.getImageRecategorization(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedImageRecategorization.getStatus()).isEqualTo(AnnotationStatus.DECLINED); + var imageRecategorization2 = manualRedactionClient.addImageRecategorization(dossier.getId(), file.getId(), ImageRecategorizationRequest.builder() + .annotationId(addRedaction2.getAnnotationId()).comment("comment").status(AnnotationStatus.APPROVED).user("test").type("new-type").build()); + + var loadedImageRecategorization2 = manualRedactionClient.getImageRecategorization(file.getId(), imageRecategorization2.getAnnotationId()); + assertThat(loadedImageRecategorization2.getStatus()).isEqualTo(AnnotationStatus.APPROVED); + + manualRedactionClient.updateImageRecategorizationStatus(dossier.getId(), file.getId(), imageRecategorization2.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.REQUESTED)); + loadedImageRecategorization2 = manualRedactionClient.getImageRecategorization(file.getId(), imageRecategorization2.getAnnotationId()); + assertThat(loadedImageRecategorization2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); + + ManualRedactions manualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId()); assertThat(manualRedactions.getForceRedactions()).isNotEmpty(); @@ -143,5 +194,36 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { manualRedactions.getComments().forEach((key, value) -> value.forEach(c -> manualRedactionClient.deleteComment(file.getId(), c.getId()))); + + + + var forceRedaction2 = manualRedactionClient.addForceRedaction(dossier.getId(), file.getId(), ForceRedactionRequest.builder() + .annotationId(addRedaction2.getAnnotationId()).comment("comment").status(AnnotationStatus.APPROVED).user("test").legalBasis("1").build()); + var loadedForceRedaction2 = manualRedactionClient.getForceRedaction(file.getId(), forceRedaction2.getAnnotationId()); + assertThat(loadedForceRedaction2.getStatus()).isEqualTo(AnnotationStatus.APPROVED); + + + manualRedactionClient.updateForceRedactionStatus(dossier.getId(), file.getId(), forceRedaction2.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.REQUESTED)); + loadedForceRedaction2 = manualRedactionClient.getForceRedaction(file.getId(), forceRedaction2.getAnnotationId()); + assertThat(loadedForceRedaction2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); + + manualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId()); + manualRedactions.getForceRedactions().forEach(e -> manualRedactionClient.deleteForceRedaction(dossier.getId(), file.getId(), e.getId().getId())); + + + + + var legalBasisChange2 = manualRedactionClient.addLegalBasisChange(dossier.getId(), file.getId(), LegalBasisChangeRequest.builder() + .annotationId(addRedaction2.getAnnotationId()).comment("comment").status(AnnotationStatus.APPROVED).user("test").legalBasis("1").build()); + var loadedLegalBasisChange2 = manualRedactionClient.getLegalBasisChange(file.getId(), legalBasisChange2.getAnnotationId()); + assertThat(loadedLegalBasisChange2.getStatus()).isEqualTo(AnnotationStatus.APPROVED); + + manualRedactionClient.updateLegalBasisChangeStatus(dossier.getId(), file.getId(), legalBasisChange2.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.REQUESTED)); + loadedLegalBasisChange2 = manualRedactionClient.getLegalBasisChange(file.getId(), legalBasisChange2.getAnnotationId()); + assertThat(loadedLegalBasisChange2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); + + manualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId()); + manualRedactions.getLegalBasisChanges().forEach(e -> manualRedactionClient.deleteLegalBasisChange(dossier.getId(), file.getId(), e.getId().getId())); + } }