Skip to content
Snippets Groups Projects
Commit a06f4453 authored by Lukas Malte Monnerjahn's avatar Lukas Malte Monnerjahn
Browse files

OZG-6240 KOP-2589 ManagementPort getTransportReport

parent 4bd021c6
No related branches found
No related tags found
No related merge requests found
...@@ -33,6 +33,12 @@ public interface ExceptionMapper { ...@@ -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) )") @Mapping(target = "errorCode", expression = "java( mapCodeFehlernummer(code, name) )")
InvalidMessageIDExceptionType mapInvalidMessageIDExceptionType(String code, String name); InvalidMessageIDExceptionType mapInvalidMessageIDExceptionType(String code, String name);
......
...@@ -18,7 +18,6 @@ import genv3.de.xoev.transport.xta.x211.LookupServiceRequest; ...@@ -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.ManagementPortType;
import genv3.de.xoev.transport.xta.x211.ParameterIsNotValidException; import genv3.de.xoev.transport.xta.x211.ParameterIsNotValidException;
import genv3.de.xoev.transport.xta.x211.PermissionDeniedException; 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 genv3.de.xoev.transport.xta.x211.XTAWSTechnicalProblemException;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
...@@ -109,11 +108,13 @@ public class ManagementPortImpl implements ManagementPortType { ...@@ -109,11 +108,13 @@ public class ManagementPortImpl implements ManagementPortType {
final genv3.eu.osci.ws.x2014.x10.transport.PartyType authorIdentifier) final genv3.eu.osci.ws.x2014.x10.transport.PartyType authorIdentifier)
throws XTAWSTechnicalProblemException, InvalidMessageIDException, PermissionDeniedException { throws XTAWSTechnicalProblemException, InvalidMessageIDException, PermissionDeniedException {
log.info("Executing operation getTransportReport"); 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);
} }
} }
...@@ -50,7 +50,7 @@ public class MsgBoxPortImpl implements MsgBoxPortType { ...@@ -50,7 +50,7 @@ public class MsgBoxPortImpl implements MsgBoxPortType {
requestValidator.validate(request); requestValidator.validate(request);
var message = messageService.getMessage(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()); messageMetaData.value = responseMapper.mapMessageMetaData(message.metaData());
fetchResponseHeader.value = responseMapper.mapMsgBoxResponseTypeFromRequestId( fetchResponseHeader.value = responseMapper.mapMsgBoxResponseTypeFromRequestId(
...@@ -131,14 +131,8 @@ public class MsgBoxPortImpl implements MsgBoxPortType { ...@@ -131,14 +131,8 @@ public class MsgBoxPortImpl implements MsgBoxPortType {
requestValidator.validate(request); requestValidator.validate(request);
if (!messageService.closeMessage(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));
}
} }
...@@ -42,6 +42,13 @@ class ExceptionMapperTest { ...@@ -42,6 +42,13 @@ class ExceptionMapperTest {
return mapper.createInvalidMessageIDException(exceptionMessage); 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") @DisplayName("create technical problem exception")
......
package de.ozgcloud.xta.test.app.server; package de.ozgcloud.xta.test.app.server;
import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.*; import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.MESSAGE_ID;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.util.Optional; import java.util.Optional;
import genv3.de.xoev.transport.xta.x211.InvalidMessageIDException; 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.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.apache.cxf.ws.addressing.AttributedURIType;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
...@@ -25,10 +30,6 @@ import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest; ...@@ -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.model.XtaTransportReport;
import de.ozgcloud.xta.test.app.service.XtaMessageService; import de.ozgcloud.xta.test.app.service.XtaMessageService;
import de.ozgcloud.xta.test.app.validation.RequestValidator; 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 { public class ManagementPortImplTest {
...@@ -135,6 +136,8 @@ public class ManagementPortImplTest { ...@@ -135,6 +136,8 @@ public class ManagementPortImplTest {
private PartyType authorIdentifier; private PartyType authorIdentifier;
@Mock @Mock
private XtaTransportReport xtaTransportReport; private XtaTransportReport xtaTransportReport;
@Mock
private TransportReport transportReport;
private XtaGetTransportReportRequest request; private XtaGetTransportReportRequest request;
...@@ -154,7 +157,7 @@ public class ManagementPortImplTest { ...@@ -154,7 +157,7 @@ public class ManagementPortImplTest {
@BeforeEach @BeforeEach
void beforeEach() { void beforeEach() {
when(xtaMessageService.getTransportReport(request)).thenReturn(Optional.of(xtaTransportReport)); when(xtaMessageService.getTransportReport(request)).thenReturn(Optional.of(xtaTransportReport));
when(responseMapper.mapTransportReport(xtaTransportReport)).thenReturn(TRANSPORT_REPORT); when(responseMapper.mapTransportReport(xtaTransportReport)).thenReturn(transportReport);
} }
@DisplayName("should return") @DisplayName("should return")
...@@ -162,7 +165,7 @@ public class ManagementPortImplTest { ...@@ -162,7 +165,7 @@ public class ManagementPortImplTest {
void shouldReturn() { void shouldReturn() {
var result = getTransportReport(); var result = getTransportReport();
assertThat(result).contains(TRANSPORT_REPORT); assertThat(result).isEqualTo(transportReport);
} }
} }
...@@ -176,8 +179,10 @@ public class ManagementPortImplTest { ...@@ -176,8 +179,10 @@ public class ManagementPortImplTest {
@Test @Test
void shouldThrowException() { void shouldThrowException() {
when(xtaMessageService.getTransportReport(request)).thenReturn(Optional.empty()); 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);
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment