adding quickfix

This commit is contained in:
Ramiro Paz
2026-03-09 15:35:32 -03:00
parent 0e8fe168ef
commit fe588e92f1
1222 changed files with 1408232 additions and 1 deletions

View File

@ -0,0 +1,15 @@
# GapFill where MsgSeqNum is equal to the expected inbound MsgSeqNum
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# sequence reset with gap fill flag set to Y
I8=FIX.4.135=434=249=TW52=<TIME>56=ISLD36=20123=Y
I8=FIX.4.135=134=2049=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=249=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# logout message and response
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,16 @@
# GapFill where MsgSeqNum is greater than the expected inbound MsgSeqNum
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# sequence reset with gap fill flag set to Y
I8=FIX.4.135=434=1049=TW52=<TIME>56=ISLD36=20123=Y
I8=FIX.4.135=134=2049=TW52=<TIME>56=ISLD112=HELLO
# Resend request for messages 2 to INFINITY
E8=FIX.4.19=5935=234=249=ISLD52=00000000-00:00:0056=TW7=216=99999910=0
# logout message and response
I8=FIX.4.135=534=249=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,15 @@
# GapFill where MsgSeqNum is less than the expected inbound MsgSeqNum
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# sequence reset with gap fill flag set to Y, PosDupFlag set to Y
I8=FIX.4.135=434=149=TW52=<TIME>56=ISLD43=Y122=<TIME-1>36=20123=Y
I8=FIX.4.135=134=249=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=249=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# sequence reset with gap fill flag set to Y, PosDupFlag set to N
I8=FIX.4.135=434=149=TW52=<TIME>56=ISLD36=20123=Y
E8=FIX.4.19=9435=534=349=ISLD52=00000000-00:00:0056=TW58=MsgSeqNum too low, expecting 3 but received 110=0
eDISCONNECT

View File

