From 996aa6f35c9b901f5b921474422ff409e1c89487 Mon Sep 17 00:00:00 2001 From: maverickstuder Date: Thu, 5 Dec 2024 14:44:31 +0100 Subject: [PATCH] RED-9056: Change flag name and decline requests except dossierDictionaryOnly is true --- .../integration/tests/DictionaryTest.java | 85 +++++++++++++++++-- 1 file changed, 80 insertions(+), 5 deletions(-) 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 09d9d5698..39f6b06c5 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 @@ -1183,7 +1183,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { var type = dictionaryClient.addType(createTypeValue); - List customTypes = dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), false).getTypes() + List customTypes = dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), false).getTypes() .stream() .filter(t -> !t.isSystemManaged()) .toList(); @@ -1213,7 +1213,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { @Test - void testRecreateTypeAndCheckMergedDictionary() { + void testRecreateTypeAndCheckMergedDictionary() { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate, "TestDossier"); @@ -1240,7 +1240,10 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { UpdateEntries updateEntries = new UpdateEntries(newDossierEntries, allEntries); dictionaryClient.updateEntries(type.getType(), type.getDossierTemplateId(), updateEntries, dossier.getId(), DictionaryEntryType.ENTRY); - List deleted = entryRepository.findAll().stream().filter(DictionaryEntryEntity::isDeleted).toList(); + List deleted = entryRepository.findAll() + .stream() + .filter(DictionaryEntryEntity::isDeleted) + .toList(); assertEquals(3, deleted.size()); var updatedDossierDictionary = dictionaryClient.getDictionaryForType(type.getType(), dossierTemplate.getId(), dossier.getId()); @@ -1257,7 +1260,10 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertEquals(2, deletedType1Entities.size()); - deleted = entryRepository.findAll().stream().filter(DictionaryEntryEntity::isDeleted).toList(); + deleted = entryRepository.findAll() + .stream() + .filter(DictionaryEntryEntity::isDeleted) + .toList(); assertEquals(2, deleted.size()); // recreation @@ -1265,7 +1271,10 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { dictionaryClient.addEntry(type2.getType(), type2.getDossierTemplateId(), templateEntries, false, null, DictionaryEntryType.ENTRY); - deleted = entryRepository.findAll().stream().filter(DictionaryEntryEntity::isDeleted).toList(); + deleted = entryRepository.findAll() + .stream() + .filter(DictionaryEntryEntity::isDeleted) + .toList(); assertEquals(0, deleted.size()); deletedType1Entities = typeRepository.findAllTypesByDossierTemplateIdOrDossierId(dossierTemplate.getId(), dossier.getId()) @@ -1292,6 +1301,72 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { } + @Test + public void testChangeFlagsSuccessful() { + + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + var dossier1 = dossierTesterAndProvider.provideTestDossier(dossierTemplate, "Dossier1"); + + var type1 = dictionaryClient.addType(CreateTypeValue.builder() + .type("test_change_flags_true") + .label("Test Change Flags True") + .hexColor("#123456") + .rank(100) + .hint(false) + .hasDictionary(true) + .caseInsensitive(false) + .recommendation(false) + .addToDictionaryAction(false) + .dossierTemplateId(dossierTemplate.getId()) + .dossierDictionaryOnly(true) + .build()); + dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier1.getId(), false); + + + dictionaryClient.changeFlags(type1.getType(), dossierTemplate.getId(), dossier1.getId(), true); + + String compositeTypeId1 = type1.getType() + ":" + dossierTemplate.getId() + ":" + dossier1.getId(); + var updatedTypeEntity1 = typeRepository.findById(compositeTypeId1) + .orElseThrow(() -> new AssertionError("Type entity not found in repository")); + + assertThat(updatedTypeEntity1.isAddToDictionaryAction()).isTrue(); + } + + + @Test + public void testChangeFlagsUnsuccessful() { + + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + var dossier2 = dossierTesterAndProvider.provideTestDossier(dossierTemplate, "Dossier2"); + + var type2 = dictionaryClient.addType(CreateTypeValue.builder() + .type("test_change_flags_false") + .label("Test Change Flags False") + .hexColor("#654321") + .rank(101) + .hint(false) + .hasDictionary(true) + .caseInsensitive(false) + .recommendation(false) + .addToDictionaryAction(false) + .dossierTemplateId(dossierTemplate.getId()) + .dossierDictionaryOnly(false) + .build()); + dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier2.getId(), false); + + + assertThatThrownBy(() -> dictionaryClient.changeFlags(type2.getType(), dossierTemplate.getId(), dossier2.getId(), true)) + .isInstanceOf(FeignException.BadRequest.class) + .hasMessageContaining("The addToDictionaryAction flag can only be adjusted for dossierDictionaryOnly-types."); + + String compositeTypeId2 = type2.getType() + ":" + dossierTemplate.getId() + ":" + dossier2.getId(); + var typeEntity2 = typeRepository.findById(compositeTypeId2) + .orElseThrow(() -> new AssertionError("Type entity not found in repository")); + + assertThat(typeEntity2.isAddToDictionaryAction()).isFalse(); + } + + private static final class ListContentWithoutOrderAndWithoutDuplicatesComparator implements Comparator> { @SuppressWarnings("SuspiciousMethodCalls")