Skip to content

Commit 1c57bcf

Browse files
vyourtchenko-connamaragbirchmeier
authored andcommitted
Added more session tests for new cases where gapFillFlag=Y and possDupFlag=Y yet do not trigger DoTargetTooLow thus not checking for OrigSendingTime under the new logic
1 parent c14c646 commit 1c57bcf

File tree

1 file changed

+56
-6
lines changed

1 file changed

+56
-6
lines changed

UnitTests/SessionTest.cs

Lines changed: 56 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -702,33 +702,38 @@ public void TestMessageStoreAccessor()
702702
}
703703

704704
[Test]
705-
public void TestRequiresOrigSendingTime_Y()
705+
public void TestPossDupFlagTrueRequiresOrigSendingTime_Y()
706706
{
707707
// Under default configuration, session should reject a ResendRequest that lacks OrigSendingTime unset
708-
708+
// When PossDupFlag is true
709+
709710
// Check default is as expected
710711
Assert.That(_session!.RequiresOrigSendingTime, Is.EqualTo(true));
711712

712713
Logon();
713-
714+
714715
QuickFix.FIX42.SequenceReset sr = new(new QuickFix.Fields.NewSeqNo(5));
715716
sr.GapFillFlag = new QuickFix.Fields.GapFillFlag(true);
716717
sr.Header.SetField(new QuickFix.Fields.PossDupFlag(true));
717718

718-
sr.Header.SetField(new QuickFix.Fields.MsgSeqNum(_seqNum--)); // so it triggers DoTargetTooLow code
719+
sr.Header.SetField(new QuickFix.Fields.MsgSeqNum(_seqNum--)); // even if it doesn't trigger DoTargetTooLow code
719720

720721
SendTheMessage(sr);
721722

723+
Console.WriteLine($"MsgLookup Keys: {string.Join(",", _responder.MsgLookup.Keys)}");
724+
725+
Assert.That(_responder.MsgLookup.ContainsKey(QuickFix.Fields.MsgType.REJECT));
722726
Assert.That(_responder.MsgLookup[QuickFix.Fields.MsgType.REJECT].Count == 1);
723727
QuickFix.FIX42.Reject rej =
724728
(_responder.MsgLookup[QuickFix.Fields.MsgType.REJECT].Peek() as QuickFix.FIX42.Reject)!;
725729
Assert.That(rej.SessionRejectReason.Value, Is.EqualTo(QuickFix.Fields.SessionRejectReason.REQUIRED_TAG_MISSING));
726730
}
727731

728732
[Test]
729-
public void TestRequiresOrigSendingTime_N()
733+
public void TestPossDupFlagTrueRequiresOrigSendingTime_N()
730734
{
731735
// Under OrigSendingTime=N, session will allow ResendRequest that lacks OrigSendingTime
736+
// When PossDupFlag is true
732737
_session!.RequiresOrigSendingTime = false;
733738

734739
Logon();
@@ -737,10 +742,55 @@ public void TestRequiresOrigSendingTime_N()
737742
sr.GapFillFlag = new QuickFix.Fields.GapFillFlag(true);
738743
sr.Header.SetField(new QuickFix.Fields.PossDupFlag(true));
739744

740-
sr.Header.SetField(new QuickFix.Fields.MsgSeqNum(_seqNum--)); // so it triggers DoTargetTooLow code
745+
sr.Header.SetField(new QuickFix.Fields.MsgSeqNum(_seqNum--)); // even if it doesn't trigger DoTargetTooLow code
746+
747+
SendTheMessage(sr);
748+
749+
Assert.That(_responder.MsgLookup.ContainsKey(QuickFix.Fields.MsgType.REJECT), Is.False);
750+
}
751+
752+
[Test]
753+
public void TestPossDupFlagFalseRequiresOrigSendingTime_Y()
754+
{
755+
// Under default configuration, session should not reject a ResendRequest that lacks OrigSendingTime unset
756+
// When PossDupFlag is false
757+
758+
// Check default is as expected
759+
Assert.That(_session!.RequiresOrigSendingTime, Is.EqualTo(true));
760+
761+
Logon();
762+
763+
QuickFix.FIX42.SequenceReset sr = new(new QuickFix.Fields.NewSeqNo(5));
764+
sr.GapFillFlag = new QuickFix.Fields.GapFillFlag(true);
765+
sr.Header.SetField(new QuickFix.Fields.PossDupFlag(false)); // so it triggers DoTargetTooLow code
766+
767+
sr.Header.SetField(new QuickFix.Fields.MsgSeqNum(_seqNum)); // so it doesn't fail on MsgSeqNum too low
768+
769+
SendTheMessage(sr);
770+
771+
Console.WriteLine($"MsgLookup Keys: {string.Join(",", _responder.MsgLookup.Keys)}");
772+
773+
Assert.That(_responder.MsgLookup.ContainsKey(QuickFix.Fields.MsgType.REJECT), Is.False);
774+
}
775+
776+
[Test]
777+
public void TestPossDupFlagFalseRequiresOrigSendingTime_N()
778+
{
779+
// Under OrigSendingTime=N, session will allow ResendRequest that lacks OrigSendingTime
780+
// When PossDupFlag is false
781+
_session!.RequiresOrigSendingTime = false;
782+
783+
Logon();
784+
785+
QuickFix.FIX42.SequenceReset sr = new(new QuickFix.Fields.NewSeqNo(5));
786+
sr.GapFillFlag = new QuickFix.Fields.GapFillFlag(true);
787+
sr.Header.SetField(new QuickFix.Fields.PossDupFlag(false)); // so it triggers DoTargetTooLow code
788+
789+
sr.Header.SetField(new QuickFix.Fields.MsgSeqNum(_seqNum)); // so it doesn't fail on MsgSeqNum too low
741790

742791
SendTheMessage(sr);
743792

793+
Console.WriteLine($"MsgLookup Keys: {string.Join(",", _responder.MsgLookup.Keys)}");
744794
Assert.That(_responder.MsgLookup.ContainsKey(QuickFix.Fields.MsgType.REJECT), Is.False);
745795
}
746796

0 commit comments

Comments
 (0)