From 7ce90c19869bd3a945c89f6e17089d26d7e1bce3 Mon Sep 17 00:00:00 2001 From: maverickstuder Date: Wed, 18 Sep 2024 12:00:31 +0200 Subject: [PATCH] RED-9925: 500 when creating justification without technical name or name --- .../LegalBasisMappingPersistenceService.java | 12 ++++++++++-- .../integration/tests/LegalBasisTest.java | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java index ea32e21bb..178c32de1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java @@ -5,6 +5,7 @@ import static com.knecon.fforesight.databasetenantcommons.providers.utils.MagicC import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; @@ -74,16 +75,23 @@ public class LegalBasisMappingPersistenceService { @Transactional public void addOrUpdateLegalBasis(String dossierTemplateId, LegalBasis legalBasis) { + if (legalBasis.getTechnicalName() == null) { + throw new BadRequestException("Can not add or update legal basis in dossier template because technical name it is not set."); + } + if (legalBasis.getName() == null) { + throw new BadRequestException("Can not add or update legal basis in dossier template because name it is not set."); + } + var mapping = getLegalBasisMappingOrCreate(dossierTemplateId); Optional existingBasisByTechnicalName = mapping.getLegalBasis() .stream() - .filter(l -> l.getTechnicalName().equals(legalBasis.getTechnicalName())) + .filter(l -> Objects.equals(l.getTechnicalName(), legalBasis.getTechnicalName())) .findAny(); Optional existingBasisByName = mapping.getLegalBasis() .stream() - .filter(l -> l.getName().equals(legalBasis.getName())) + .filter(l -> Objects.equals(l.getName(), legalBasis.getName())) .findAny(); if (existingBasisByTechnicalName.isPresent() && existingBasisByName.isPresent()) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java index 704a81455..1ae5de781 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java @@ -1,6 +1,8 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.ArrayList; import java.util.stream.Collectors; @@ -76,6 +78,23 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest { legalBasisClient.setLegalBasisMapping(Lists.newArrayList(), dossierTemplate.getId()); assertThat(legalBasisClient.getLegalBasisMapping(dossierTemplate.getId())).isEmpty(); + legalBasis = LegalBasis.builder().name("test 4").description(null).reason("test ").technicalName("test 4").build(); + legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis); + mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); + assertThat(mapping.size()).isEqualTo(1); + + legalBasis = LegalBasis.builder().name("test 5").description("test 5").reason(null).technicalName("test 5").build(); + legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis); + mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); + assertThat(mapping.size()).isEqualTo(2); + + LegalBasis finalLegalBasis2 = LegalBasis.builder().name(null).description("test").reason("test").technicalName("test").build(); + var e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), finalLegalBasis2)); + assertEquals(e.status(), 400); + + LegalBasis finalLegalBasis1 = LegalBasis.builder().name("test").description("test").reason("test").technicalName(null).build(); + e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), finalLegalBasis1)); + assertEquals(e.status(), 400); } }