From 2b73021bf6efc7001a253e9157b523e836277bb2 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Wed, 6 Nov 2024 12:13:56 +0100 Subject: [PATCH] OZG-6949 refactor attribute names --- .../nachricht/AntragraumProxyMapper.java | 3 +- .../nachricht/NachrichtMapper.java | 6 +- .../antragsraum/nachricht/ReplyNachricht.java | 8 +-- .../nachricht/AntragraumProxyMapperTest.java | 63 +++++++++++++++++++ .../nachricht/NachrichtMapperTest.java | 2 +- .../NachrichtenControllerITCase.java | 8 +-- .../nachricht/ReplyNachrichtTestFactory.java | 4 +- 7 files changed, 78 insertions(+), 16 deletions(-) create mode 100644 server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java index 9f6c5022..d88c4a1f 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java @@ -34,7 +34,6 @@ import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcRueckfrageAnswer; @Mapper interface AntragraumProxyMapper { - @Mapping(target = "rueckfrageId", source = "id") @Mapping(target = "answerText", source = "message") @Mapping(target = "attachmentFileId", expression = "java(mapAttachments(nachricht))") AntragraumproxyGrpcRueckfrageAnswer toRestProxyAntwort(ReplyNachricht nachricht); @@ -43,7 +42,7 @@ interface AntragraumProxyMapper { if (Objects.isNull(nachricht.attachments())) { return List.of(); } - + return nachricht.attachments().stream().map(OzgFile::id).toList(); } } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java index 039696e7..f2fec2a8 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java @@ -103,8 +103,8 @@ class NachrichtMapper { return rueckfrage.getAnswers().stream() .map(answer -> { var builder = ReplyNachricht.builder() - .id(rueckfrage.getId()) - .antwortId(answer.getRueckfrageId()) + .id(answer.getRueckfrageId()) + .rueckfrageId(rueckfrage.getId()) .nachrichtEventId(id) .message(answer.getAnswerText()) .attachments(getAttachments(answer.getAttachmentFileId(), answer.getRueckfrageId(), id)); @@ -114,7 +114,7 @@ class NachrichtMapper { public AntragraumproxyGrpcRueckfrageAnswer toRestRueckfrageAnswer(final ReplyNachricht nachricht) { var antwort = new AntragraumproxyGrpcRueckfrageAnswer(); - antwort.setRueckfrageId(nachricht.id()); + antwort.setRueckfrageId(nachricht.rueckfrageId()); antwort.setAnswerText(nachricht.message()); if (Objects.nonNull(nachricht.attachments())) { diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java index d22d0df3..071cc1ad 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java @@ -35,7 +35,7 @@ import lombok.Builder; @Builder(toBuilder = true) record ReplyNachricht( @Size(max = 24, message = "An id is too long") - @Schema(description = "The id of the Rückfrage", + @Schema(description = "The id of the Antwort", name = "id", type = "string", example = "66af924b4f1a2560298b45ab" @@ -43,13 +43,13 @@ record ReplyNachricht( @NotEmpty String id, @Size(max = 24, message = "An id is too long") - @Schema(description = "The id of the Antwort", + @Schema(description = "The id of the Rückfrage", name = "id", type = "string", example = "66af924b4f1a2560298b45ab" ) @NotEmpty - String antwortId, + String rueckfrageId, @Size(max = 36, message = "An id is too long") @Schema(description = "The id of the postfach", name = "postfachId", @@ -81,7 +81,7 @@ record ReplyNachricht( "postfachId='" + postfachId + '\'' + ", nachrichtEventId='" + nachrichtEventId + '\'' + ", id='" + id + '\'' + - ", antwortId='" + antwortId + '\'' + + ", rueckfrageId='" + rueckfrageId + '\'' + ", attachments=" + attachments + ", message=<...masked for privacy..>" + '}'; diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java new file mode 100644 index 00000000..66cad5b1 --- /dev/null +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2023-2024. + * Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ + +package de.ozgcloud.antragsraum.nachricht; + +import static org.assertj.core.api.Assertions.*; + +import java.util.Collections; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mapstruct.factory.Mappers; + +class AntragraumProxyMapperTest { + + private final AntragraumProxyMapper mapper = Mappers.getMapper(AntragraumProxyMapper.class); + + @Nested + class TestToRestProxyAntwort { + private final ReplyNachricht replyNachricht = ReplyNachrichtTestFactory.create(); + + @Test + void shouldHaveRueckfrageId() { + var grpcRueckfrageAnswer = mapper.toRestProxyAntwort(replyNachricht); + + assertThat(grpcRueckfrageAnswer.getRueckfrageId()).isEqualTo(ReplyNachrichtTestFactory.RUECKFRAGE_ID); + } + + @Test + void shouldHaveAnswerText() { + var grpcRueckfrageAnswer = mapper.toRestProxyAntwort(replyNachricht); + + assertThat(grpcRueckfrageAnswer.getAnswerText()).isEqualTo(ReplyNachrichtTestFactory.TEXT); + } + + @Test + void shouldHaveAttachmentFileId() { + var grpcRueckfrageAnswer = mapper.toRestProxyAntwort(replyNachricht); + + assertThat(grpcRueckfrageAnswer.getAttachmentFileId()).isEqualTo(Collections.emptyList()); + } + } + +} \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java index e4b96701..f585a4ec 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java @@ -183,7 +183,7 @@ class NachrichtMapperTest { void shouldMapAnswerNachrichtId() { var nachricht = mapper.fromRestRueckfrage(answeredRueckfrage, NachrichtTestFactory.NACHRICHT_EVENT_ID); - assertThat(nachricht.replyNachrichten().getFirst().antwortId()).isEqualTo(AntragraumproxyGrpcRueckfrageTestFactory.ANSWER_ID); + assertThat(nachricht.replyNachrichten().getFirst().id()).isEqualTo(AntragraumproxyGrpcRueckfrageTestFactory.ANSWER_ID); } @Test diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java index c50db1e2..e56cb39d 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java @@ -230,16 +230,16 @@ public class NachrichtenControllerITCase { class TestSendingInvalidReply { @Test @WithMockUser - void shouldNotSendNachrichtBlankId() throws Exception { - var invalidMsg = ReplyNachrichtTestFactory.createBuilder().id("").build(); + void shouldNotSendNachrichtBlankRueckfrageId() throws Exception { + var invalidMsg = ReplyNachrichtTestFactory.createBuilder().rueckfrageId("").build(); performPutRequest(mapper.writeValueAsString(invalidMsg)).andExpect(status().isBadRequest()); } @Test @WithMockUser - void shouldHandleInvalidId() throws Exception { - var invalidMsg = msg.toBuilder().id("id_that_is_too_long_123456789").build(); + void shouldHandleInvalidRueckfrageId() throws Exception { + var invalidMsg = msg.toBuilder().rueckfrageId("id_that_is_too_long_123456789").build(); performPutRequest(mapper.writeValueAsString(invalidMsg)).andExpect(status().isBadRequest()); } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java index 072cc052..e0b0bf7a 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java @@ -23,7 +23,7 @@ package de.ozgcloud.antragsraum.nachricht; public class ReplyNachrichtTestFactory { public static final String ID = "60af924b4f1a2560298b4567"; - public static final String ANTWORT_ID = "60af924b4f1a2560298b4568"; + public static final String RUECKFRAGE_ID = "60af924b4f1a2560298b4568"; public static final String NACHRICHT_EVENT_ID = "60af924b4f1a2560298b4569"; public static final String TEXT = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam"; @@ -34,7 +34,7 @@ public class ReplyNachrichtTestFactory { static ReplyNachricht.ReplyNachrichtBuilder createBuilder() { return ReplyNachricht.builder() .id(ID) - .antwortId(ANTWORT_ID) + .rueckfrageId(RUECKFRAGE_ID) .nachrichtEventId(NACHRICHT_EVENT_ID) .postfachId(NachrichtTestFactory.POSTFACH_ID) .message(TEXT); -- GitLab