@ -0,0 +1,20 @@
# SequenceReset where NewSeqNo is greater than the expected inbound MsgSeqNum
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# sequence reset without gap fill flag (default to N)
I8=FIX.4.135=434=049=TW52=<TIME>56=ISLD36=25
I8=FIX.4.135=134=2549=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=249=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# sequence reset with gap fill flag set to N
I8=FIX.4.135=434=049=TW52=<TIME>56=ISLD36=50123=N
I8=FIX.4.135=134=5049=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=349=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# logout message and response
I8=FIX.4.135=534=5149=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=449=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,20 @@
# SequenceReset where NewSeqNo is equal to the expected inbound MsgSeqNum
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# sequence reset without gap fill flag (default to N)
I8=FIX.4.135=434=049=TW52=<TIME>56=ISLD36=2
I8=FIX.4.135=134=249=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=249=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# sequence reset with gap fill flag set to N
I8=FIX.4.135=434=049=TW52=<TIME>56=ISLD36=4123=N
I8=FIX.4.135=134=449=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=349=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# logout message and response
I8=FIX.4.135=534=549=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=449=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,24 @@
# SequenceReset where NewSeqNo is less than the expected inbound MsgSeqNum
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# sequence reset without gap fill flag (default to N)
I8=FIX.4.135=434=049=TW52=<TIME>56=ISLD36=1
E8=FIX.4.19=10035=334=249=ISLD52=00000000-00:00:0056=TW45=058=Value is incorrect (out of range) for this tag10=0
I8=FIX.4.135=134=249=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=349=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# sequence reset without gap fill flag (default to N)
I8=FIX.4.135=434=049=TW52=<TIME>56=ISLD36=1123=N
E8=FIX.4.19=10035=334=449=ISLD52=00000000-00:00:0056=TW45=058=Value is incorrect (out of range) for this tag10=0
I8=FIX.4.135=134=349=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=549=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=649=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,8 @@
# If a logout is received, send a logout
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=534=249=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=249=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,42 @@
# @testcase 14.a
# @condition Recieve message with a field identifier (tag number) not defined in the specification (not user defined)
# @expected Send Reject (session-level) message referencing invalid tag number. Increment inbound MsgSeqNum. Generate an error condition in test output.
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
# heartbeat message with a field that is not in the specification, but is in the correct range
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD999=HI
# expect a reject
E8=FIX.4.19=7835=334=249=ISLD52=00000000-00:00:0056=TW45=258=Invalid tag number (999)10=0
# heartbeat message with a field that is below the valid range for fields
I8=FIX.4.135=034=349=TW52=<TIME>56=ISLD0=HI
# expect a reject
E8=FIX.4.19=7635=334=349=ISLD52=00000000-00:00:0056=TW45=358=Invalid tag number (0)10=0
# heartbeat message with a field that is negative
I8=FIX.4.135=034=449=TW52=<TIME>56=ISLD-1=HI
# expect a reject
E8=FIX.4.19=7735=334=449=ISLD52=00000000-00:00:0056=TW45=458=Invalid tag number (-1)10=0
# heartbeat message with a field that is above the valid range for specification defined fields (user defined is not implemented yet)
I8=FIX.4.135=034=549=TW52=<TIME>56=ISLD5000=HI
# expect a reject
E8=FIX.4.19=7935=334=549=ISLD52=00000000-00:00:0056=TW45=558=Invalid tag number (5000)10=0
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=649=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=649=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,32 @@
# @testcase 14.b
# @condition Recieve message with a required field identifier (tag number) missing
# @expected Send Reject (session-level) message referencing required tag missing. Increment inbound MsgSeqNum. Generate an error condition in test output.
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
# heartbeat message with a required field missing (TargetCompID) in the message header
I8=FIX.4.135=034=249=TW52=<TIME>
# expect a reject
E8=FIX.4.19=7935=334=249=ISLD52=00000000-00:00:0056=TW45=258=Required tag missing (56)10=0
# quote message with a required field missing (Symbol)
I8=FIX.4.135=D49=TW34=356=ISLD52=<TIME>38=10040=160=<TIME>54=121=311=id
# expect a reject
E8=FIX.4.19=7935=334=349=ISLD52=00000000-00:00:0056=TW45=358=Required tag missing (55)10=0
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=449=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,27 @@
# @testcase 14.c
# @condition Recieve message with a field identifier (tag number) which is identified in the specification, but not for this message type. (not user defined)
# @expected Send Reject (session-level) message referencing tag not defined for this message type. Increment inbound MsgSeqNum. Generate an error condition in test output.
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
# heartbeat message with a field identified that isn't for this message type
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD55=MSFT
# expect a reject
E8=FIX.4.19=9635=334=249=ISLD52=00000000-00:00:0056=TW45=258=Tag not defined for this message type (55)10=0
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,27 @@
# @testcase 14.d
# @condition Recieve message with a field identifier (tag number) specified but no value.
# @expected Send Reject (session-level) message referencing tag specified without a value. Increment inbound MsgSeqNum. Generate an error condition in test output.
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
# heartbeat message with a field identified that doesn't have a value
I8=FIX.4.135=034=249=TW52=<TIME>56=
# expect a reject
E8=FIX.4.19=8835=334=249=ISLD52=00000000-00:00:0056=TW45=258=Tag specified without a value (56)10=0
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,26 @@
# @testcase 14e
# @Receive message with incorrect value (out of range or not part of valid list of enumerated values) for a particular field identifier (tag number).
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
#New order message with incorrect enum value. Handling instructions (21) = 4
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD11=ID21=440=154=138=002000.0055=INTC60=<TIME>
# expect a reject
E8=FIX.4.19=10535=334=249=ISLD52=00000000-00:00:0056=TW45=258=Value is incorrect (out of range) for this tag (21)10=0
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,25 @@
# @testcase 14f
# @Receive message with a value in an incorrect data format (syntax) for a particular field identifier (tag number).
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
#New order message with incorrect value. Qty (38) has a leading + sign
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD11=ID21=140=154=138=+200.0055=INTC60=<TIME>
# expect a reject
E8=FIX.4.19=9035=334=249=ISLD52=00000000-00:00:0056=TW45=258=Incorrect data format for value (38)10=0
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,32 @@
# @testcase 14.g
# @condition Recieve message in which the following are not true: header+body+trailer is the order
# @expected Send Reject (session-level) message referencing incorrect message structure. Increment inbound MsgSeqNum. Generate an error condition in test output.
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
# new order message with all body tags first
I8=FIX.4.135=D11=id21=340=154=155=MSFT60=<TIME>34=249=TW52=<TIME>56=ISLD
# expect a reject
E8=FIX.4.19=9435=334=249=ISLD52=00000000-00:00:0056=TW45=258=Tag specified out of required order (34)10=0
# new order message with one body tag first
I8=FIX.4.135=D55=MSFT34=349=TW52=<TIME>56=ISLD11=id21=340=154=160=<TIME>
# expect a reject
E8=FIX.4.19=9435=334=349=ISLD52=00000000-00:00:0056=TW45=358=Tag specified out of required order (34)10=0
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=449=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,26 @@
# @testcase 14h
# @Receive a message in which a field identifier (tag number) which is not part of a repeating group is specified more than once
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
#New order message with incorrect value. Side (40) is repeated, not part of repeating group
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD11=ID21=140=140=254=138=20055=INTC60=<TIME>
# expect a reject
E8=FIX.4.19=8535=334=249=ISLD52=00000000-00:00:0056=TW45=258=Tag appears more than once (40)10=0
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,32 @@
# @testcase 15 - Send application or administrative messages to test normal and abnormal behavior/response
# @condition Send more than one message of the same type with header and body fields ordered differently to verify acceptance. (Excluding those which have restrictions regarding order)
# @expected Messages accepted and subsequent messages' MsgSeqNum are accepted
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
# new order message
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD11=id21=338=10040=154=155=MSFT
# expect
E8=FIX.4.19=8135=D34=249=ISLD52=00000000-00:00:0056=TW11=id21=338=10040=154=155=MSFT10=0
# new order message with header and body fields in different order
I8=FIX.4.135=D49=TW34=356=ISLD52=<TIME>38=10040=155=MSFT54=121=311=id
# expect
E8=FIX.4.19=8135=D34=349=ISLD52=00000000-00:00:0056=TW11=id21=338=10040=154=155=MSFT10=0
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=449=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,30 @@
# @testcase 19.a - Test PossResend handling
# @condition Receive messagewith PossResend = 'Y' and application-level check of Message specific ID indicates that it has already been seen on this session
# @expected Ignore the message
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
# new order message
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD11=id21=338=10040=154=155=MSFT
# expect
E8=FIX.4.19=8135=D34=249=ISLD52=00000000-00:00:0056=TW11=id21=338=10040=154=155=MSFT10=0
# sending the same message with PossResend flag set
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD97=Y11=id21=338=10040=154=155=MSFT
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,27 @@
# @testcase 19.b - Test PossResend handling
# @condition Receive messagewith PossResend = 'Y' and application-level check of Message specific ID indicates that it has NOT been seen on this session
# @expected Accept and process the message normally
iCONNECT
# logon message and response
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=2
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=210=0
#------------------------
# begin message exchange
#------------------------
# sending the same message with PossResend flag set
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD97=Y11=id21=338=10040=154=155=MSFT
# expect
E8=FIX.4.19=8635=D34=249=ISLD52=00000000-00:00:0056=TW97=Y11=id21=338=10040=154=155=MSFT10=0
#------------------------
# end message exchange
#------------------------
# logout message and response
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,12 @@
# if the message sequence number is too high, respond with long and send
# resend request
iCONNECT
I8=FIX.4.135=A34=549=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:00.00056=TW98=0108=3010=0
E8=FIX.4.19=5935=234=249=ISLD52=00000000-00:00:0056=TW7=116=99999910=0
# logout message and response
I8=FIX.4.135=534=649=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,10 @@
# When we receive a valid logon, we must respond with one
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:00.00056=TW98=0108=3010=0
# logout message and response
I8=FIX.4.135=534=249=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=249=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,16 @@
# If two logons with the same SenderCompID/TargetCompID combination logon
# the second one must be disconnected
# First logon, succesful
i1,CONNECT
I1,8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E1,8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# Second logon, unsuccesful
i2,CONNECT
I2,8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
# wait for disconnect for second connection
e2,DISCONNECT
# force disconnect on first connection
i1,DISCONNECT

