From c0b01d202b1b6065afa3c4278302ff0186579eeb Mon Sep 17 00:00:00 2001 From: devplant Date: Tue, 21 Mar 2023 15:02:11 +0200 Subject: [PATCH] RED-6216- Allow add-to-dict for expressions consisting of less than 2 characters - remove limitation of at least 2 characters for expression - add to stopwords all ascii printable characters (lower case) --- .../validation/DictionaryValidator.java | 5 +-- .../src/main/resources/files/stopwords.txt | 44 ++++++++++++++++++- .../integration/tests/DictionaryTest.java | 41 ++++++++++++++++- 3 files changed, 84 insertions(+), 6 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/validation/DictionaryValidator.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/validation/DictionaryValidator.java index 5d2716955..d9602e692 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/validation/DictionaryValidator.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/validation/DictionaryValidator.java @@ -11,7 +11,6 @@ import lombok.experimental.UtilityClass; public class DictionaryValidator { public final String EMPTY_MSG = "%s is empty."; - public final String MIN_LENGTH_MSG = "%s should contain at least 2 letters."; public final String COLOR_VALUE_MSG = "Invalid HEX color"; public final String BOOLEAN_MSG = "Boolean value for %s not set."; @@ -27,10 +26,8 @@ public class DictionaryValidator { if (StringUtils.isBlank(value)) { return Optional.of(String.format(EMPTY_MSG, valueType.name())); } + // no need to test the length of the value (at least 1 character is acceptable for non-latin words - if (value.strip().length() < 2) { - return Optional.of(String.format(MIN_LENGTH_MSG, valueType.name())); - } return Optional.empty(); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/files/stopwords.txt b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/files/stopwords.txt index 26c241855..e78881e3b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/files/stopwords.txt +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/files/stopwords.txt @@ -664,4 +664,46 @@ yourself yourselves you've z -zero \ No newline at end of file +zero +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +@ +[ +\ +] +^ +_ +` +{ +| +} +~ \ No newline at end of file diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java index 1c7a1cabf..af74824ce 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java @@ -100,6 +100,45 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { } } + @Test + public void testAddEntriesWithStopWord2() { + + var dossier = dossierTesterAndProvider.provideTestDossier(); + var typeId = "dossier_redaction"; + var entries = new ArrayList(); + entries.add("age"); + entries.add("p"); + + try { + dictionaryClient.addEntry(typeId, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + } catch (FeignException e) { + assertThat(e.status()).isEqualTo(400); + } + entries.remove(1); + entries.add("5"); + try { + dictionaryClient.addEntry(typeId, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + } catch (FeignException e) { + assertThat(e.status()).isEqualTo(400); + } + entries.remove(1); + entries.add("12"); + try { + dictionaryClient.addEntry(typeId, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + } catch (FeignException e) { + assertThat(e.status()).isEqualTo(400); + } + entries.remove(1); + entries.add(";"); + try { + dictionaryClient.addEntry(typeId, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + } catch (FeignException e) { + assertThat(e.status()).isEqualTo(400); + } + entries.add("шин"); + dictionaryClient.addEntry(typeId, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + } + @Test public void testAddWordMultipleTimes() { @@ -278,7 +317,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { dictionaryClient.deleteType(createdType.getType(), createdType.getDossierTemplateId(),null); assertThat(dictionaryClient.getAllTypes(createdType.getDossierTemplateId(),null,false).getTypes().size()).isEqualTo(0); - createdType = dictionaryClient.addType(type,null); + dictionaryClient.addType(type,null); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);