From 59d45a309bf2e7882ca92671e181fe1b463bcdc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Thu, 16 Nov 2023 13:46:18 +0100 Subject: [PATCH] RED-7934: Do not delete manual redactions at remove redaction if not updateDictionary --- .../manualredactions/ManualRedactionService.java | 6 +++--- .../integration/tests/ManualRedactionTest.java | 14 ++++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java index c5b5c656a..eb94b77be 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java @@ -117,7 +117,7 @@ public class ManualRedactionService { log.info("add removeRedaction for file {} and annotation {}", fileId, removeRedactionRequest.getAnnotationId()); removeRedactionPersistenceService.insert(fileId, removeRedactionRequest); - if (manualAddRedactionsContains(manualRedactions, removeRedactionRequest.getAnnotationId())) { + if (manualAddToDictionaryRedactionsContains(manualRedactions, removeRedactionRequest.getAnnotationId())) { log.info("hard delete ManualRedactions for file {} and annotation {}", fileId, removeRedactionRequest.getAnnotationId()); manualRedactionProviderService.hardDeleteManualRedactions(fileId, removeRedactionRequest.getAnnotationId()); continue; @@ -288,9 +288,9 @@ public class ManualRedactionService { } - private boolean manualAddRedactionsContains(ManualRedactions manualRedactions, String annotationId) { + private boolean manualAddToDictionaryRedactionsContains(ManualRedactions manualRedactions, String annotationId) { - return manualRedactions.getEntriesToAdd().stream().anyMatch(m -> annotationId.equals(m.getAnnotationId())); + return manualRedactions.getEntriesToAdd().stream().anyMatch(m -> annotationId.equals(m.getAnnotationId()) && (m.isAddToDictionary() || m.isAddToDossierDictionary())); } 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 d57ee8b8f..f02174bdc 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 @@ -1617,7 +1617,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { @Test - public void testRemoveManualRedactionEntityRemovesAllManualRedactions() { + public void testNonDictionaryRemoveManualRedactionEntityDoesNotRemoveAllManualRedactions() { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate); @@ -1662,11 +1662,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .positions(List.of(new Rectangle(new Point(10, 10), 100, 100, 1))) .build())); manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), Set.of(RemoveRedactionRequestModel.builder().annotationId(annotationId).build())); - assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getEntriesToAdd().isEmpty()); - assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getLegalBasisChanges().isEmpty()); - assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getForceRedactions().isEmpty()); - assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getRecategorizations().isEmpty()); - assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getResizeRedactions().isEmpty()); + + // Only AddToDictionaries will remove all manual redactions. + assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getEntriesToAdd().size()); + assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getLegalBasisChanges().size()); + assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getForceRedactions().size()); + assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getRecategorizations().size()); + assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getResizeRedactions().size()); assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getIdsToRemove().size()); } -- 2.47.2