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

OZG-6240 KOP-2589 WIP ResponseMapping und ManagementPort Test

parent abd45eb5
No related branches found
No related tags found
No related merge requests found
...@@ -9,6 +9,7 @@ import java.util.List; ...@@ -9,6 +9,7 @@ import java.util.List;
import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.datatype.XMLGregorianCalendar;
import genv3.de.xoev.transport.xta.x211.TransportReport;
import jakarta.activation.DataHandler; import jakarta.activation.DataHandler;
import jakarta.activation.FileDataSource; import jakarta.activation.FileDataSource;
...@@ -21,12 +22,8 @@ import org.mapstruct.ReportingPolicy; ...@@ -21,12 +22,8 @@ import org.mapstruct.ReportingPolicy;
import org.mapstruct.SourcePropertyName; import org.mapstruct.SourcePropertyName;
import org.mapstruct.TargetPropertyName; import org.mapstruct.TargetPropertyName;
import de.ozgcloud.xta.test.app.model.XtaFile; import de.ozgcloud.xta.test.app.model.*;
import de.ozgcloud.xta.test.app.model.XtaIdentifier;
import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest;
import de.ozgcloud.xta.test.app.model.XtaMessage;
import de.ozgcloud.xta.test.app.model.XtaMessageMetaData;
import de.ozgcloud.xta.test.app.model.XtaMessageMetaDataListing;
import genv3.de.xoev.transport.xta.x211.ContentType; import genv3.de.xoev.transport.xta.x211.ContentType;
import genv3.de.xoev.transport.xta.x211.GenericContentContainer; import genv3.de.xoev.transport.xta.x211.GenericContentContainer;
import genv3.de.xoev.transport.xta.x211.LookupServiceResponse; import genv3.de.xoev.transport.xta.x211.LookupServiceResponse;
...@@ -128,7 +125,12 @@ public interface ResponseMapper { ...@@ -128,7 +125,12 @@ public interface ResponseMapper {
@SneakyThrows @SneakyThrows
default XMLGregorianCalendar createNowXmlGregorianCalendarFromLocalDateTime() { default XMLGregorianCalendar createNowXmlGregorianCalendarFromLocalDateTime() {
var isoTimeString = DateTimeFormatter.ISO_DATE_TIME.format(LocalDateTime.now()); return createXmlGregorianCalendarFromLocalDateTime(LocalDateTime.now());
}
@SneakyThrows
default XMLGregorianCalendar createXmlGregorianCalendarFromLocalDateTime(LocalDateTime localDateTime) {
var isoTimeString = DateTimeFormatter.ISO_DATE_TIME.format(localDateTime);
return DatatypeFactory.newInstance().newXMLGregorianCalendar(isoTimeString); return DatatypeFactory.newInstance().newXMLGregorianCalendar(isoTimeString);
} }
...@@ -177,6 +179,14 @@ public interface ResponseMapper { ...@@ -177,6 +179,14 @@ public interface ResponseMapper {
@Mapping(target = "lookupServiceResultList.lookupServiceResult", expression = "java( List.of( mapLookupServiceResultType(xtaLookupServiceRequest) ) )") @Mapping(target = "lookupServiceResultList.lookupServiceResult", expression = "java( List.of( mapLookupServiceResultType(xtaLookupServiceRequest) ) )")
LookupServiceResponse mapLookupServiceResponse(XtaLookupServiceRequest xtaLookupServiceRequest); LookupServiceResponse mapLookupServiceResponse(XtaLookupServiceRequest xtaLookupServiceRequest);
@Mapping(target = "messageMetaData", source = "messageMetaData")
@Mapping(target = "reportTime", source = "reportTime")
@Mapping(target = "xtaServerIdentity", constant = "xta-test-server")
@Mapping(target = "messageStatus.status", source = "status.ordinal")
@Mapping(target = "additionalReports", ignore = true)
@Mapping(target = "signature", ignore = true)
TransportReport mapTransportReport(XtaTransportReport xtaTransportReport);
@Mapping(target = "otherAttributes", ignore = true) @Mapping(target = "otherAttributes", ignore = true)
AttributedURIType mapCreateMessageIdResponse(String value); AttributedURIType mapCreateMessageIdResponse(String value);
} }
...@@ -7,6 +7,7 @@ import org.apache.cxf.annotations.SchemaValidation; ...@@ -7,6 +7,7 @@ import org.apache.cxf.annotations.SchemaValidation;
import org.apache.cxf.ws.addressing.AttributedURIType; import org.apache.cxf.ws.addressing.AttributedURIType;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import de.ozgcloud.xta.test.app.mapper.ExceptionMapper;
import de.ozgcloud.xta.test.app.mapper.RequestMapper; import de.ozgcloud.xta.test.app.mapper.RequestMapper;
import de.ozgcloud.xta.test.app.mapper.ResponseMapper; import de.ozgcloud.xta.test.app.mapper.ResponseMapper;
import de.ozgcloud.xta.test.app.service.XtaMessageService; import de.ozgcloud.xta.test.app.service.XtaMessageService;
...@@ -29,6 +30,7 @@ import lombok.extern.log4j.Log4j2; ...@@ -29,6 +30,7 @@ import lombok.extern.log4j.Log4j2;
@Log4j2 @Log4j2
public class ManagementPortImpl implements ManagementPortType { public class ManagementPortImpl implements ManagementPortType {
private final ExceptionMapper exceptionMapper;
private final ResponseMapper responseMapper; private final ResponseMapper responseMapper;
private final RequestMapper requestMapper; private final RequestMapper requestMapper;
private final RequestValidator requestValidator; private final RequestValidator requestValidator;
......
...@@ -4,6 +4,10 @@ import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.*; ...@@ -4,6 +4,10 @@ import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.*;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.util.Optional;
import genv3.de.xoev.transport.xta.x211.InvalidMessageIDException;
import genv3.de.xoev.transport.xta.x211.TransportReport;
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;
...@@ -12,9 +16,13 @@ import org.junit.jupiter.api.Test; ...@@ -12,9 +16,13 @@ import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import de.ozgcloud.xta.test.app.factory.XtaMessageMetaDataTestFactory;
import de.ozgcloud.xta.test.app.mapper.ExceptionMapper;
import de.ozgcloud.xta.test.app.mapper.RequestMapper; import de.ozgcloud.xta.test.app.mapper.RequestMapper;
import de.ozgcloud.xta.test.app.mapper.ResponseMapper; import de.ozgcloud.xta.test.app.mapper.ResponseMapper;
import de.ozgcloud.xta.test.app.model.XtaGetTransportReportRequest;
import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest; 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.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.LookupServiceRequest;
...@@ -30,6 +38,8 @@ public class ManagementPortImplTest { ...@@ -30,6 +38,8 @@ public class ManagementPortImplTest {
@Mock @Mock
private XtaMessageService xtaMessageService; private XtaMessageService xtaMessageService;
@Mock @Mock
private ExceptionMapper exceptionMapper;
@Mock
private ResponseMapper responseMapper; private ResponseMapper responseMapper;
@Mock @Mock
private RequestMapper requestMapper; private RequestMapper requestMapper;
...@@ -113,4 +123,67 @@ public class ManagementPortImplTest { ...@@ -113,4 +123,67 @@ public class ManagementPortImplTest {
assertThat(result).isEqualTo(response); assertThat(result).isEqualTo(response);
} }
} }
@DisplayName("get transport report")
@Nested
class TestGetTransportReport {
private static final String MESSAGE_ID = "urn:de:xta:messageid:1";
@Mock
private AttributedURIType messageId;
@Mock
private PartyType authorIdentifier;
@Mock
private XtaTransportReport xtaTransportReport;
private XtaGetTransportReportRequest request;
@BeforeEach
void beforeEach() {
request = XtaGetTransportReportRequest.builder()
.messageId(MESSAGE_ID)
.clientIdentifier(XtaMessageMetaDataTestFactory.READER_IDENTIFIER)
.build();
when(requestMapper.mapXtaGetTransportReportRequest(messageId, authorIdentifier)).thenReturn(request);
}
@DisplayName("with valid request")
@Nested
class TestWithValidRequest {
@BeforeEach
void beforeEach() {
when(xtaMessageService.getTransportReport(request)).thenReturn(Optional.of(xtaTransportReport));
when(responseMapper.mapTransportReport(xtaTransportReport)).thenReturn(TRANSPORT_REPORT);
}
@DisplayName("should return")
@Test
void shouldReturn() {
var result = getTransportReport();
assertThat(result).contains(TRANSPORT_REPORT);
}
}
@DisplayName("with Invalid message id")
@Nested
class TestWithInvalidMessageId {
@Mock
private InvalidMessageIDException exception;
@DisplayName("should throw exception")
@Test
void shouldThrowException() {
when(xtaMessageService.getTransportReport(request)).thenReturn(Optional.empty());
when(exceptionMapper.createInvalidMessageIDException(any())).thenReturn(exception);
}
}
@SneakyThrows
private TransportReport getTransportReport() {
return managementPortImpl.getTransportReport(messageId, authorIdentifier);
}
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment