From 75605575654689e6c87312cbf962b79502cca6bc Mon Sep 17 00:00:00 2001 From: sebo <sebastian.bergandy@external.mgm-cp.com> Date: Sat, 15 Mar 2025 09:15:28 +0100 Subject: [PATCH] OZG-7473 add validation messages and change collection Sub task: OZG-7933 --- .../admin/reporting/AggregationMapping.java | 20 +++++++++++-------- .../reporting/AggregationMappingMapper.java | 2 +- ...ngAggregationManagerSettingDtoService.java | 11 +++++----- ...gationMappingEnvironmentSettingITCase.java | 2 +- .../AggregationMappingRepositoryITCase.java | 2 +- .../AggregationMappingTestFactory.java | 2 ++ ...gregationManagerSettingDtoServiceTest.java | 20 +++++++++---------- .../reporting/ReportingSettingITCase.java | 4 ++-- src/test/resources/reporting/request.json | 1 + 9 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/main/java/de/ozgcloud/admin/reporting/AggregationMapping.java b/src/main/java/de/ozgcloud/admin/reporting/AggregationMapping.java index 532c3ad6..888b17da 100644 --- a/src/main/java/de/ozgcloud/admin/reporting/AggregationMapping.java +++ b/src/main/java/de/ozgcloud/admin/reporting/AggregationMapping.java @@ -23,6 +23,8 @@ */ package de.ozgcloud.admin.reporting; +import static de.ozgcloud.admin.common.errorhandling.ValidationMessageCodes.*; + import java.util.List; import jakarta.validation.Valid; @@ -41,26 +43,28 @@ import lombok.Singular; import lombok.ToString; import lombok.extern.jackson.Jacksonized; -@Document("settings") +@Document(AggregationMapping.COLLECTION_NAME) @TypeAlias(AggregationMapping.TYPE_ALIAS) @Jacksonized @Builder @Getter @ToString public class AggregationMapping { + static final String COLLECTION_NAME = "aggregationMapping"; public static final String TYPE_ALIAS = "AggregationMapping"; @Id @JsonIgnore private String id; - @Builder.Default - private String name = "aggregationMapping"; + + @NotEmpty(message = FIELD_IS_EMPTY) + private String name; @Valid private FormIdentifier formIdentifier; - @NotEmpty + @NotEmpty(message = FIELD_IS_EMPTY) @Singular @Valid private List<FieldMapping> mappings; @@ -69,9 +73,9 @@ public class AggregationMapping { @Getter @ToString static class FieldMapping { - @NotBlank + @NotBlank(message = FIELD_IS_EMPTY) private String sourcePath; -// @NotBlank //TODO reactivate in OZG-7668 + @NotBlank(message = FIELD_IS_EMPTY) private String targetPath; } @@ -79,9 +83,9 @@ public class AggregationMapping { @Getter @ToString static class FormIdentifier { - @NotBlank + @NotBlank(message = FIELD_IS_EMPTY) private String formEngineName; - @NotBlank + @NotBlank(message = FIELD_IS_EMPTY) private String formId; } } diff --git a/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingMapper.java b/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingMapper.java index 81a25c30..90409fd5 100644 --- a/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingMapper.java +++ b/src/main/java/de/ozgcloud/admin/reporting/AggregationMappingMapper.java @@ -34,5 +34,5 @@ public interface AggregationMappingMapper { @Mapping(target = "fieldMapping", ignore = true) @Mapping(target = "fieldMappings", source = "mappings") - AggregationMappingDto toMapping(AggregationMapping setting); + AggregationMappingDto toMapping(AggregationMapping aggregationMapping); } diff --git a/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java b/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java index 0e0ad48f..afaaaed6 100644 --- a/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java +++ b/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java @@ -23,12 +23,11 @@ */ package de.ozgcloud.admin.reporting; -import java.util.stream.Stream; +import java.util.List; import de.ozgcloud.admin.common.DtoService; import de.ozgcloud.admin.common.SettingDtoService; import de.ozgcloud.admin.setting.SettingConstants; -import de.ozgcloud.admin.setting.SettingRepository; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @@ -37,16 +36,16 @@ class ReportingAggregationManagerSettingDtoService implements SettingDtoService private final AggregationMappingMapper mapper; - private final SettingRepository repository; + private final AggregationMappingRepository repository; @Override public ReportingAggregationManagerSettingDto getDataTransferObject() { - return mapToDto(repository.findByType("AggregationMapping", AggregationMapping.class)); + return mapToDto(repository.findAll()); } - ReportingAggregationManagerSettingDto mapToDto(Stream<AggregationMapping> settings) { + ReportingAggregationManagerSettingDto mapToDto(List<AggregationMapping> aggregationMappings) { return ReportingAggregationManagerSettingDto.builder() - .aggregationMappings(settings.map(mapper::toMapping).toList()) + .aggregationMappings(aggregationMappings.stream().map(mapper::toMapping).toList()) .build(); } diff --git a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java index 0457a9e3..6425ab46 100644 --- a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java +++ b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java @@ -98,7 +98,7 @@ public class AggregationMappingEnvironmentSettingITCase { .targetPath(YamlTestFactory.TARGET_PATH_2_2).build()) .build(); - mongoOperations.dropCollection("settings"); + mongoOperations.dropCollection(AggregationMapping.COLLECTION_NAME); mongoOperations.save(aggregationMapping1); mongoOperations.save(aggregationMapping2); } diff --git a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingRepositoryITCase.java b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingRepositoryITCase.java index a92bcc6b..8012939c 100644 --- a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingRepositoryITCase.java +++ b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingRepositoryITCase.java @@ -47,7 +47,7 @@ class AggregationMappingRepositoryITCase { @BeforeEach void dropCollection() { - operations.dropCollection("settings"); + operations.dropCollection(AggregationMapping.COLLECTION_NAME); } @Test diff --git a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingTestFactory.java b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingTestFactory.java index 5d41bec2..e005eda5 100644 --- a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingTestFactory.java +++ b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingTestFactory.java @@ -31,6 +31,7 @@ import de.ozgcloud.admin.reporting.AggregationMapping.FormIdentifier; public class AggregationMappingTestFactory { public static final String ID = UUID.randomUUID().toString(); + public static final String NAME = "Test Auswertung"; public static final String FORM_ENGINE_NAME = "A12"; public static final String FORM_ID = "42"; @@ -44,6 +45,7 @@ public class AggregationMappingTestFactory { public static AggregationMapping.AggregationMappingBuilder createBuilder() { return AggregationMapping.builder() .id(UUID.randomUUID().toString()) + .name(NAME) .formIdentifier(FormIdentifier.builder() .formEngineName(FORM_ENGINE_NAME) .formId(FORM_ID) diff --git a/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java b/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java index 38b5d5e3..41286953 100644 --- a/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java +++ b/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java @@ -27,7 +27,7 @@ import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import java.util.stream.Stream; +import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; @@ -38,8 +38,6 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; -import de.ozgcloud.admin.setting.SettingRepository; - class ReportingAggregationManagerSettingDtoServiceTest { @Spy @@ -49,7 +47,7 @@ class ReportingAggregationManagerSettingDtoServiceTest { @Mock private AggregationMappingMapper mapper; @Mock - private SettingRepository repository; + private AggregationMappingRepository repository; @Nested class TestMapToDto { @@ -62,14 +60,14 @@ class ReportingAggregationManagerSettingDtoServiceTest { @Test void shouldCallMapper() { var mapping = AggregationMappingTestFactory.create(); - service.mapToDto(Stream.of(mapping)); + service.mapToDto(List.of(mapping)); verify(mapper).toMapping(mapping); } @Test void shouldBuildDto() { - var dto = service.mapToDto(Stream.of(AggregationMappingTestFactory.create())); + var dto = service.mapToDto(List.of(AggregationMappingTestFactory.create())); assertThat(dto).usingRecursiveComparison().isEqualTo(ReportingAggregationMAnagerSettingDtoTestFactory.create()); } @@ -79,7 +77,7 @@ class ReportingAggregationManagerSettingDtoServiceTest { class TestGetDataTransferObject { @Captor - private ArgumentCaptor<Stream<AggregationMapping>> streamCaptor; + private ArgumentCaptor<List<AggregationMapping>> listCaptor; @BeforeEach void disableMapToDtoFunction() { @@ -90,18 +88,18 @@ class ReportingAggregationManagerSettingDtoServiceTest { void shouldCallRepository() { service.getDataTransferObject(); - verify(repository).findByType(AggregationMapping.TYPE_ALIAS, AggregationMapping.class); + verify(repository).findAll(); } @Test void shouldCallMapToDto() { AggregationMapping mapping = AggregationMappingTestFactory.create(); - when(repository.findByType(any(), any())).thenReturn(Stream.of(mapping)); + when(repository.findAll()).thenReturn(List.of(mapping)); service.getDataTransferObject(); - verify(service).mapToDto(streamCaptor.capture()); - assertThat(streamCaptor.getValue()).contains(mapping); + verify(service).mapToDto(listCaptor.capture()); + assertThat(listCaptor.getValue()).contains(mapping); } } diff --git a/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java index 45942aee..1df9ae40 100644 --- a/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java +++ b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java @@ -56,7 +56,7 @@ class ReportingSettingITCase { @BeforeEach void clearDatabase() { - mongoOperations.dropCollection("settings"); + mongoOperations.dropCollection(AggregationMapping.COLLECTION_NAME); } @Test @@ -110,7 +110,7 @@ class ReportingSettingITCase { .contentType(MediaType.APPLICATION_JSON).content(TestUtils.loadTextFile("reporting/request.json"))) .andExpect(status().isCreated()); - var collection = mongoOperations.getCollection("settings"); + var collection = mongoOperations.getCollection(AggregationMapping.COLLECTION_NAME); assertThat(collection.countDocuments()).isEqualTo(1); var mapping = mongoOperations.findAll(AggregationMapping.class).getFirst(); assertThat(mapping).usingRecursiveComparison().ignoringFields("id").isEqualTo(AggregationMappingTestFactory.create()); diff --git a/src/test/resources/reporting/request.json b/src/test/resources/reporting/request.json index c2db9de8..7bae80ab 100644 --- a/src/test/resources/reporting/request.json +++ b/src/test/resources/reporting/request.json @@ -1,4 +1,5 @@ { + "name": "Test Auswertung", "formIdentifier": { "formEngineName": "A12", "formId": "42" -- GitLab