From 5cbebaf19505bf316ce981ff481fda0803879693 Mon Sep 17 00:00:00 2001 From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de> Date: Tue, 10 Sep 2024 13:26:39 +0200 Subject: [PATCH] OZG-6240 KOP-2589 adjust XtaMessageService for TransportReports --- .../xta/test/app/service/XtaMessageService.java | 11 ++++++++--- .../xta/test/app/service/XtaMessageServiceTest.java | 10 ++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/ozgcloud/xta/test/app/service/XtaMessageService.java b/src/main/java/de/ozgcloud/xta/test/app/service/XtaMessageService.java index 8e4a953..2d663d6 100644 --- a/src/main/java/de/ozgcloud/xta/test/app/service/XtaMessageService.java +++ b/src/main/java/de/ozgcloud/xta/test/app/service/XtaMessageService.java @@ -23,8 +23,11 @@ public class XtaMessageService { private final Environment environment; public boolean sendMessage(XtaMessage message) { - messageRepository.save(message); - return true; + if (transportReportRepository.add(message.metaData())) { + messageRepository.save(message); + return true; + } + return false; } public XtaMessageMetaDataListing getStatusList(XtaMessageMetaDataListingRequest listingRequest) { @@ -52,10 +55,12 @@ public class XtaMessageService { } public boolean closeMessage(XtaCloseRequest request) { - return messageRepository.deleteByMessageIdAndReaderIdentifierValue( + var isDeleted = messageRepository.deleteByMessageIdAndReaderIdentifierValue( request.messageId(), request.clientIdentifier().value() ); + var isClosed = transportReportRepository.setClosedStatus(request.messageId()); + return isDeleted && isClosed; } public Optional<XtaTransportReport> getTransportReport(XtaGetTransportReportRequest request) { diff --git a/src/test/java/de/ozgcloud/xta/test/app/service/XtaMessageServiceTest.java b/src/test/java/de/ozgcloud/xta/test/app/service/XtaMessageServiceTest.java index 14bef27..e4daf69 100644 --- a/src/test/java/de/ozgcloud/xta/test/app/service/XtaMessageServiceTest.java +++ b/src/test/java/de/ozgcloud/xta/test/app/service/XtaMessageServiceTest.java @@ -62,6 +62,7 @@ public class XtaMessageServiceTest { @Test void shouldSaveMessage() { + when(transportReportRepository.add(message.metaData())).thenReturn(true); message = XtaMessageTestFactory.create(MESSAGE_ID); service.sendMessage(message); @@ -207,6 +208,7 @@ public class XtaMessageServiceTest { when(messageRepository.deleteByMessageIdAndReaderIdentifierValue( request.messageId(), request.clientIdentifier().value()) ).thenReturn(deleted); + when(transportReportRepository.setClosedStatus(request.messageId())).thenReturn(deleted); boolean result = service.closeMessage(request); @@ -229,8 +231,8 @@ public class XtaMessageServiceTest { .messageId(MESSAGE_ID_1) .clientIdentifier(READER_IDENTIFIER) .build(); - private static final Predicate<XtaMessage> IS_AUTHOR_OR_READER = m -> true; - private static final Predicate<XtaMessage> IS_NOT_AUTHOR_OR_READER = m -> false; + private static final Predicate<XtaTransportReport> IS_AUTHOR_OR_READER = m -> true; + private static final Predicate<XtaTransportReport> IS_NOT_AUTHOR_OR_READER = m -> false; @Mock XtaTransportReport report; @@ -239,7 +241,7 @@ public class XtaMessageServiceTest { @Test void shouldReturn() { when(transportReportRepository.get(MESSAGE_ID_1)).thenReturn(Optional.of(report)); - doReturn(IS_AUTHOR_OR_READER).when(service).isAuthorOrReaderOfMessage(READER_IDENTIFIER.value()); + doReturn(IS_AUTHOR_OR_READER).when(service).isAuthorOrReaderOfTransportReport(READER_IDENTIFIER.value()); var result = service.getTransportReport(GET_TRANSPORT_REPORT_REQUEST); @@ -260,7 +262,7 @@ public class XtaMessageServiceTest { @Test void shouldReturnEmptyIfNotAuthorOrReader() { when(transportReportRepository.get(MESSAGE_ID_1)).thenReturn(Optional.of(report)); - doReturn(IS_NOT_AUTHOR_OR_READER).when(service).isAuthorOrReaderOfMessage(READER_IDENTIFIER.value()); + doReturn(IS_NOT_AUTHOR_OR_READER).when(service).isAuthorOrReaderOfTransportReport(READER_IDENTIFIER.value()); var result = service.getTransportReport(GET_TRANSPORT_REPORT_REQUEST); -- GitLab