diff --git a/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java b/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java index ec571be78bb5f0ee694f26c85b9da4809af3ed05..f327d0de1cbdd3fdda07843b20035beb1afe80e3 100644 --- a/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java +++ b/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java @@ -12,6 +12,7 @@ import javax.xml.datatype.XMLGregorianCalendar; import jakarta.activation.DataHandler; import jakarta.activation.FileDataSource; +import org.apache.cxf.ws.addressing.AttributedURIType; import org.mapstruct.Condition; import org.mapstruct.Mapper; import org.mapstruct.Mapping; @@ -180,4 +181,11 @@ public interface ResponseMapper { @Mapping(target = "lookupServiceResultList.lookupServiceResult", expression = "java( List.of( mapLookupServiceResultType(xtaLookupServiceRequest) ) )") LookupServiceResponse mapLookupServiceResponse(XtaLookupServiceRequest xtaLookupServiceRequest); + + default AttributedURIType createCreateMessageIdResponse(XtaIdGenerator xtaIdGenerator) { + return mapCreateMessageIdResponse(xtaIdGenerator.generateMessageId().toString()); + } + + @Mapping(target = "otherAttributes", ignore = true) + AttributedURIType mapCreateMessageIdResponse(String value); } 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 b0a48f920e0980191fee1875154ba2efaec80fbd..364f4201b1babc68f5617467c3e391645d59aed6 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 @@ -9,8 +9,6 @@ import org.springframework.stereotype.Component; import de.ozgcloud.xta.test.app.mapper.RequestMapper; import de.ozgcloud.xta.test.app.mapper.ResponseMapper; -import de.ozgcloud.xta.test.app.service.ParameterValidatorService; -import de.ozgcloud.xta.test.app.service.XtaParameter; import de.ozgcloud.xta.test.app.util.XtaIdGenerator; import genv3.de.xoev.transport.xta.x211.CancelDeniedException; import genv3.de.xoev.transport.xta.x211.InvalidMessageIDException; @@ -30,8 +28,6 @@ import lombok.extern.log4j.Log4j2; @Log4j2 public class ManagementPortImpl implements ManagementPortType { - private final ParameterValidatorService validator; - private final XtaIdGenerator xtaIdGenerator; private final ResponseMapper responseMapper; private final RequestMapper requestMapper; @@ -46,9 +42,8 @@ public class ManagementPortImpl implements ManagementPortType { final genv3.eu.osci.ws.x2014.x10.transport.PartyType authorIdentifier) throws XTAWSTechnicalProblemException, PermissionDeniedException { log.info("Executing operation createMessageId"); - AttributedURIType messageId = new AttributedURIType(); - messageId.setValue(xtaIdGenerator.generateMessageId().toString()); - return messageId; + + return responseMapper.createCreateMessageIdResponse(xtaIdGenerator); } /* @@ -108,7 +103,6 @@ public class ManagementPortImpl implements ManagementPortType { final genv3.eu.osci.ws.x2014.x10.transport.PartyType authorIdentifier) throws XTAWSTechnicalProblemException, InvalidMessageIDException, PermissionDeniedException { log.info("Executing operation getTransportReport"); - validator.isNotBlank(messageID.getValue(), XtaParameter.MESSAGE_ID); TransportReport transportReport = new TransportReport(); // TODO implement diff --git a/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java b/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java index cb249cecc0e26954c10a0a3d0d7e0b702e631c61..2c8c4b1a0998c3251dee33714e3b0b3743032528 100644 --- a/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java +++ b/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java @@ -1,5 +1,9 @@ package de.ozgcloud.xta.test.app.mapper; +import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.*; +import static de.ozgcloud.xta.test.app.factory.XtaMessageMetaDataTestFactory.AUTHOR_IDENTIFIER; +import static de.ozgcloud.xta.test.app.factory.XtaMessageMetaDataTestFactory.MESSAGE_SIZE; +import static de.ozgcloud.xta.test.app.factory.XtaMessageMetaDataTestFactory.READER_IDENTIFIER; import static de.ozgcloud.xta.test.app.factory.XtaMessageMetaDataTestFactory.*; import static de.ozgcloud.xta.test.app.mapper.ResponseMapper.*; import static de.ozgcloud.xta.test.app.mapper.XtaLookupServiceRequestTestFactory.*; @@ -488,4 +492,28 @@ public class ResponseMapperTest { return mapper.mapLookupServiceResponse(XtaLookupServiceRequestTestFactory.create()); } } + + @DisplayName("create create message id response") + @Nested + class TestCreateCreateMessageIdResponse { + @Mock + private XtaIdGenerator xtaIdGenerator; + + @Mock + private XtaId xtaId; + + @BeforeEach + void mock() { + when(xtaIdGenerator.generateMessageId()).thenReturn(xtaId); + when(xtaId.toString()).thenReturn(MESSAGE_ID); + } + + @DisplayName("should map attributed uri type") + @Test + void shouldMapAttributedUriType() { + var result = mapper.createCreateMessageIdResponse(xtaIdGenerator); + + assertThat(result.getValue()).isEqualTo(MESSAGE_ID); + } + } } 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 a8daca8b5a2ea0555daaddf91ebedca6778e37d9..29cc41f2192f3ba18b26c6d28be107868ee36033 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 @@ -3,51 +3,56 @@ package de.ozgcloud.xta.test.app.server; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; +import org.apache.cxf.ws.addressing.AttributedURIType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.Spy; -import de.ozgcloud.xta.test.app.factory.LookupServiceRequestTestFactory; -import de.ozgcloud.xta.test.app.service.ParameterValidatorService; -import de.ozgcloud.xta.test.app.util.XtaId; +import de.ozgcloud.xta.test.app.mapper.RequestMapper; +import de.ozgcloud.xta.test.app.mapper.ResponseMapper; +import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest; import de.ozgcloud.xta.test.app.util.XtaIdGenerator; import genv3.de.xoev.transport.xta.x211.LookupServiceRequest; -import genv3.de.xoev.transport.xta.x211.LookupServiceResultType; +import genv3.de.xoev.transport.xta.x211.LookupServiceResponse; import genv3.eu.osci.ws.x2014.x10.transport.PartyType; import lombok.SneakyThrows; public class ManagementPortImplTest { - @Spy - private ParameterValidatorService validator; - @Mock - private XtaIdGenerator xtaIdGenerator; + @InjectMocks private ManagementPortImpl managementPortImpl; + @Mock + private XtaIdGenerator xtaIdGenerator; + @Mock + private ResponseMapper responseMapper; + @Mock + private RequestMapper requestMapper; + @DisplayName("create message id") @Nested class TestCreateMessageId { @Mock private PartyType authorIdentifier; - private static final XtaId MESSAGE_ID = new XtaId("urn", "de:xta:messageid", "xta-test-server", "1234"); + @Mock + private AttributedURIType createdMessageId; @BeforeEach void beforeEach() { - when(xtaIdGenerator.generateMessageId()).thenReturn(MESSAGE_ID); + when(responseMapper.createCreateMessageIdResponse(xtaIdGenerator)).thenReturn(createdMessageId); } @DisplayName("should return") @Test @SneakyThrows void shouldCreateMessageId() { - var messageId = managementPortImpl.createMessageId(authorIdentifier); + var result = managementPortImpl.createMessageId(authorIdentifier); - assertThat(messageId.getValue()).matches(MESSAGE_ID.toString()); + assertThat(result).isEqualTo(createdMessageId); } } @@ -69,53 +74,29 @@ public class ManagementPortImplTest { @Nested class TestLookupService { @Mock - private PartyType authorIdentifier; private LookupServiceRequest lookupServiceRequest; + @Mock + private PartyType authorIdentifier; - @BeforeEach - void beforeEach() { - lookupServiceRequest = LookupServiceRequestTestFactory.create(); - } - - @DisplayName("Should return IsServiceAvailableValue as true") - @Test - void shouldReturnIsServiceAvailableValue() { - var lookupServiceResult = getLookupServiceResultWithPossibleException(); - - assertThat(lookupServiceResult.getIsServiceAvailableValue().isServiceIsAvailable()).isTrue(); - assertThat(lookupServiceResult.getIsServiceAvailableValue().isServiceIsAvailableUnknown()).isNull(); - } - - @DisplayName("Should mirror back Reader Identifier") - @Test - void shouldMirrorReaderIdentifier() { - var lookupServiceResult = getLookupServiceResultWithPossibleException(); - - assertThat(lookupServiceResult.getReader().getIdentifier()).isEqualTo(LookupServiceRequestTestFactory.READER_PARTY_TYPE.getIdentifier()); - } + @Mock + private XtaLookupServiceRequest request; - @DisplayName("Should mirror back Service Type") - @Test - void shouldMirrorServiceType() { - var lookupServiceResult = getLookupServiceResultWithPossibleException(); + @Mock + private LookupServiceResponse response; - assertThat(lookupServiceResult.getServiceType()).isEqualTo(LookupServiceRequestTestFactory.SERVICE_TYPE); + @BeforeEach + void beforeEach() { + when(requestMapper.mapXtaLookupServiceRequest(lookupServiceRequest, authorIdentifier)).thenReturn(request); + when(responseMapper.mapLookupServiceResponse(request)).thenReturn(response); } - /* Die ServiceParameter können als mögliche Response ein ReaderCipherCertificate beinhalten */ - @DisplayName("Response should have no Service Parameters") + @DisplayName("should return") @Test - void shouldHaveNoServiceParamters() { - var lookupServiceResult = getLookupServiceResultWithPossibleException(); - - assertThat(lookupServiceResult.getServiceParameter()).isEmpty(); - } - @SneakyThrows - private LookupServiceResultType getLookupServiceResultWithPossibleException() { - var lookupResponse = managementPortImpl.lookupService(lookupServiceRequest, authorIdentifier); - return lookupResponse.getLookupServiceResultList().getLookupServiceResult().getFirst(); + void shouldReturn() { + var result = managementPortImpl.lookupService(lookupServiceRequest, authorIdentifier); + + assertThat(result).isEqualTo(response); } } - -} +} \ No newline at end of file