@@ -103,7 +103,7 @@ public void testDisposalOfFileResources() throws Exception {
103103 new DefaultMessageFactory (), 30 , false , 30 , UtcTimestampPrecision .MILLIS , true , false ,
104104 false , false , false , false , true , false , 1.5 , null , true ,
105105 new int [] { 5 }, false , false , false , false , true , false , true , false ,
106- null , true , 0 , false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER )) {
106+ null , true , 0 , false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER , false )) {
107107 // Simulate socket disconnect
108108 session .setResponder (null );
109109 }
@@ -144,7 +144,7 @@ public void testNondisposableFileResources() throws Exception {
144144 new DefaultMessageFactory (), 30 , false , 30 , UtcTimestampPrecision .MILLIS , true , false ,
145145 false , false , false , false , true , false , 1.5 , null , true ,
146146 new int [] { 5 }, false , false , false , false , true , false , true , false ,
147- null , true , 0 , false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER )) {
147+ null , true , 0 , false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER , false )) {
148148 // Simulate socket disconnect
149149 session .setResponder (null );
150150
@@ -2105,7 +2105,7 @@ private void testSequenceResetGapFillWithChunkSize(int chunkSize)
21052105 UtcTimestampPrecision .MILLIS , resetOnLogon , false , false , false , false , false , true ,
21062106 false , 1.5 , null , validateSequenceNumbers , new int [] { 5 },
21072107 false , false , false , false , true , false , true , false , null , true ,
2108- chunkSize , false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER )) {
2108+ chunkSize , false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER , false )) {
21092109
21102110 UnitTestResponder responder = new UnitTestResponder ();
21112111 session .setResponder (responder );
@@ -2167,7 +2167,7 @@ public void correct_sequence_number_for_last_gap_fill_if_next_sender_sequence_nu
21672167 new DefaultMessageFactory (), 30 , false , 30 , UtcTimestampPrecision .MILLIS , resetOnLogon ,
21682168 false , false , false , false , false , true , false , 1.5 , null , validateSequenceNumbers ,
21692169 new int []{5 }, false , false , false , false , true , false , true , false , null , true , 0 ,
2170- false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER );
2170+ false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER , false );
21712171
21722172 Responder mockResponder = mock (Responder .class );
21732173 when (mockResponder .send (anyString ())).thenReturn (true );
@@ -2215,7 +2215,7 @@ public void correct_sequence_number_for_last_gap_fill_if_next_sender_sequence_nu
22152215 new DefaultMessageFactory (), 30 , false , 30 , UtcTimestampPrecision .MILLIS , resetOnLogon ,
22162216 false , false , false , false , false , true , false , 1.5 , null , validateSequenceNumbers ,
22172217 new int []{5 }, false , false , false , false , true , false , true , false , null , true , 0 ,
2218- enableNextExpectedMsgSeqNum , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER );
2218+ enableNextExpectedMsgSeqNum , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER , false );
22192219
22202220 Responder mockResponder = mock (Responder .class );
22212221 when (mockResponder .send (anyString ())).thenReturn (true );
@@ -2264,7 +2264,7 @@ public void testMsgSeqNumTooHighWithDisconnectOnError() throws Exception {
22642264 UtcTimestampPrecision .MILLIS , resetOnLogon , false , false , false , false , false , true ,
22652265 false , 1.5 , null , validateSequenceNumbers , new int [] { 5 },
22662266 false , disconnectOnError , false , false , true , false , true , false ,
2267- null , true , 0 , false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER )) {
2267+ null , true , 0 , false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER , false )) {
22682268
22692269 UnitTestResponder responder = new UnitTestResponder ();
22702270 session .setResponder (responder );
@@ -2300,7 +2300,7 @@ public void testTimestampPrecision() throws Exception {
23002300 UtcTimestampPrecision .NANOS , resetOnLogon , false , false , false , false , false , true ,
23012301 false , 1.5 , null , validateSequenceNumbers , new int [] { 5 },
23022302 false , disconnectOnError , false , false , true , false , true , false ,
2303- null , true , 0 , false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER )) {
2303+ null , true , 0 , false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER , false )) {
23042304
23052305 UnitTestResponder responder = new UnitTestResponder ();
23062306 session .setResponder (responder );
@@ -2352,7 +2352,7 @@ private void testLargeQueue(int N) throws Exception {
23522352 new DefaultMessageFactory (), isInitiator ? 30 : 0 , false , 30 , UtcTimestampPrecision .MILLIS , resetOnLogon ,
23532353 false , false , false , false , false , true , false , 1.5 , null , validateSequenceNumbers ,
23542354 new int []{5 }, false , false , false , false , true , false , true , false , null , true , 0 ,
2355- false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER );
2355+ false , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER , false );
23562356
23572357 UnitTestResponder responder = new UnitTestResponder ();
23582358 session .setResponder (responder );
@@ -2468,7 +2468,7 @@ public void fromAdmin(Message message, SessionID sessionId) throws FieldNotFound
24682468 new DefaultMessageFactory (), isInitiator ? 30 : 0 , false , 30 , UtcTimestampPrecision .MILLIS , resetOnLogon ,
24692469 false , false , false , false , false , true , false , 1.5 , null , validateSequenceNumbers ,
24702470 new int []{5 }, false , false , false , false , true , false , true , false , null , true , 0 ,
2471- enableNextExpectedMsgSeqNum , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER );
2471+ enableNextExpectedMsgSeqNum , false , true , new ArrayList <>(), Session .DEFAULT_HEARTBEAT_TIMEOUT_MULTIPLIER , false );
24722472 UnitTestResponder responder = new UnitTestResponder ();
24732473 session .setResponder (responder );
24742474
@@ -2982,4 +2982,70 @@ public void disconnect() {
29822982 }
29832983 }
29842984
2985+ @ Test
2986+ public void testSendWithAllowPosDupAsFalse_ShouldRemovePossDupFlagAndOrigSendingTime () throws Exception {
2987+ final UnitTestApplication application = new UnitTestApplication ();
2988+ final SessionID sessionID = new SessionID (FixVersions .BEGINSTRING_FIX44 , "SENDER" , "TARGET" );
2989+ final Session session = SessionFactoryTestSupport .createSession (sessionID , application , false , false , true , true , null );
2990+ UnitTestResponder responder = new UnitTestResponder ();
2991+ session .setResponder (responder );
2992+ logonTo (session );
2993+
2994+ session .send (createPossDupAppMessage (1 ), false );
2995+
2996+ final Message sentMessage = new Message (responder .sentMessageData );
2997+
2998+ assertFalse (sentMessage .getHeader ().isSetField (PossDupFlag .FIELD ));
2999+ assertFalse (sentMessage .getHeader ().isSetField (OrigSendingTime .FIELD ));
3000+ }
3001+
3002+ @ Test
3003+ public void testSendWithAllowPosDupAsFalse_ShouldRemovePossDupFlagAndOrigSendingTime_GivenAllowPosDupConfigurationPropertySetToTrue () throws Exception {
3004+ final UnitTestApplication application = new UnitTestApplication ();
3005+ final SessionID sessionID = new SessionID (FixVersions .BEGINSTRING_FIX44 , "SENDER" , "TARGET" );
3006+ final Session session = SessionFactoryTestSupport .createSession (sessionID , application , false , false , true , true , null );
3007+ UnitTestResponder responder = new UnitTestResponder ();
3008+ session .setResponder (responder );
3009+ session .setAllowPosDup (true );
3010+ logonTo (session );
3011+ session .send (createPossDupAppMessage (1 ), false );
3012+
3013+ final Message sentMessage = new Message (responder .sentMessageData );
3014+
3015+ assertFalse (sentMessage .getHeader ().isSetField (PossDupFlag .FIELD ));
3016+ assertFalse (sentMessage .getHeader ().isSetField (OrigSendingTime .FIELD ));
3017+ }
3018+
3019+ @ Test
3020+ public void testSendWithAllowPosDupAsTrue_ShouldKeepPossDupFlagAndOrigSendingTime () throws Exception {
3021+ final UnitTestApplication application = new UnitTestApplication ();
3022+ final SessionID sessionID = new SessionID (FixVersions .BEGINSTRING_FIX44 , "SENDER" , "TARGET" );
3023+ final Session session = SessionFactoryTestSupport .createSession (sessionID , application , false , false , true , true , null );
3024+ UnitTestResponder responder = new UnitTestResponder ();
3025+ session .setResponder (responder );
3026+ logonTo (session );
3027+ session .send (createPossDupAppMessage (1 ), true );
3028+
3029+ final Message sentMessage = new Message (responder .sentMessageData );
3030+
3031+ assertTrue (sentMessage .getHeader ().isSetField (PossDupFlag .FIELD ));
3032+ assertTrue (sentMessage .getHeader ().isSetField (OrigSendingTime .FIELD ));
3033+ }
3034+
3035+ @ Test
3036+ public void testSend_ShouldKeepPossDupFlagAndOrigSendingTime_GivenAllowPosDupConfigurationPropertySetToTrue () throws Exception {
3037+ final UnitTestApplication application = new UnitTestApplication ();
3038+ final SessionID sessionID = new SessionID (FixVersions .BEGINSTRING_FIX44 , "SENDER" , "TARGET" );
3039+ final Session session = SessionFactoryTestSupport .createSession (sessionID , application , false , false , true , true , null );
3040+ UnitTestResponder responder = new UnitTestResponder ();
3041+ session .setResponder (responder );
3042+ session .setAllowPosDup (true );
3043+ logonTo (session );
3044+ session .send (createPossDupAppMessage (1 ));
3045+
3046+ final Message sentMessage = new Message (responder .sentMessageData );
3047+
3048+ assertTrue (sentMessage .getHeader ().isSetField (PossDupFlag .FIELD ));
3049+ assertTrue (sentMessage .getHeader ().isSetField (OrigSendingTime .FIELD ));
3050+ }
29853051}
0 commit comments