From 435f75996f3fe41e9bc5cc18ccc32a54b78f6e9b Mon Sep 17 00:00:00 2001 From: Viktor Seifert Date: Mon, 8 Aug 2022 15:16:38 +0200 Subject: [PATCH] RED-4824: Added test with a simple pdf that contains all combinations for rotation and text direction --- .../v1/server/RedactionIntegrationTest.java | 85 +++++++++++++----- .../dictionaries/RotateTestFileSimple.txt | 16 ++++ .../files/new/RotateTestFileSimple.pdf | Bin 0 -> 56603 bytes 3 files changed, 81 insertions(+), 20 deletions(-) create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/RotateTestFileSimple.txt create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/files/new/RotateTestFileSimple.pdf 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 b8c2988c..6b97870d 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 @@ -41,6 +41,7 @@ import org.kie.api.builder.KieBuilder; import org.kie.api.builder.KieFileSystem; import org.kie.api.builder.KieModule; import org.kie.api.runtime.KieContainer; +import org.mockito.stubbing.Answer; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -90,6 +91,7 @@ public class RedactionIntegrationTest { private static final String DOSSIER_REDACTIONS = "dossier_redactions"; private static final String IMPORTED_REDACTION = "imported_redaction"; private static final String PII = "PII"; + private static final String ROTATE_SIMPLE = "RotateSimple"; @Autowired private RedactionController redactionController; @@ -217,25 +219,26 @@ public class RedactionIntegrationTest { private void mockDictionaryCalls(Long version) { - when(dictionaryClient.getDictionaryForType(VERTEBRATE + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(VERTEBRATE, false)); - when(dictionaryClient.getDictionaryForType(ADDRESS + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(ADDRESS, false)); - when(dictionaryClient.getDictionaryForType(AUTHOR + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(AUTHOR, false)); - when(dictionaryClient.getDictionaryForType(SPONSOR + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(SPONSOR, false)); - when(dictionaryClient.getDictionaryForType(NO_REDACTION_INDICATOR + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(NO_REDACTION_INDICATOR, false)); - when(dictionaryClient.getDictionaryForType(REDACTION_INDICATOR + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(REDACTION_INDICATOR, false)); - when(dictionaryClient.getDictionaryForType(HINT_ONLY + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(HINT_ONLY, false)); - when(dictionaryClient.getDictionaryForType(MUST_REDACT + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(MUST_REDACT, false)); - when(dictionaryClient.getDictionaryForType(PUBLISHED_INFORMATION + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(PUBLISHED_INFORMATION, false)); - when(dictionaryClient.getDictionaryForType(TEST_METHOD + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(TEST_METHOD, false)); - when(dictionaryClient.getDictionaryForType(PII + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(PII, false)); - when(dictionaryClient.getDictionaryForType(PURITY + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(PURITY, false)); - when(dictionaryClient.getDictionaryForType(IMAGE + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(IMAGE, false)); - when(dictionaryClient.getDictionaryForType(OCR + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(OCR, false)); - when(dictionaryClient.getDictionaryForType(LOGO + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(LOGO, false)); - when(dictionaryClient.getDictionaryForType(SIGNATURE + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(SIGNATURE, false)); - when(dictionaryClient.getDictionaryForType(FORMULA + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(FORMULA, false)); - when(dictionaryClient.getDictionaryForType(DOSSIER_REDACTIONS + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(DOSSIER_REDACTIONS, true)); - when(dictionaryClient.getDictionaryForType(IMPORTED_REDACTION + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).thenReturn(getDictionaryResponse(IMPORTED_REDACTION, true)); + when(dictionaryClient.getDictionaryForType(VERTEBRATE + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(VERTEBRATE, false)); + when(dictionaryClient.getDictionaryForType(ADDRESS + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(ADDRESS, false)); + when(dictionaryClient.getDictionaryForType(AUTHOR + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(AUTHOR, false)); + when(dictionaryClient.getDictionaryForType(SPONSOR + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(SPONSOR, false)); + when(dictionaryClient.getDictionaryForType(NO_REDACTION_INDICATOR + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(NO_REDACTION_INDICATOR, false)); + when(dictionaryClient.getDictionaryForType(REDACTION_INDICATOR + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(REDACTION_INDICATOR, false)); + when(dictionaryClient.getDictionaryForType(HINT_ONLY + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(HINT_ONLY, false)); + when(dictionaryClient.getDictionaryForType(MUST_REDACT + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(MUST_REDACT, false)); + when(dictionaryClient.getDictionaryForType(PUBLISHED_INFORMATION + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(PUBLISHED_INFORMATION, false)); + when(dictionaryClient.getDictionaryForType(TEST_METHOD + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(TEST_METHOD, false)); + when(dictionaryClient.getDictionaryForType(PII + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(PII, false)); + when(dictionaryClient.getDictionaryForType(PURITY + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(PURITY, false)); + when(dictionaryClient.getDictionaryForType(IMAGE + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(IMAGE, false)); + when(dictionaryClient.getDictionaryForType(OCR + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(OCR, false)); + when(dictionaryClient.getDictionaryForType(LOGO + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(LOGO, false)); + when(dictionaryClient.getDictionaryForType(SIGNATURE + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(SIGNATURE, false)); + when(dictionaryClient.getDictionaryForType(FORMULA + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(FORMULA, false)); + when(dictionaryClient.getDictionaryForType(ROTATE_SIMPLE + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(ROTATE_SIMPLE, false)); + when(dictionaryClient.getDictionaryForType(DOSSIER_REDACTIONS + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(DOSSIER_REDACTIONS, true)); + when(dictionaryClient.getDictionaryForType(IMPORTED_REDACTION + ":" + TEST_DOSSIER_TEMPLATE_ID, version)).then((Answer) invocation -> getDictionaryResponse(IMPORTED_REDACTION, true)); } @@ -851,6 +854,33 @@ public class RedactionIntegrationTest { System.out.println("numberOfPages: " + result.getNumberOfPages()); } + @Test + public void testRotationsSimple() throws IOException { + loadOnlyDictionaryForSimpleFile(); + mockDictionaryCalls(null); + mockDictionaryCalls(0L); + + System.out.println("testTableRedaction"); + long start = System.currentTimeMillis(); + + AnalyzeRequest request = prepareStorage("files/new/RotateTestFileSimple.pdf"); + analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId())); + AnalyzeResult result = analyzeService.analyze(request); + + AnnotateResponse annotateResponse = annotationService.annotate(AnnotateRequest.builder() + .dossierId(TEST_DOSSIER_ID) + .fileId(TEST_FILE_ID) + .build()); + + try (FileOutputStream fileOutputStream = new FileOutputStream(OsUtils.getTemporaryDirectory() + "/AnnotatedSimple.pdf")) { + fileOutputStream.write(annotateResponse.getDocument()); + } + long end = System.currentTimeMillis(); + + System.out.println("duration: " + (end - start)); + System.out.println("numberOfPages: " + result.getNumberOfPages()); + } + @Test public void testFindDictionaryEntryInResizedEntryPosition() throws IOException { @@ -1474,6 +1504,15 @@ public class RedactionIntegrationTest { } + private void loadOnlyDictionaryForSimpleFile() { + dictionary.clear(); + dictionary.computeIfAbsent(ROTATE_SIMPLE, v -> new ArrayList<>()) + .addAll(ResourceLoader.load("dictionaries/RotateTestFileSimple.txt") + .stream() + .map(this::cleanDictionaryEntry) + .collect(Collectors.toSet())); + } + private static String loadFromClassPath(String path) { @@ -1532,6 +1571,7 @@ public class RedactionIntegrationTest { typeColorMap.put(FORMULA, "#ffe187"); typeColorMap.put(SIGNATURE, "#ffe187"); typeColorMap.put(IMPORTED_REDACTION, "#fcfbe6"); + typeColorMap.put(ROTATE_SIMPLE, "#66ccff"); hintTypeMap.put(VERTEBRATE, true); hintTypeMap.put(ADDRESS, false); @@ -1552,6 +1592,7 @@ public class RedactionIntegrationTest { hintTypeMap.put(SIGNATURE, false); hintTypeMap.put(DOSSIER_REDACTIONS, false); hintTypeMap.put(IMPORTED_REDACTION, false); + hintTypeMap.put(ROTATE_SIMPLE, false); caseInSensitiveMap.put(VERTEBRATE, true); caseInSensitiveMap.put(ADDRESS, false); @@ -1572,6 +1613,7 @@ public class RedactionIntegrationTest { caseInSensitiveMap.put(FORMULA, true); caseInSensitiveMap.put(DOSSIER_REDACTIONS, false); caseInSensitiveMap.put(IMPORTED_REDACTION, false); + caseInSensitiveMap.put(ROTATE_SIMPLE, true); recommendationTypeMap.put(VERTEBRATE, false); recommendationTypeMap.put(ADDRESS, false); @@ -1592,6 +1634,7 @@ public class RedactionIntegrationTest { recommendationTypeMap.put(LOGO, false); recommendationTypeMap.put(DOSSIER_REDACTIONS, false); recommendationTypeMap.put(IMPORTED_REDACTION, false); + recommendationTypeMap.put(ROTATE_SIMPLE, false); rankTypeMap.put(PURITY, 155); rankTypeMap.put(PII, 150); @@ -1612,6 +1655,7 @@ public class RedactionIntegrationTest { rankTypeMap.put(FORMULA, 26); rankTypeMap.put(DOSSIER_REDACTIONS, 200); rankTypeMap.put(IMPORTED_REDACTION, 200); + rankTypeMap.put(ROTATE_SIMPLE, 150); colors.setSkippedColor("#cccccc"); colors.setRequestAddColor("#04b093"); @@ -1661,7 +1705,6 @@ public class RedactionIntegrationTest { .build(); } - private String cleanDictionaryEntry(String entry) { return TextNormalizationUtilities.removeHyphenLineBreaks(entry).replaceAll("\\n", " "); @@ -1669,6 +1712,8 @@ public class RedactionIntegrationTest { private List toDictionaryEntry(List entries) { + if (entries == null) + entries = Collections.emptyList(); List dictionaryEntries = new ArrayList<>(); entries.forEach(entry -> { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/RotateTestFileSimple.txt b/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/RotateTestFileSimple.txt new file mode 100644 index 00000000..6cd6f75d --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/RotateTestFileSimple.txt @@ -0,0 +1,16 @@ +annotation Rotation 0 Direction 0 +annotation Rotation 0 Direction 90 +annotation Rotation 0 Direction 180 +annotation Rotation 0 Direction 270 +annotation Rotation 90 Direction 0 +annotation Rotation 90 Direction 90 +annotation Rotation 90 Direction 180 +annotation Rotation 90 Direction 270 +annotation Rotation 180 Direction 0 +annotation Rotation 180 Direction 90 +annotation Rotation 180 Direction 180 +annotation Rotation 180 Direction 270 +annotation Rotation 270 Direction 0 +annotation Rotation 270 Direction 90 +annotation Rotation 270 Direction 180 +annotation Rotation 270 Direction 270 \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/new/RotateTestFileSimple.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/new/RotateTestFileSimple.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cf04a1d361a8508e10726d4d3c89986ae772a31d GIT binary patch literal 56603 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⪚wl7Fx{z^yxjHG^*Eq83FL>3Q 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

LrjQkG8XYOm$)U^7D#kIonPwqOD2br_l)3^KH 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