From 4e6769a7f9391cb6454fe0925c82463468c2c6c3 Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Thu, 18 Apr 2024 10:14:19 +0200 Subject: [PATCH] RED-8959 - UT for local resize on dictionary entity --- .../v1/server/RedactionIntegrationTest.java | 56 ++++++++++++++++++- .../resources/dictionaries/CBI_author.txt | 1 + 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java index d12a0886..02c6cc3c 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java @@ -50,6 +50,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileTyp import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryState; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval; @@ -1480,7 +1481,7 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { var entityLog = redactionStorageService.getEntityLog(TEST_DOSSIER_ID, TEST_FILE_ID); var david = entityLog.getEntityLogEntry() .stream() - .filter(e -> e.getValue().equals("David")) + .filter(e -> e.getValue().equals("David Ksenia")) .findFirst() .get(); @@ -1510,11 +1511,62 @@ public class RedactionIntegrationTest extends RulesIntegrationTest { .findFirst() .get(); assertEquals(resizedEntity.getState(), EntryState.APPLIED); - assertEquals(resizedEntity.getValue(), "David"); + assertEquals(resizedEntity.getValue(), "David Ksenia"); assertEquals(0, resizedEntity.getManualChanges().size()); } + @Test + @SneakyThrows + public void testLocalResizeOnDictionaryEntity() { + + String EFSA_SANITISATION_RULES = loadFromClassPath("drools/efsa_sanitisation.drl"); + when(rulesClient.getRules(TEST_DOSSIER_TEMPLATE_ID, RuleFileType.ENTITY)).thenReturn(JSONPrimitive.of(EFSA_SANITISATION_RULES)); + String pdfFile = "files/new/crafted document.pdf"; + + AnalyzeRequest request = uploadFileToStorage(pdfFile); + analyzeDocumentStructure(LayoutParsingType.REDACT_MANAGER, request); + analyzeService.analyze(request); + + var entityLog = redactionStorageService.getEntityLog(TEST_DOSSIER_ID, TEST_FILE_ID); + var davidKsenia = entityLog.getEntityLogEntry() + .stream() + .filter(e -> e.getValue().equals("David Ksenia")) + .findFirst() + .get(); + + request.setManualRedactions(ManualRedactions.builder() + .resizeRedactions(Set.of(ManualResizeRedaction.builder() + .updateDictionary(false) + .annotationId(davidKsenia.getId()) + .fileId(TEST_FILE_ID) + .user("user") + .requestDate(OffsetDateTime.now()) + .value("David") + .positions(List.of(Rectangle.builder() + .topLeftX(56.8f) + .topLeftY(293.564f) + .width(29.2922f) + .height(15.408f) + .page(1) + .build())) + .addToAllDossiers(false) + .build())) + .build()); + analyzeService.reanalyze(request); + entityLog = redactionStorageService.getEntityLog(TEST_DOSSIER_ID, TEST_FILE_ID); + var resizedEntity = entityLog.getEntityLogEntry() + .stream() + .filter(e -> e.getId().equals(davidKsenia.getId())) + .findFirst() + .get(); + assertEquals(resizedEntity.getState(), EntryState.APPLIED); + assertEquals(resizedEntity.getValue(), "David"); + assertEquals(1, resizedEntity.getManualChanges().size()); + assertEquals(resizedEntity.getManualChanges().get(0).getManualRedactionType(), ManualRedactionType.RESIZE); + } + + @Test @Disabled public void testPydiflumetofenMongo() throws IOException { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/CBI_author.txt b/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/CBI_author.txt index 737e1a40..fed8ecb3 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/CBI_author.txt +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/CBI_author.txt @@ -1709,6 +1709,7 @@ Das, R. Daughtry, CST David Chubb|Lorraine Britton David Clarke +David Ksenia Davies Davies D Davies D.