RED-9056: Change flag name and decline requests except dossierDictionaryOnly is true

This commit is contained in:
maverickstuder 2024-12-05 14:44:31 +01:00
parent a45440abb8
commit 996aa6f35c

View File

@ -1183,7 +1183,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
var type = dictionaryClient.addType(createTypeValue);
List<TypeValue> customTypes = dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), false).getTypes()
List<TypeValue> 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<DictionaryEntryEntity> deleted = entryRepository.findAll().stream().filter(DictionaryEntryEntity::isDeleted).toList();
List<DictionaryEntryEntity> 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<T> implements Comparator<List<? extends T>> {
@SuppressWarnings("SuspiciousMethodCalls")