View File

@ -0,0 +1,5 @@
# If a bad SenderCompID is used, we must disconnect
iCONNECT
I8=FIX.4.135=A34=149=WT52=<TIME>56=ISLD98=0108=30
eDISCONNECT

View File

@ -0,0 +1,5 @@
# If a bad TargetCompID is used, we must disconnect
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=DLSI98=0108=30
eDISCONNECT

View File

@ -0,0 +1,5 @@
# Disconnect if we receive a bad sending time
iCONNECT
I8=FIX.4.135=A34=149=TW52=20010101-00:00:0056=ISLD98=0108=30
eDISCONNECT

View File

@ -0,0 +1,5 @@
# If the length of a logon message is invalid, we must disconnect
iCONNECT
I8=FIX.4.19=4035=A34=149=TW52=<TIME>56=ISLD98=0108=30
eDISCONNECT

View File

@ -0,0 +1,5 @@
# Disconnect if we receive a bad begin string
iCONNECT
I8=FIX.3.935=A34=149=TW52=<TIME>56=ISLD98=0108=30
eDISCONNECT

View File

@ -0,0 +1,5 @@
# If first message is not a Logon, we must disconnect
iCONNECT
I8=FIX.4.135=034=149=TW52=<TIME>56=DLSI
eDISCONNECT

View File

@ -0,0 +1,33 @@
# If message sequence number is too high, send a resend request for
# missing messages
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=249=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=349=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
# Sending message 7 when last message sent was 3
I8=FIX.4.135=034=749=TW52=<TIME>56=ISLD
# Receive Resend request for messages 4 to 6
E8=FIX.4.19=5935=234=449=ISLD52=00000000-00:00:0056=TW7=416=99999910=0
# Send Resend request for messages 2 to 3
I8=FIX.4.135=234=849=TW52=<TIME>56=ISLD7=216=3
E8=FIX.4.19=10835=D34=243=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=INTC10=0
E8=FIX.4.19=10835=D34=343=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=INTC10=0
I8=FIX.4.135=034=443=Y49=TW52=<TIME>122=<TIME>56=ISLD
I8=FIX.4.135=034=543=Y49=TW52=<TIME>122=<TIME>56=ISLD
I8=FIX.4.135=034=643=Y49=TW52=<TIME>122=<TIME>56=ISLD
# logout message and response
I8=FIX.4.135=534=749=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=549=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,15 @@
# Send messages with incrementing sequence numbers
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=349=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=449=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=549=TW52=<TIME>56=ISLD
# logout message and response
I8=FIX.4.135=534=649=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=249=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,28 @@
# If message sequence number is too high, send a resend request for
# missing messages
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=349=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=449=TW52=<TIME>56=ISLD
# Sending message 10 when last message send was 4
I8=FIX.4.135=034=1049=TW52=<TIME>56=ISLD
# Resend request for messages 5 to 9
E8=FIX.4.19=5935=234=249=ISLD52=00000000-00:00:0056=TW7=516=99999910=0
# Send the messages
I8=FIX.4.135=034=549=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=649=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=749=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=849=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=949=TW52=<TIME>56=ISLD
# logout message and response
I8=FIX.4.135=534=1149=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,12 @@
# If message sequence number is too low, we must disconnect
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=349=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=449=TW52=<TIME>56=ISLD
# Message 2 was already sent
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD
E8=FIX.4.19=9435=534=249=ISLD52=00000000-00:00:0056=TW58=MsgSeqNum too low, expecting 5 but received 210=0
eDISCONNECT

