From 50d25ead38dc57e923400b5768f79e7682dbe590 Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Mon, 19 Feb 2024 17:33:44 +0100 Subject: [PATCH] RED-8494 - Don't allow creation of File Attributes with empty label --- .../FileAttributeConfigPersistenceService.java | 5 +++++ .../integration/tests/FileAttributeTest.java | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java index 0e6dc63d1..c7bc68852 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; @@ -99,6 +100,10 @@ public class FileAttributeConfigPersistenceService { @Transactional public FileAttributeConfigEntity addOrUpdateFileAttribute(String dossierTemplateId, FileAttributeConfigEntity fileAttributeConfig) { + if (StringUtils.isEmpty(fileAttributeConfig.getLabel())) { + throw new BadRequestException("File Attribute label can not be empty."); + } + var dossierTemplate = dossierTemplateRepository.getOne(dossierTemplateId); fileAttributeConfig.setDossierTemplate(dossierTemplate); if (fileAttributeConfig.isPrimaryAttribute()) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java index b91cf9bad..998b5f991 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java @@ -5,6 +5,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.service. 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 static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.HashMap; @@ -18,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ClassPathResource; import org.springframework.mock.web.MockMultipartFile; -import com.google.common.collect.Sets; import com.iqser.red.service.peristence.v1.server.integration.client.FileAttributeClient; import com.iqser.red.service.peristence.v1.server.integration.client.FileAttributeConfigClient; import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; @@ -29,6 +29,7 @@ import com.iqser.red.service.peristence.v1.server.integration.service.FileTester import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributes; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributesConfig; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileAttributeConfig; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileAttributeType; @@ -311,4 +312,15 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { } + + @SneakyThrows + @Test + public void testFileAttributeWithNoLabel() { + + Dossier dossier = dossierTesterAndProvider.provideTestDossier(); + FeignException exception = assertThrows(FeignException.class, () -> fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), new FileAttributeConfig())); + assertTrue(exception.getMessage().contains("File Attribute label can not be empty.")); + assertEquals(400, exception.status()); + } + }