Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@


import lombok.RequiredArgsConstructor;
import org.lfenergy.shapeshifter.api.FlexRequest;
import org.lfenergy.shapeshifter.api.PayloadMessageResponseType;
import org.lfenergy.shapeshifter.api.PayloadMessageType;
import org.lfenergy.shapeshifter.core.model.UftpMessage;
Expand All @@ -29,8 +28,13 @@ public int order() {
@Override
public boolean isValid(UftpMessage<PayloadMessageResponseType> message) {
var value = UftpRequestResponseMapping.getReferencedRequestMessageId(message.payloadMessage());
return value.isPresent() && support.findReferencedMessage(message.referenceToPreviousMessage(value.get(), message.payloadMessage().getConversationID(),
FlexRequest.class)).isPresent();
return value.isPresent() && support.findReferencedMessage(
message.referenceToPreviousMessage(
value.get(),
message.payloadMessage().getConversationID(),
UftpRequestResponseMapping.getRequestTypeFor(message.payloadMessage())
)
).isPresent();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.lfenergy.shapeshifter.api.FlexOffer;
import org.lfenergy.shapeshifter.api.FlexOfferResponse;
import org.lfenergy.shapeshifter.api.FlexRequest;
import org.lfenergy.shapeshifter.api.FlexRequestResponse;
import org.lfenergy.shapeshifter.api.PayloadMessageResponseType;
Expand All @@ -23,6 +25,7 @@
@ExtendWith(MockitoExtension.class)
class ReferencedRequestMessageIdInResponseValidatorTest {
private static final String FLEX_REQUEST_MESSAGE_ID = UUID.randomUUID().toString();
private static final String FLEX_OFFER_MESSAGE_ID = UUID.randomUUID().toString();
private static final String CONVERSATION_ID = UUID.randomUUID().toString();
@Mock
private UftpMessageSupport messageSupport;
Expand All @@ -32,7 +35,9 @@ class ReferencedRequestMessageIdInResponseValidatorTest {

private final UftpParticipant sender = new UftpParticipant("example.com", USEFRoleType.DSO);
private final PayloadMessageResponseType flexRequestResponse = new FlexRequestResponse();
private final PayloadMessageResponseType flexOfferResponse = new FlexOfferResponse();
private final FlexRequest flexRequest = new FlexRequest();
private final FlexOffer flexOffer = new FlexOffer();

@Test
void appliesTo() {
Expand Down Expand Up @@ -64,7 +69,19 @@ void valid_whenFlexRequestReferenceInResponseIsKnown() {
}

@Test
void invalid_whenReferenceInResponseIsNotKnown() {
void valid_whenFlexOfferReferenceInResponseIsKnown() {
var uftpMessage = UftpMessageFixture.createIncomingResponse(sender, flexOfferResponse);

((FlexOfferResponse) flexOfferResponse).setFlexOfferMessageID(FLEX_OFFER_MESSAGE_ID);
flexOfferResponse.setConversationID(CONVERSATION_ID);
given(messageSupport.findReferencedMessage(uftpMessage.referenceToPreviousMessage(FLEX_OFFER_MESSAGE_ID, CONVERSATION_ID,
FlexOffer.class))).willReturn(Optional.of(flexOffer));

assertThat(testSubject.isValid(uftpMessage)).isTrue();
}

@Test
void invalid_whenFlexRequestReferenceInResponseIsNotKnown() {
var uftpMessage = UftpMessageFixture.createIncomingResponse(sender, flexRequestResponse);

((FlexRequestResponse) flexRequestResponse).setFlexRequestMessageID(FLEX_REQUEST_MESSAGE_ID);
Expand All @@ -75,6 +92,18 @@ void invalid_whenReferenceInResponseIsNotKnown() {
assertThat(testSubject.isValid(uftpMessage)).isFalse();
}

@Test
void valid_whenFlexOfferReferenceInResponseIsNotKnown() {
var uftpMessage = UftpMessageFixture.createIncomingResponse(sender, flexOfferResponse);

((FlexOfferResponse) flexOfferResponse).setFlexOfferMessageID(FLEX_OFFER_MESSAGE_ID);
flexOfferResponse.setConversationID(CONVERSATION_ID);
given(messageSupport.findReferencedMessage(uftpMessage.referenceToPreviousMessage(FLEX_OFFER_MESSAGE_ID, CONVERSATION_ID,
FlexOffer.class))).willReturn(Optional.empty());

assertThat(testSubject.isValid(uftpMessage)).isFalse();
}

@Test
void getReason() {
assertThat(testSubject.getReason()).isEqualTo("Unknown reference Request message ID");
Expand Down