View File

@ -0,0 +1,27 @@
# If message is garbled, it should be ignored
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.135=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=30
# Garbled message
I8=FIX.4.19=5235=034=24garbled9=TW52=<TIME>56=ISLD10=0
# Corrected message
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD
# Garbled message
I8=FIX.4.19=8135=D34=349garbled=TW52=<TIME>56=ISLD11=ID21=340=154=155=INTC10=0
# Correct message with new sequence number
I8=FIX.4.135=034=449=TW52=<TIME>56=ISLD
# Resend request for missed message
E8=FIX.4.19=5935=234=249=ISLD52=00000000-00:00:0056=TW7=316=99999910=0
# Send requested message
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=349=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC
# logout message and response
I8=FIX.4.135=534=549=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=449=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,14 @@
# Duplicate sequence number was received, and PossDup is set to 'Y'
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=7
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD
I8=FIX.4.135=034=249=TW52=<TIME>122=<TIME>56=ISLD43=Y112=<TIME>
I8=FIX.4.135=034=349=TW52=<TIME>56=ISLD
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=249=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,17 @@
# Duplicate sequence number was not received, and PossDup is set to 'Y'
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD
# Already received, this should be ignored
I8=FIX.4.135=034=249=TW52=<TIME>122=<TIME>56=ISLD43=Y
# Not yet received, this should be processed
I8=FIX.4.135=034=349=TW52=<TIME>122=<TIME>56=ISLD43=Y
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=249=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,22 @@
# PossDupFlag is set to 'Y', OrigSendingTime is greater than SendingTime, and
# MsgSeqNum is too low. A Reject and Logout must be sent.
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# send two orders in sequence
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=249=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=349=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
# resend message 2 with larger OrigSendingTime
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD43=Y122=<TIME+10>11=ID21=338=10040=154=155=INTC
# reject message
E8=FIX.4.19=8235=334=449=ISLD52=00000000-00:00:0056=TW45=258=SendingTime accuracy problem10=0
# logout message
E8=FIX.4.19=4535=534=549=ISLD52=00000000-00:00:0056=TW10=0
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
eDISCONNECT

View File

@ -0,0 +1,27 @@
# PossDupFlag is set to 'Y', OrigSendingTime is does not exist
# A Reject message must be sent.
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# send two orders in sequence
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=249=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=349=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
# resend message 2 with no OrigSendingTime
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD43=Y11=ID21=338=10040=154=155=INTC
# reject message
E8=FIX.4.19=8035=334=449=ISLD52=00000000-00:00:0056=TW45=258=Required tag missing (122)10=0
# make sure sequence number no incremented
I8=FIX.4.135=134=449=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=549=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# logout message
I8=FIX.4.135=534=549=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=649=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,20 @@
# Send message with invalid BeginString
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# Send with incorrect begin string and respond to logout
I8=FIX.4.035=134=249=TW52=<TIME>56=ISLD112=id
E8=FIX.4.19=7035=534=249=ISLD52=00000000-00:00:0056=TW58=Incorrect BeginString10=0
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
eDISCONNECT
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# Send with incorrect begin string and don't respond to logout
I8=FIX.4.035=134=249=TW52=<TIME>56=ISLD112=id
E8=FIX.4.19=7035=534=249=ISLD52=00000000-00:00:0056=TW58=Incorrect BeginString10=0
eDISCONNECT

View File

@ -0,0 +1,47 @@
# SenderCompID is invalid. We must reject message and send a logout
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# send order with bad SenderCompID
I8=FIX.4.135=D34=249=WT52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
# reject message
E8=FIX.4.19=6835=334=249=ISLD52=00000000-00:00:0056=TW45=258=CompID problem10=0
# logout message
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
eDISCONNECT
# TargetCompID is invalid
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# send order with bad TargetCompID
I8=FIX.4.135=D34=249=TW52=<TIME>56=DLSI11=ID21=338=10040=154=155=INTC
# reject message
E8=FIX.4.19=6835=334=249=ISLD52=00000000-00:00:0056=TW45=258=CompID problem10=0
# logout message
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
eDISCONNECT
# SenderCompID and TargetCompID is invalid
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# send order with bad SenderCompID and TargetCompID
I8=FIX.4.135=D34=249=WT52=<TIME>56=DLSI11=ID21=338=10040=154=155=INTC
# reject message
E8=FIX.4.19=6835=334=249=ISLD52=00000000-00:00:0056=TW45=258=CompID problem10=0
# logout message
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
eDISCONNECT

