From a06f445328fbcde6dfa71ee1a5ed93383e7ebd1d Mon Sep 17 00:00:00 2001 From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de> Date: Tue, 10 Sep 2024 15:50:10 +0200 Subject: [PATCH] OZG-6240 KOP-2589 ManagementPort getTransportReport --- .../xta/test/app/mapper/ExceptionMapper.java | 6 +++++ .../test/app/server/ManagementPortImpl.java | 9 ++++---- .../xta/test/app/server/MsgBoxPortImpl.java | 10 ++------ .../test/app/mapper/ExceptionMapperTest.java | 7 ++++++ .../app/server/ManagementPortImplTest.java | 23 +++++++++++-------- 5 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/main/java/de/ozgcloud/xta/test/app/mapper/ExceptionMapper.java b/src/main/java/de/ozgcloud/xta/test/app/mapper/ExceptionMapper.java index e9aa816..86ef815 100644 --- a/src/main/java/de/ozgcloud/xta/test/app/mapper/ExceptionMapper.java +++ b/src/main/java/de/ozgcloud/xta/test/app/mapper/ExceptionMapper.java @@ -33,6 +33,12 @@ public interface ExceptionMapper { ); } + default InvalidMessageIDException createInvalidMessageIDException(String messageId, String clientIdentifierValue) { + return createInvalidMessageIDException( + "No message with messageID \"%s\" available for identifier \"%s\"." + .formatted(messageId, clientIdentifierValue)); + } + @Mapping(target = "errorCode", expression = "java( mapCodeFehlernummer(code, name) )") InvalidMessageIDExceptionType mapInvalidMessageIDExceptionType(String code, String name); diff --git a/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java b/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java index e358158..acc98e4 100644 --- a/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java +++ b/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java @@ -18,7 +18,6 @@ import genv3.de.xoev.transport.xta.x211.LookupServiceRequest; import genv3.de.xoev.transport.xta.x211.ManagementPortType; import genv3.de.xoev.transport.xta.x211.ParameterIsNotValidException; import genv3.de.xoev.transport.xta.x211.PermissionDeniedException; -import genv3.de.xoev.transport.xta.x211.TransportReport; import genv3.de.xoev.transport.xta.x211.XTAWSTechnicalProblemException; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -109,11 +108,13 @@ public class ManagementPortImpl implements ManagementPortType { final genv3.eu.osci.ws.x2014.x10.transport.PartyType authorIdentifier) throws XTAWSTechnicalProblemException, InvalidMessageIDException, PermissionDeniedException { log.info("Executing operation getTransportReport"); - TransportReport transportReport = new TransportReport(); + var request = requestMapper.mapXtaGetTransportReportRequest(messageID, authorIdentifier); + requestValidator.validate(request); - // TODO implement + var xtaTransportReport = xtaMessageService.getTransportReport(request) + .orElseThrow(() -> exceptionMapper.createInvalidMessageIDException(request.messageId(), request.clientIdentifier().value())); - return transportReport; + return responseMapper.mapTransportReport(xtaTransportReport); } } diff --git a/src/main/java/de/ozgcloud/xta/test/app/server/MsgBoxPortImpl.java b/src/main/java/de/ozgcloud/xta/test/app/server/MsgBoxPortImpl.java index 6e43533..dc89cb2 100644 --- a/src/main/java/de/ozgcloud/xta/test/app/server/MsgBoxPortImpl.java +++ b/src/main/java/de/ozgcloud/xta/test/app/server/MsgBoxPortImpl.java @@ -50,7 +50,7 @@ public class MsgBoxPortImpl implements MsgBoxPortType { requestValidator.validate(request); var message = messageService.getMessage(request) - .orElseThrow(() -> createInvalidMessageIdException(request.messageId(), request.clientIdentifier().value())); + .orElseThrow(() -> exceptionMapper.createInvalidMessageIDException(request.messageId(), request.clientIdentifier().value())); messageMetaData.value = responseMapper.mapMessageMetaData(message.metaData()); fetchResponseHeader.value = responseMapper.mapMsgBoxResponseTypeFromRequestId( @@ -131,14 +131,8 @@ public class MsgBoxPortImpl implements MsgBoxPortType { requestValidator.validate(request); if (!messageService.closeMessage(request)) { - throw createInvalidMessageIdException(request.messageId(), request.clientIdentifier().value()); + throw exceptionMapper.createInvalidMessageIDException(request.messageId(), request.clientIdentifier().value()); } } - private InvalidMessageIDException createInvalidMessageIdException(String messageId, String clientIdentifierValue) { - return exceptionMapper.createInvalidMessageIDException( - "No message with messageID \"%s\" available for identifier \"%s\"." - .formatted(messageId, clientIdentifierValue)); - } - } diff --git a/src/test/java/de/ozgcloud/xta/test/app/mapper/ExceptionMapperTest.java b/src/test/java/de/ozgcloud/xta/test/app/mapper/ExceptionMapperTest.java index 4279ef9..e032487 100644 --- a/src/test/java/de/ozgcloud/xta/test/app/mapper/ExceptionMapperTest.java +++ b/src/test/java/de/ozgcloud/xta/test/app/mapper/ExceptionMapperTest.java @@ -42,6 +42,13 @@ class ExceptionMapperTest { return mapper.createInvalidMessageIDException(exceptionMessage); } + @DisplayName("should map message id and identifier to message") + @Test + void shouldMapMessageIdAndIdentifier() { + var result = mapper.createInvalidMessageIDException("id-1234", "identifier-5678"); + + assertThat(result.getMessage()).isEqualTo("No message with messageID \"id-1234\" available for identifier \"identifier-5678\"."); + } } @DisplayName("create technical problem exception") diff --git a/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java b/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java index 65287db..2f0e112 100644 --- a/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java +++ b/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java @@ -1,13 +1,18 @@ package de.ozgcloud.xta.test.app.server; -import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.*; -import static org.assertj.core.api.Assertions.*; +import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.MESSAGE_ID; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.Mockito.*; import java.util.Optional; import genv3.de.xoev.transport.xta.x211.InvalidMessageIDException; +import genv3.de.xoev.transport.xta.x211.LookupServiceRequest; +import genv3.de.xoev.transport.xta.x211.LookupServiceResponse; import genv3.de.xoev.transport.xta.x211.TransportReport; +import genv3.eu.osci.ws.x2014.x10.transport.PartyType; +import lombok.SneakyThrows; import org.apache.cxf.ws.addressing.AttributedURIType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -25,10 +30,6 @@ import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest; import de.ozgcloud.xta.test.app.model.XtaTransportReport; import de.ozgcloud.xta.test.app.service.XtaMessageService; import de.ozgcloud.xta.test.app.validation.RequestValidator; -import genv3.de.xoev.transport.xta.x211.LookupServiceRequest; -import genv3.de.xoev.transport.xta.x211.LookupServiceResponse; -import genv3.eu.osci.ws.x2014.x10.transport.PartyType; -import lombok.SneakyThrows; public class ManagementPortImplTest { @@ -135,6 +136,8 @@ public class ManagementPortImplTest { private PartyType authorIdentifier; @Mock private XtaTransportReport xtaTransportReport; + @Mock + private TransportReport transportReport; private XtaGetTransportReportRequest request; @@ -154,7 +157,7 @@ public class ManagementPortImplTest { @BeforeEach void beforeEach() { when(xtaMessageService.getTransportReport(request)).thenReturn(Optional.of(xtaTransportReport)); - when(responseMapper.mapTransportReport(xtaTransportReport)).thenReturn(TRANSPORT_REPORT); + when(responseMapper.mapTransportReport(xtaTransportReport)).thenReturn(transportReport); } @DisplayName("should return") @@ -162,7 +165,7 @@ public class ManagementPortImplTest { void shouldReturn() { var result = getTransportReport(); - assertThat(result).contains(TRANSPORT_REPORT); + assertThat(result).isEqualTo(transportReport); } } @@ -176,8 +179,10 @@ public class ManagementPortImplTest { @Test void shouldThrowException() { when(xtaMessageService.getTransportReport(request)).thenReturn(Optional.empty()); - when(exceptionMapper.createInvalidMessageIDException(any())).thenReturn(exception); + when(exceptionMapper.createInvalidMessageIDException(any(), any())).thenReturn(exception); + assertThatThrownBy(TestGetTransportReport.this::getTransportReport) + .isEqualTo(exception); } } -- GitLab