@@ -103,7 +103,7 @@ public void testDisposalOfFileResources() throws Exception {
103
103
new DefaultMessageFactory (), 30 , false , 30 , UtcTimestampPrecision .MILLIS , true , false ,
104
104
false , false , false , false , true , false , 1.5 , null , true ,
105
105
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 )) {
107
107
// Simulate socket disconnect
108
108
session .setResponder (null );
109
109
}
@@ -144,7 +144,7 @@ public void testNondisposableFileResources() throws Exception {
144
144
new DefaultMessageFactory (), 30 , false , 30 , UtcTimestampPrecision .MILLIS , true , false ,
145
145
false , false , false , false , true , false , 1.5 , null , true ,
146
146
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 )) {
148
148
// Simulate socket disconnect
149
149
session .setResponder (null );
150
150
@@ -2105,7 +2105,7 @@ private void testSequenceResetGapFillWithChunkSize(int chunkSize)
2105
2105
UtcTimestampPrecision .MILLIS , resetOnLogon , false , false , false , false , false , true ,
2106
2106
false , 1.5 , null , validateSequenceNumbers , new int [] { 5 },
2107
2107
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 )) {
2109
2109
2110
2110
UnitTestResponder responder = new UnitTestResponder ();
2111
2111
session .setResponder (responder );
@@ -2167,7 +2167,7 @@ public void correct_sequence_number_for_last_gap_fill_if_next_sender_sequence_nu
2167
2167
new DefaultMessageFactory (), 30 , false , 30 , UtcTimestampPrecision .MILLIS , resetOnLogon ,
2168
2168
false , false , false , false , false , true , false , 1.5 , null , validateSequenceNumbers ,
2169
2169
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 );
2171
2171
2172
2172
Responder mockResponder = mock (Responder .class );
2173
2173
when (mockResponder .send (anyString ())).thenReturn (true );
@@ -2215,7 +2215,7 @@ public void correct_sequence_number_for_last_gap_fill_if_next_sender_sequence_nu
2215
2215
new DefaultMessageFactory (), 30 , false , 30 , UtcTimestampPrecision .MILLIS , resetOnLogon ,
2216
2216
false , false , false , false , false , true , false , 1.5 , null , validateSequenceNumbers ,
2217
2217
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 );
2219
2219
2220
2220
Responder mockResponder = mock (Responder .class );
2221
2221
when (mockResponder .send (anyString ())).thenReturn (true );
@@ -2264,7 +2264,7 @@ public void testMsgSeqNumTooHighWithDisconnectOnError() throws Exception {
2264
2264
UtcTimestampPrecision .MILLIS , resetOnLogon , false , false , false , false , false , true ,
2265
2265
false , 1.5 , null , validateSequenceNumbers , new int [] { 5 },
2266
2266
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 )) {
2268
2268
2269
2269
UnitTestResponder responder = new UnitTestResponder ();
2270
2270
session .setResponder (responder );
@@ -2300,7 +2300,7 @@ public void testTimestampPrecision() throws Exception {
2300
2300
UtcTimestampPrecision .NANOS , resetOnLogon , false , false , false , false , false , true ,
2301
2301
false , 1.5 , null , validateSequenceNumbers , new int [] { 5 },
2302
2302
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 )) {
2304
2304
2305
2305
UnitTestResponder responder = new UnitTestResponder ();
2306
2306
session .setResponder (responder );
@@ -2352,7 +2352,7 @@ private void testLargeQueue(int N) throws Exception {
2352
2352
new DefaultMessageFactory (), isInitiator ? 30 : 0 , false , 30 , UtcTimestampPrecision .MILLIS , resetOnLogon ,
2353
2353
false , false , false , false , false , true , false , 1.5 , null , validateSequenceNumbers ,
2354
2354
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 );
2356
2356
2357
2357
UnitTestResponder responder = new UnitTestResponder ();
2358
2358
session .setResponder (responder );
@@ -2468,7 +2468,7 @@ public void fromAdmin(Message message, SessionID sessionId) throws FieldNotFound
2468
2468
new DefaultMessageFactory (), isInitiator ? 30 : 0 , false , 30 , UtcTimestampPrecision .MILLIS , resetOnLogon ,
2469
2469
false , false , false , false , false , true , false , 1.5 , null , validateSequenceNumbers ,
2470
2470
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 );
2472
2472
UnitTestResponder responder = new UnitTestResponder ();
2473
2473
session .setResponder (responder );
2474
2474
@@ -2982,4 +2982,70 @@ public void disconnect() {
2982
2982
}
2983
2983
}
2984
2984
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
+ }
2985
3051
}
0 commit comments