View File

@ -0,0 +1,34 @@
# If message with an invalid length is sent, we must ignore it
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# Send a message with a length that is too short
I8=FIX.4.19=3035=D34=249=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
# Follow with a valid FIX message
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
# Invalid message was ignored, and valid one was processed. Therefore
# we should expect a resend request
E8=FIX.4.19=5935=234=249=ISLD52=00000000-00:00:0056=TW7=216=99999910=0
# Correctly resend the bad message we sent before
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD122=<TIME>11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=349=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
E8=FIX.4.19=8135=D34=449=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
# Send a message with a length that is too long, it will combine with the next message
# and be ignored
I8=FIX.4.19=11135=D34=449=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
I8=FIX.4.135=D34=549=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
# sending the last bad message correctly
I8=FIX.4.135=D34=449=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
I8=FIX.4.135=D34=549=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=549=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
E8=FIX.4.19=8135=D34=649=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
# logout message and response
I8=FIX.4.135=534=749=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=749=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,25 @@
# SendingTime is too small, reject
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# send heartbeat more than 2 minutes early
I8=FIX.4.135=034=249=TW52=<TIME-121>56=ISLD
# reject and logoff
E8=FIX.4.19=8235=334=249=ISLD52=00000000-00:00:0056=TW45=258=SendingTime accuracy problem10=0
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
eDISCONNECT
# SendingTime is too large, reject
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# send heartbeat more than 2 minutes late
I8=FIX.4.135=034=249=TW52=<TIME+121>56=ISLD
# reject and logoff
E8=FIX.4.19=8235=334=249=ISLD52=00000000-00:00:0056=TW45=258=SendingTime accuracy problem10=0
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
eDISCONNECT

View File

@ -0,0 +1,13 @@
# Send message with invalid MsgType
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=*34=249=TW52=<TIME>56=ISLD
# reject
E8=FIX.4.19=6935=334=249=ISLD52=00000000-00:00:0056=TW45=258=Invalid MsgType10=0
# logoff
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,13 @@
# Message type is not supported by the application
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=834=249=TW52=<TIME>56=ISLD11=id31=10.532=10037=id38=10017=120=039=055=WLRI54=114=06=0.0150=1151=0
E8=FIX.4.19=7835=334=249=ISLD52=00000000-00:00:0056=TW45=258=Unsupported Message Type10=0
# logout
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,20 @@
# Send messages BeginString, BodyLength and MsgType in wrong order
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# 35 is first, should be second
I35=08=FIX.4.19=2934=249=TW52=<TIME>56=ISLD10=121
I8=FIX.4.135=134=249=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=249=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# 34 is second, should be third
I8=FIX.4.134=335=049=TW52=<TIME>56=ISLD
I8=FIX.4.135=134=349=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=349=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=449=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,24 @@
# If message has incorrect checksum, it should be ignored
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=7
# Incorrect checksum
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD10=256
# Correct checksum
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD
# Incorrect checksum
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD11=ID21=340=154=155=INTC10=256
I8=FIX.4.135=034=449=TW52=<TIME>56=ISLD
# Resend request for missed message
E8=FIX.4.19=5935=234=249=ISLD52=00000000-00:00:0056=TW7=316=99999910=0
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=349=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=449=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,26 @@
# If message is garbled, it should be ignored
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.135=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=30
# Garbled message
I8=FIX.4.19=5235=034=24garbled9=TW52=<TIME>56=ISLD10=0
# Corrected message
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD
# Garbled message
I8=FIX.4.19=8135=D34=349garbled=TW52=<TIME>56=ISLD11=ID21=340=154=155=INTC10=0
# Correct message with new sequence number
I8=FIX.4.135=034=449=TW52=<TIME>56=ISLD
# Resend request for missed message
E8=FIX.4.19=5935=234=249=ISLD52=00000000-00:00:0056=TW7=316=99999910=0
# Send requested message
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD122=<TIME>11=ID21=338=10040=154=155=INTC
E8=FIX.4.135=D34=349=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=449=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,23 @@
# We should expect heartbeats if we wait around
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=6
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=610=0
# Wait for quickfix to send a heartbeat to us
E8=FIX.4.19=4535=034=249=ISLD52=00000000-00:00:0056=TW10=0
# we respond with a heartbeat
I8=FIX.4.19=4535=034=249=TW52=<TIME>56=ISLD
# we should get a heartbeat back
E8=FIX.4.19=4535=034=349=ISLD52=00000000-00:00:0056=TW10=0
# we will send one more for good measure
I8=FIX.4.19=4535=034=349=TW52=<TIME>56=ISLD
# logout message and response
I8=FIX.4.135=534=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=449=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,12 @@
# If a test request is received, a matching heartbeat should be sent
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=134=249=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=249=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# logout message and response
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=349=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,24 @@
# If a heartbeat is not sent to the target, a test request should be received
# and we should eventually timeout
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=6
E8=FIX.4.19=5635=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=610=0
# wait for two heartbeats
E8=FIX.4.19=4535=034=249=ISLD52=00000000-00:00:0056=TW10=0
I8=FIX.4.135=034=249=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=034=349=ISLD52=00000000-00:00:0056=TW10=0
# wait for test request
E8=FIX.4.19=5435=134=449=ISLD52=00000000-00:00:0056=TW112=TEST10=210
I8=FIX.4.135=034=349=TW52=<TIME>56=ISLD112=TEST
# wait for two heartbeats
E8=FIX.4.19=4535=034=549=ISLD52=00000000-00:00:0056=TW10=0
I8=FIX.4.135=034=449=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=034=649=ISLD52=00000000-00:00:0056=TW10=0
# wait for three test requests and disconnect
E8=FIX.4.19=5435=134=749=ISLD52=00000000-00:00:0056=TW112=TEST10=213
eDISCONNECT

