diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataMapper.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataMapper.java index f81184fc20eb49e375f9d24dd9f5ce68021644c6..0a7d5efd3b4339a0955d2afa7988656cda0582a8 100644 --- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataMapper.java +++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataMapper.java @@ -1,14 +1,11 @@ package de.ozgcloud.eingang.xta; -import java.math.BigInteger; -import java.util.Optional; import java.util.stream.Stream; import jakarta.xml.bind.JAXBElement; import org.mapstruct.Mapper; import org.mapstruct.Mapping; -import org.mapstruct.Named; import eu.osci.ws._2008._05.transport.MsgStatusListType; import eu.osci.ws._2014._10.transport.MessageMetaData; @@ -26,19 +23,10 @@ interface XtaMessageMetaDataMapper { return XtaMessageId.from(id); } - @Mapping(target = "moreMessagesAvailable", source = ".", qualifiedByName = "moreMessagesAvailable") + // OZG-6176 Avoid calling getStatusList endlessly (due to getNextStatusList not being implemented on the xta-server) + @Mapping(target = "moreMessagesAvailable", constant = "false") XtaMessageMetaDatasAndHeader msgStatusListFromSoap(MsgStatusListTypeAndHeaderResponse statusList); - @Named("moreMessagesAvailable") - default boolean moreMessagesAvailable(MsgStatusListTypeAndHeaderResponse statusList) { - if (statusList.isNoMessageAvailable()) { - return false; - } - return Optional.ofNullable(statusList.getMessageItemsPending()) - .filter(messagesPending -> !BigInteger.ZERO.equals(messagesPending)) - .isPresent(); - } - default Stream<XtaMessageMetaData> map(JAXBElement<MsgStatusListType> msgStatusListResponse) { return msgStatusListResponse.getValue().getMessageMetaData().stream().map(this::fromSoap); } diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataMapperTest.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataMapperTest.java index 0b26412b73ffb000e3214c0e73fcddce166f6372..26f1ef8d1c76ea3a17eb9b6031c3df7d5d1e54d9 100644 --- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataMapperTest.java +++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataMapperTest.java @@ -4,6 +4,7 @@ import static org.assertj.core.api.Assertions.*; import java.math.BigInteger; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mapstruct.factory.Mappers; @@ -14,55 +15,27 @@ class XtaMessageMetaDataMapperTest { @Spy private final XtaMessageMetaDataMapper mapper = Mappers.getMapper(XtaMessageMetaDataMapper.class); + @DisplayName("msg status list from soap") @Nested - class TestMoreMessagesAvailable { + class TestMsgStatusListFromSoap { @Test - void shouldReturnFalseOnNoMessagesAvailable() { + void shouldMap() { + var response = MsgStatusListTypeAndHeaderResponseTestFactory.createBuilder().build(); - var response = mapper.moreMessagesAvailable(buildWithNoMessageAvailable()); + var result = mapper.msgStatusListFromSoap(response); - assertThat(response).isFalse(); - } - - private MsgStatusListTypeAndHeaderResponse buildWithNoMessageAvailable() { - return MsgStatusListTypeAndHeaderResponseTestFactory.createBuilder().noMessageAvailable(true).build(); - } - - @Test - void shouldReturnFalseOnPendingMessagesNull() { - - var response = mapper.moreMessagesAvailable(buildPendingMessagesNull()); - - assertThat(response).isFalse(); - } - - private MsgStatusListTypeAndHeaderResponse buildPendingMessagesNull() { - return MsgStatusListTypeAndHeaderResponseTestFactory.createBuilder().messageItemsPending(null).build(); + assertThat(result).isNotNull(); } + @DisplayName("should set moreMessagesAvailable to false") @Test - void shouldReturnFalseOnNoMessagesPending() { + void shouldSetMoreMessagesAvailableToFalse() { + var response = MsgStatusListTypeAndHeaderResponseTestFactory.createBuilder().build(); - var response = mapper.moreMessagesAvailable(buildWithoutPendingMessages()); - - assertThat(response).isFalse(); - } - - private MsgStatusListTypeAndHeaderResponse buildWithoutPendingMessages() { - return MsgStatusListTypeAndHeaderResponseTestFactory.createBuilder().messageItemsPending(null).build(); - } - - @Test - void shouldReturnTrueOnMessagesPending() { - - var response = mapper.moreMessagesAvailable(buildWithPendingMessages()); - - assertThat(response).isTrue(); - } + var result = mapper.msgStatusListFromSoap(response); - private MsgStatusListTypeAndHeaderResponse buildWithPendingMessages() { - return MsgStatusListTypeAndHeaderResponseTestFactory.createBuilder().messageItemsPending(BigInteger.ONE).build(); + assertThat(result.isMoreMessagesAvailable()).isFalse(); } } }