View File

@ -0,0 +1,12 @@
# Increment MsgSeqNum if a reject is sent
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# reject
I8=FIX.4.135=334=249=TW52=<TIME>56=ISLD45=1
I8=FIX.4.135=534=349=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=249=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,71 @@
# ResendRequest message requesting Admin messages
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# Admin messages 2-4
I8=FIX.4.135=134=249=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=249=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
I8=FIX.4.135=134=349=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=349=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
I8=FIX.4.135=134=449=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=449=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# Application Messages 5-6
I8=FIX.4.135=D34=549=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=549=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
I8=FIX.4.135=D34=649=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=CDG
E8=FIX.4.19=8035=D34=649=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=CDG10=0
# Admin Messages 7-8
I8=FIX.4.135=134=749=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=749=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
I8=FIX.4.135=134=849=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=849=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# Application Messages 9
I8=FIX.4.135=D34=949=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=IVP
E8=FIX.4.19=8035=D34=949=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=IVP10=0
# Admin messages 2-4
I8=FIX.4.135=234=1049=TW52=<TIME>56=ISLD7=216=4
E8=FIX.4.19=8335=434=243=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0036=5123=Y10=0
# Admin messages 2-4, App messages 5-6
I8=FIX.4.135=234=1149=TW52=<TIME>56=ISLD7=216=6
E8=FIX.4.19=8335=434=243=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0036=5123=Y10=0
E8=FIX.4.19=10835=D34=543=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=INTC10=0
E8=FIX.4.19=10735=D34=643=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=CDG10=0
# Admin messages 2-4, App messages 5-6, Admin messages 7-8
I8=FIX.4.135=234=1249=TW52=<TIME>56=ISLD7=216=8
E8=FIX.4.19=8335=434=243=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0036=5123=Y10=0
E8=FIX.4.19=10835=D34=543=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=INTC10=0
E8=FIX.4.19=10735=D34=643=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=CDG10=0
E8=FIX.4.19=8335=434=743=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0036=9123=Y10=0
# Admin messages 2-4, App messages 5-6, Admin messages 7-8, App message 9
I8=FIX.4.135=234=1349=TW52=<TIME>56=ISLD7=216=9
E8=FIX.4.19=8335=434=243=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0036=5123=Y10=0
E8=FIX.4.19=10835=D34=543=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=INTC10=0
E8=FIX.4.19=10735=D34=643=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=CDG10=0
E8=FIX.4.19=8335=434=743=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0036=9123=Y10=0
E8=FIX.4.19=10735=D34=943=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=IVP10=0
# Request message to 999999 (infinity)
I8=FIX.4.135=234=1449=TW52=<TIME>56=ISLD7=216=999999
E8=FIX.4.19=8335=434=243=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0036=5123=Y10=0
E8=FIX.4.19=10835=D34=543=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=INTC10=0
E8=FIX.4.19=10735=D34=643=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=CDG10=0
E8=FIX.4.19=8335=434=743=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0036=9123=Y10=0
E8=FIX.4.19=10735=D34=943=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=IVP10=0
# make sure our seq numbers are still correct
I8=FIX.4.135=134=1549=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5635=034=1049=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# logout message and response
I8=FIX.4.135=534=1649=TW52=<TIME>56=ISLD
E8=FIX.4.19=4635=534=1149=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,28 @@
# ResendRequest message requesting Admin messages
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=134=249=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=249=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
I8=FIX.4.135=134=349=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=349=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
I8=FIX.4.135=134=449=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=449=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# Only admin messages requested, expect one gap fill
I8=FIX.4.135=234=549=TW52=<TIME>56=ISLD7=116=4
E8=FIX.4.19=8335=434=143=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0036=5123=Y10=0
# make sure our seq numbers are still correct
I8=FIX.4.135=134=649=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=549=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# Request message to 999999 (infinity)
I8=FIX.4.135=234=549=TW52=<TIME>56=ISLD7=116=999999
E8=FIX.4.19=8335=434=143=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0036=6123=Y10=0
# logout message and response
I8=FIX.4.135=534=649=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=649=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,34 @@
# ResendRequest message requesting Application messages
iCONNECT
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC
E8=FIX.4.19=8135=D34=249=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=CDG
E8=FIX.4.19=8035=D34=349=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=CDG10=0
I8=FIX.4.135=D34=449=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=IVP
E8=FIX.4.19=8035=D34=449=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=IVP10=0
# Only application messages requested, all should be resent
I8=FIX.4.135=234=549=TW52=<TIME>56=ISLD7=216=4
E8=FIX.4.19=10835=D34=243=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=INTC10=0
E8=FIX.4.19=10735=D34=343=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=CDG10=0
E8=FIX.4.19=10735=D34=443=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=IVP10=0
# make sure our seq numbers are still correct
I8=FIX.4.135=134=649=TW52=<TIME>56=ISLD112=HELLO
E8=FIX.4.19=5535=034=549=ISLD52=00000000-00:00:0056=TW112=HELLO10=0
# Request message to 999999 (infinity)
I8=FIX.4.135=234=749=TW52=<TIME>56=ISLD7=216=999999
E8=FIX.4.19=10835=D34=243=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=INTC10=0
E8=FIX.4.19=10735=D34=343=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=CDG10=0
E8=FIX.4.19=10735=D34=443=Y49=ISLD52=00000000-00:00:0056=TW122=00000000-00:00:0011=ID21=338=10040=154=155=IVP10=0
E8=FIX.4.19=8335=434=543=Y49=ISLD52=20040227-19:56:4856=TW122=00000000-00:00:0036=6123=Y10=068
# logout message and response
I8=FIX.4.135=534=849=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=649=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,14 @@
# When we receive a valid logon, we must respond with one
i1,CONNECT
I1,8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E1,8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
i2,CONNECT
I2,8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
e2,DISCONNECT
# logout message and response
I1,8=FIX.4.135=534=249=TW52=<TIME>56=ISLD
E1,8=FIX.4.19=4535=534=249=ISLD52=00000000-00:00:0056=TW10=0
e1,DISCONNECT

View File

@ -0,0 +1,26 @@
# Reject resent message
iCONNECT
#Logon
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# send in a test request one number too high
I8=FIX.4.135=134=349=TW52=<TIME>56=ISLD112=HELLO1
# receive resend request for message 2
E8=FIX.4.19=5935=234=249=ISLD52=00000000-00:00:0056=TW7=216=99999910=0
# send order with badly formatted field 126
I8=FIX.4.135=D34=243=Y49=TW52=<TIME>56=ISLD122=<TIME>11=ID21=338=10040=154=155=IVP126=20040415
# receive session reject
E8=FIX.4.19=9135=334=349=ISLD52=00000000-00:00:0056=TW45=258=Incorrect data format for value (126)10=245
# send in a second test request, tests requests should be processed in order
I8=FIX.4.135=134=449=TW52=<TIME>56=ISLD112=HELLO2
E8=FIX.4.19=5635=034=449=ISLD52=00000000-00:00:0056=TW112=HELLO110=0
E8=FIX.4.19=5635=034=549=ISLD52=00000000-00:00:0056=TW112=HELLO210=0
# logout message and response
I8=FIX.4.135=534=1149=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=649=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,42 @@
# Reverse routing fields on rejects
iCONNECT
#Logon
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# Send an order with OnBehalfOfCompID (115) set with bad field value 40=w
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD115=JCD11=ID21=338=10040=w54=155=INTC60=<TIME>
# Expect to see a reject with reverse route DeliverToCompID (128) set
E8=FIX.4.19=11335=334=249=ISLD52=00000000-00:00:0056=TW128=JCD45=258=Value is incorrect (out of range) for this tag (40)10=0
# Send an order with DeliverToCompID (128) set with bad field value 40=w
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD128=JCD11=ID21=338=10040=w54=155=INTC60=<TIME>
# Expect to see a reject with reverse route OnBehalfOfCompID (115) set
E8=FIX.4.19=11335=334=349=ISLD52=00000000-00:00:0056=TW115=JCD45=358=Value is incorrect (out of range) for this tag (40)10=0
# Send an order with OnBehalfOfCompID (115) and OnBehalfOfSubID (116) set with bad field value 40=w
I8=FIX.4.135=D34=449=TW52=<TIME>56=ISLD115=JCD116=CS11=ID21=338=10040=w54=155=INTC60=<TIME>
# Expect to see a reject with reverse route DeliverToCompID (128) and DeliverToSubID (129) set
E8=FIX.4.19=12035=334=449=ISLD52=00000000-00:00:0056=TW128=JCD129=CS45=458=Value is incorrect (out of range) for this tag (40)10=0
# Send an order with DeliverToCompID (128) and DeliverToSubID (129) set with bad field value 40=w
I8=FIX.4.135=D34=549=TW52=<TIME>56=ISLD128=JCD129=CS11=ID21=338=10040=w54=155=INTC60=<TIME>
# Expect to see reverse route OnBehalfOfCompID (115) and OnBehalfOfSubID (116) set
E8=FIX.4.19=12035=334=549=ISLD52=00000000-00:00:0056=TW115=JCD116=CS45=558=Value is incorrect (out of range) for this tag (40)10=0
# Send an order with OnBehalfOfCompID (115) and OnBehalfOfSubID (116) and OnBehalfOfLocationID (144) set with bad field value 40=w
I8=FIX.4.135=D34=649=TW52=<TIME>56=ISLD115=JCD116=CS144=CHI11=ID21=338=10040=w54=155=INTC60=<TIME>
# Expect to see reverse route DeliverToCompID (128) and DeliverToSubID (129) and DeliverToLocationID (145) set
E8=FIX.4.19=12835=334=649=ISLD52=00000000-00:00:0056=TW128=JCD129=CS145=CHI45=658=Value is incorrect (out of range) for this tag (40)10=0
# Send an order with DeliverToCompID (128) and DeliverToSubID (129) and DeliverToLocationID (145) set with bad field value 40=w
I8=FIX.4.135=D34=749=TW52=<TIME>56=ISLD128=JCD129=CS145=CHI11=ID21=338=10040=w54=155=INTC60=<TIME>
# Expect to see reverse route OnBehalfOfCompID (115) and OnBeHalfOfSubID (116) and OnBehalfOfLocationID (144) set
E8=FIX.4.19=12835=334=749=ISLD52=20040503-17:56:0156=TW115=JCD116=CS144=CHI45=758=Value is incorrect (out of range) for this tag (40)10=0
# logout message and response
I8=FIX.4.135=534=849=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=849=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT

View File

@ -0,0 +1,42 @@
# Do not reverse routing field if it is empty
iCONNECT
#Logon
I8=FIX.4.135=A34=149=TW52=<TIME>56=ISLD98=0108=30
E8=FIX.4.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=3010=0
# Send an order with OnBehalfOfCompID (115) empty
I8=FIX.4.135=D34=249=TW52=<TIME>56=ISLD115=11=ID21=338=10040=154=155=INTC60=<TIME>
# Expect to see a reject with reverse route DeliverToCompID (128) not present
E8=FIX.4.19=8935=334=249=ISLD52=00000000-00:00:0056=TW45=258=Tag specified without a value (115)10=0
# Send an order with DeliverToCompID (128) empty
I8=FIX.4.135=D34=349=TW52=<TIME>56=ISLD128=11=ID21=338=10040=154=155=INTC60=<TIME>
# Expect to see a reject with reverse route OnBehalfOfCompID (115) not present
E8=FIX.4.19=8935=334=349=ISLD52=00000000-00:00:0056=TW45=358=Tag specified without a value (128)10=0
# Send an order with OnBehalfOfCompID (115) and OnBehalfOfSubID (116) empty
I8=FIX.4.135=D34=449=TW52=<TIME>56=ISLD115=JCD116=11=ID21=338=10040=154=155=INTC60=<TIME>
# Expect to see a reject with reverse route DeliverToCompID (128) set and DeliverToSubID (129) not present
E8=FIX.4.19=9735=334=449=ISLD52=00000000-00:00:0056=TW128=JCD45=458=Tag specified without a value (116)10=0
# Send an order with DeliverToCompID (128) and DeliverToSubID (129) empty
I8=FIX.4.135=D34=549=TW52=<TIME>56=ISLD128=JCD129=11=ID21=338=10040=154=155=INTC60=<TIME>
# Expect to see reverse route OnBehalfOfCompID (115) and OnBehalfOfSubID (116) not present
E8=FIX.4.19=9735=334=549=ISLD52=00000000-00:00:00.00056=TW115=JCD45=558=Tag specified without a value (129)10=0
# Send an order with OnBehalfOfCompID (115) and OnBehalfOfSubID (116) set and OnBehalfOfLocationID (144) empty
I8=FIX.4.135=D34=649=TW52=<TIME>56=ISLD115=JCD116=CS144=11=ID21=338=10040=154=155=INTC60=<TIME>
# Expect to see reverse route DeliverToCompID (128) and DeliverToSubID (129) set and DeliverToLocationID (145) not present
E8=FIX.4.19=10435=334=649=ISLD52=00000000-00:00:0056=TW128=JCD129=CS45=658=Tag specified without a value (144)10=0
# Send an order with DeliverToCompID (128) and DeliverToSubID (129) set and DeliverToLocationID (145) empty
I8=FIX.4.135=D34=749=TW52=<TIME>56=ISLD128=JCD129=CS145=11=ID21=338=10040=w54=155=INTC60=<TIME>
# Expect to see reverse route OnBehalfOfCompID (115) and OnBeHalfOfSubID (116) set and OnBehalfOfLocationID (144) not present
E8=FIX.4.19=10435=334=749=ISLD52=00000000-00:00:0056=TW115=JCD116=CS45=758=Tag specified without a value (145)10=0
# logout message and response
I8=FIX.4.135=534=849=TW52=<TIME>56=ISLD
E8=FIX.4.19=4535=534=849=ISLD52=00000000-00:00:0056=TW10=0
eDISCONNECT