Post on 03-Jun-2018
transcript
8/12/2019 FIX TestCase SessionLevel20010710
1/24
FIX Session-level Test Cases and Expected Behaviors** DRAFT **
Last Revised: July 10, 2001
8/12/2019 FIX TestCase SessionLevel20010710
2/24
Table of Contents
Table of Contents....................................................................................................................................................................................................................................2
FIX Session-level Test Cases and !"e#ted $e%avio&s..........................................................................................................................................................................'
(""li#ability........................................................................................................................................................................................................................................'
FIX Session-level State )at&i!...........................................................................................................................................................................................................*FIX Lo+on &o#ess State T&ansition ia+&a................................................................................................................................................................................/
FIX Lo+out &o#ess State T&ansition ia+&a...............................................................................................................................................................................
Test #ases............................................................................................................................................................................................................................................
$uyside-o&iented session initiato&3 Lo+on and session initiation test #ase....................................................................................................................................
Sellside-o&iented session a##e"to&3 Lo+on and session initiation test #ase...................................................................................................................................4
Test #ases a""li#able to all FIX systes.......................................................................................................................................................................................10
8/12/2019 FIX TestCase SessionLevel20010710
3/24
FIX Session-level Test Cases and Expected Behaviors
ApplicabilityT%is do#uent 5as last &evised July 10, 2001 at 5%i#% tie FIX ve&sion *.' 5as t%e latest ve&sion of t%e FIX &oto#ol. 6ote t%at futu&e aendents to t%is
do#uent ay be found on t%e FIX 5ebsite and any ve&sion of t%is do#uent "ublis%ed on a late& date ta7es "&e#eden#e ove& t%is ve&sion of t%e do#uent. T%is
do#uent is a""li#able to all ve&sions of FIX *.X *.0, *.1, *.2, and *.'3 e!#e"t 5%e&e e!"li#itly indi#ated.
8/12/2019 FIX TestCase SessionLevel20010710
4/24
FIX Session-level State Matrix
Precedence State Initiator Acceptor Description
1 is#onne#ted-6o
Conne#tionToday
8 8 Cu&&ently dis#onne#ted, %ave not atte"ted to es tablis% a #onne#tion 9today, and no )s+Se;6u
%ave been #onsued ne!t #onne#tion 9today 5ill sta&t atMsgSeqNumof 13
2 is#onne#ted-
Conne#tion
Today
8 8 Cu&&ently dis#onne#ted, %ave atte"ted to establis% a #onne#tion 9today and t%us )s+Se;6u
%ave been #onsued ne!t #onne#tion 9today 5ill sta&t atMsgSeqNumof last < 13 3
' ete#t $&o7en
6et5o&7
Conne#tion
8 8 =%ile #onne#ted, dete#t a b&o7en net5o&7 #onne#tion e.+. TC so#7et #losed3. is#onne#t t%e
net5o&7 #onne#tion and 9s%utdo5n #onfi+u&ation fo& t%is session.
* (5aitin+
Conne#tion
6 8 Session a##e"to& Lo+on a5aitin+ net5o&7 #onne#tion f&o #ounte&"a&ty
> Initiate
Conne#tion
8 6 Session initiato& Lo+on establis%in+ net5o&7 #onne#tion 5it% #ounte&"a&ty
/ 6et5o&7
Conne#tion
stablis%ed
8 8 6et5o&7 #onne#tion establis%ed bet5een bot% "a&ties
Initiat ion Logon
Sent
8 6 Session initiato& Lo+on send Logonessa+e.
??? !#e"tion: 2*%& sessions.
Initiat ion Logon
Re#eived
6 8 Session a##e"to& Lo+on &e#eive #ounte&"a&ty@s Logonessa+e.
??? !#e"tion: 2*%& sessions.
4 Initiat ion Logon
Res"onse
6 8 Session a##e"to& Lo+on &es"ond to #ounte&"a&ty@s Logonessa+e 5it% Logonessa+e to
%ands%a7e
10 Aandle
ResendRequest
8 8 Re#eive and &es"ond to #ounte&"a&ty@s ResendRequestsendin+ &e;uested essa+es andBo&
SequenceReset-Gap Fillessa+es fo& t%e &an+e ofMsgSeqNum&e;uested11 Re#eive
MsgSeqNumToo
Ai+%
8 8 Re#eive too %i+% ofMsgSeqNumf&o #ounte&"a&ty, ;ueue essa+e, and send ResendRequest
12 (5aitin+B&o#es
sin+ Res"onse to
ResendRequest
8 8 &o#ess &e;uestedMsgSeqNumPossDupFlag8 &esent essa+es andBo& SequenceReset-Gap Fill
essa+es f&o #ounte&"a&ty. Dueue in#oin+ essa+es 5it%MsgSeqNumtoo %i+%
1' 6o essa+es
&e#eived in
Inte&val
8 8 6o inbound essa+es non-+a&bled3 &e#eived in Aea&t$eatInt < 9&easonable "e&iod of tie3, send
TestRequest
1* (5aitin+B&o#es 8 8 &o#ess inbound essa+es. Reset %ea&t beat inte&val-&elated tie& 5%en (68 inbound essa+e
8/12/2019 FIX TestCase SessionLevel20010710
5/24
sin+ Res"onse to
TestRequest
non-+a&bled3 is &e#eived
1> Re#eive Logout
essa+e
8 8 Re#eive Logoutessa+e f&o #ounte&"a&ty initiatin+ lo+outBdis#onne#t. IfMsgSeqNumtoo %i+%,
send ResendRequest. If sent, 5ait a &easonable "e&iod of tie fo& #o"lete &es"onse to
ResendRequest. 6ote t%at de"endin+ u"on t%e &eason fo& t%e Logout, t%e #ounte&"a&ty ay be
unable to fulfill t%e &e;uest. Send Logoutessa+e as &es"onse and 5ait a &easonable "e&iod of tiefo& #ounte&"aty to dis#onne#t t%e net5o&7 #onne#tion. 6ote #ounte&"a&ty ay send a
ResendRequestessa+e if Logoutessa+e &es"onse %asMsgSeqNumtoo %i+% and t%en &e-initiate
t%e Logout"&o#ess.
1/ Initiate Logout
&o#ess
8 8 Identify #ondition o& &eason to +&a#efully dis#onne#t e.+. end of 9day, no &es"onse afte& ulti"le
TestRequestessa+es, too lo5MsgSeqNum, et#.3. Send Logoutessa+e to #ounte&"a&ty. =ait a
&easonable "e&iod of tie fo& Logout&es"onse. u&in+ t%is tie %andle 9ne5 inbound essa+es
andBo& ResendRequestif "ossible. 6ote t%at soe lo+outBte&ination #onditions e.+. loss of
databaseBessa+e safe-sto&e3 ay &e;ui&e iediate te&ination of t%e net5o&7 #onne#tion
follo5in+ t%e initial send of t%e Logoutessa+e. is#onne#t t%e net5o&7 #onne#tion and
9s%utdo5n #onfi+u&ation fo& t%is session.
1 (#tiveB6o&al
Session
8 8 6et5o&7 #onne#tion establis%ed, Logonessa+e e!#%an+e su##essfully #o"leted, inbound and
outboundMsgSeqNuma&e in se;uen#e as e!"e#ted, and Heartbeato& ot%e& essa+es a&e &e#eived5it%in HeartBeatInt< 9&easonable "e&iod of tie3.
1 =aitin+ fo&
Logona#7
8 6 Session initiato& 5aitin+ fo& session a##e"to& to send ba#7 Logon (CE.
8/12/2019 FIX TestCase SessionLevel20010710
6/24
FIX Logon Process State Transition Diagram
Session Initiator (e.g. buside!
Action
Session Acceptor (e.g. sellside!
Action
Session Initiator (e.g. buside!
State
Session Acceptor (e.g. sellside!
State
Sta&t is#onne#ted-6o Conne#tion
Today
is#onne#ted-Conne#tion Today
(5aitin+ Conne#tion
Conne#t Initiate Conne#tion
ossible3 ete#t $&o7en 6et5o&7
Conne#tion
(5aitin+ Conne#tion
(##e"t Conne#tion 6et5o&7 Conne#tion stablis%ed 6et5o&7 Conne#tion stablis%ed
Initiate Logon Initiation LogonSent 6et5o&7 Conne#tion stablis%ed
Re#eive Initiation Logon Initiation LogonSent Initiation LogonRe#eived
Send Initiation LogonRes"onse Initiation LogonSent Initiation LogonRes"onse
"ossible3 Initiate Logout&o#ess
e.+. ifMsgSeqNumtoo lo53
ossible3 Re#eiveMsgSeqNumToo
Ai+%
ossible3 Send ResendRequest Initiation LogonRes"onse
ossible3 Re#eiveMsgSeqNumToo
Ai+%
Re#eive Initiation LogonRes"onse ossible3 (#tiveB6o&al Session
ossible3 Initiate Logout&o#ess
e.+. ifMsgSeqNumtoo lo53
Initiation LogonRes"onse
ossible3 Send ResendRequest ossible3 (#tiveB6o&al Session
ossible3 Re#eiveMsgSeqNumToo
Ai+%
ossible3 (#tiveB6o&al Session
ossible3 Aandle ResendRequest
(#tiveB6o&al Session (#tiveB6o&al Session
8/12/2019 FIX TestCase SessionLevel20010710
7/24
FIX Logout Process State Transition Diagram
Logout Initiator" Action Logout Acceptor Action Logout Initiator State Logout Acceptor State
Sta&t (#tiveB6o&al Session
6o essa+es &e#eived in Inte&val
(5aitin+B&o#essin+ Res"onse to
TestRequest
(#tiveB6o&al Session
6o essa+es &e#eived in Inte&val
Initiation LogonSent
(5aitin+B&o#essin+ Res"onse to
TestRequest
(5aitin+ validation of lo+on
Re#eiveMsgSeqNumToo Ai+%
(5aitin+B&o#essin+ Res"onse to
ResendRequest
Initiate Logout&o#ess
=aitin+ fo& Logona#7
Send Logout essa+e Lo+out endin+
Re#eive Logoutessa+e Lo+out endin+ Lo+out endin+
ossible3 Re#eiveMsgSeqNumToo
Ai+%
Send Logout &es"onse Lo+out endin+ (5aitin+ is#onne#t
ossible3 Send ResendRequest Lo+out endin+ ossible3 (5aitin+ B &o#essin+
Res"onse to ResendRequest
ossible3 &e#eive ResendRequest ossible3 (5aitin+ B &o#essin+
Res"onse to ResendRequest
ossible3 (5aitin+ Res"onse to
ResendRequest
Re#eive LogoutRes"onse is#onne#ted-Conne#tion Today (5aitin+ is#onne#t
is#onne#t is#onne#ted-Conne#tion Today is#onne#ted-Conne#tion Today
8/12/2019 FIX TestCase SessionLevel20010710
8/24
Test cases
Buyside-oriented (session initiator) Logon and session initiation test case
Re#
ID
Pre-
condition
Test case $andator%
&ptional
'ondition%Stiulus )*pected +e,aior
1$ Conne#t and Send Logon
essa+e
)andato&y a. stablis% 6et5o&7 #onne#tion Su##essfully o"en TC so#7et 5it%
#ounte&"a&ty
b. Send Logon essa+e Send Logonessa+e
#. alid Logon essa+e as &es"onse is
&e#eived
IfMsgSeqNumis too %i+% t%en send
Resend Request
d. Invalid Logonessa+e is &e#eived 1. Gene&ate an He&&o&H #ondition in
test out"ut.
2. "tional3 Send Reectessa+e
5it%RefMsgSeqNum&efe&en#in+
Logonessa+e@sMsgSeqNum5it% Text&efe&en#in+ e&&o&
#ondition
'. Send Logoutessa+e 5it% Text
&efe&en#in+ e&&o& #ondition
*. is#onne#t
>.
e. Re#eive any essa+e ot%e& t%an a Logon
essa+e.
1. Lo+ an e&&o& 9fi&st essa+e not a
lo+on
2. is#onne#t
8/12/2019 FIX TestCase SessionLevel20010710
9/24
Sellside-oriented (session acceptor) Logon and session initiation test case
Re#
ID
Pre-
condition
Test case $andator%
&ptional
'ondition%Stiulus )*pected +e,aior
1S Re#eive Logonessa+e )andato&y a. alid Logon essa+e 1. Res"ond 5it% Logon &es"onse
essa+e2. IfMsgSeqNumis too %i+% t%en
send Resend Request
b. Logonessa+e &e#eived 5it% du"li#ate
identity e.+. sae I, "o&t, Sende&Co"I,
Ta&+etCo"I, et#. as e!istin+ #onne#tion3
1. Gene&ate an He&&o&H #ondition in
test out"ut.
2. is#onne#t 5it%out sendin+ a
essa+e note sendin+ a Ree#t o&
Lo+out 5ould #onsue a
)s+Se;6u3
#. Logonessa+e &e#eived 5it%
unaut%enti#atedBnon-#onfi+u&ed identity e.+.
invalid Sende&Co"I, invalid
Ta&+etCo"I, invalid soue I add&ess,et#. vs. syste #onfi+u&ation3
1. Gene&ate an He&&o&H #ondition in
test out"ut.
2. is#onne#t 5it%out sendin+ a
essa+e note sendin+ a Ree#t o&Lo+out 5ould #onsue a
)s+Se;6u3
d. Invalid Logonessa+e 1. Gene&ate an He&&o&H #ondition
in test out"ut.
2. "tional3 Send Reect
essa+e 5it%RefMsgSeqNum
&efe&en#in+ Logonessa+e@s
MsgSeqNum5it% Text&efe&en#in+
e&&o& #ondition
'. Send Logoutessa+e 5it%Text&efe&en#in+ e&&o& #ondition
*. is#onne#t
Re#eive any essa+e ot%e&
t%an a Logonessa+e
)andato&y Fi&st essa+e &e#eived is not a Lo+on
essa+e.
1. Lo+ an e&&o& 9fi&st essa+e not a
lo+on
2. is#onne#t
8/12/2019 FIX TestCase SessionLevel20010710
10/24
Test cases applicable to all FIX systems
Re#
ID
Pre-
condition
Test case $andator%
&ptional
'ondition%Stiulus )*pected +e,aior
2 Re#eive $essage Standard
Header
)andato&y a. MsgSeqNum&e#eived as e!"e#ted (##e"tMsgSeqNumfo& t%e essa+e
b. MsgSeqNum%i+%e& t%an e!"e#ted Res"ond 5it% Resend Requestessa+e
#. MsgSeqNumlo5e& t%an e!"e#ted 5it%out
PossDupFlagset to 8
!#e"tion: SeqReset-Reset
1. is#onne#t 5it%out sendin+ a
essa+e
2. Gene&ate an He&&o&H #ondition in
test out"ut.
d. Ga&bled essa+e &e#eived 1. Conside& +a&bled and i+no&e
essa+e do not in#&eent
inboundMsgSeqNum3 and
#ontinue a##e"tin+ essa+es.
2. Gene&ate a H5a&nin+H #ondition in
test out"ut.
e.PossDupFlagset to 8K OrigSeningTime
s"e#ified is less t%an o& e;ual to
SeningTimeandMsgSeqNumlo5e& t%an
e!"e#ted
6ote: OrigSeningTimes%ould be ea&lie&
t%an SeningTimeunless t%e essa+e is
bein+ &esent 5it%in t%e sae se#ond du&in+
5%i#% it 5as sent.
1. C%e#7 to see if MsgSeqNum%as
al&eady been &e#eived.
2. If al&eady &e#eived t%en i+no&e t%e
essa+e, ot%e&5ise a##e"t and
"&o#ess t%e essa+e.
f.PossDupFlagset to 8K OrigSeningTime
s"e#ified is +&eate& t%an SeningTimeand
MsgSeqNumlo5e& t%an e!"e#ted
6ote: OrigSeningTimes%ould be ea&lie&
t%an SeningTimeunless t%e essa+e is
bein+ &esent 5it%in t%e sae se#ond du&in+
5%i#% it 5as sent.
1. Send Reect(session-leel!
essa+e &efe&en#in+ ina##u&ate
SeningTime FIX *.2:
SessionRee#tReason
HSendin+Tie a###u&a#y
"&obleH3
2. In#&eent inboundMsgSeqNum
'. Send Logoutessa+e &efe&en#in+
ina##u&ate SeningTimevalue
*. =ait fo& Logoutessa+e
&es"onse note li7ely 5ill %ave
ina##u&ate SeningTime3 o& 5ait 2
se#onds 5%i#%eve& #oes fi&st
8/12/2019 FIX TestCase SessionLevel20010710
11/24
>. is#onne#t
Gene&ate an He&&o&H #ondition in test
out"ut.
+.PossDupFlagset to 8 and
OrigSeningTimenot s"e#ified
6ote: (l5ays set OrigSeningTimeto t%e
tie 5%en t%e essa+e 5as o&i+inally sent-
not t%e "&esent SeningTimeand set
PossDupFlag 98 5%en &es"ondin+ to a
Resend Request
1. Send Reect(session-leel!
essa+e &efe&en#in+ issin+OrigSeningTime FIX *.2:
SessionRee#tReason HRe;ui&ed
ta+ issin+H3
2. In#&eent inbound
MsgSeqNum
%.BeginStringvalue &e#eived as e!"e#ted
and s"e#ified in testin+ "&ofile and at#%es
BeginStringon outbound essa+es.
(##e"tBeginStringfo& t%e essa+e
i.BeginStringvalue e.+. HFIX.*.2H3 &e#eived
did not at#% value e!"e#ted and s"e#ified
in testin+ "&ofile o& does not at#%BeginStringon outbound essa+es.
1. Send Logoutessa+e &efe&en#in+
in#o&&e#tBeginStringvalue
2. =ait fo& Logoutessa+e&es"onse note li7ely 5ill %ave
in#o&&e#t $e+inSt&in+3 o& 5ait 2
se#onds 5%i#%eve& #oes fi&st
'. is#onne#t
*. Gene&ate an He&&o&H #ondition in
test out"ut.
. Sener!ompIDand Target!ompIDvalues
&e#eived as e!"e#ted and s"e#ified in testin+
"&ofile.
(##e"t Sener!ompIDand
Target!ompIDfo& t%e essa+e
7. Sener!ompIDand Target!ompIDvalues
&e#eived did not at#% values e!"e#ted and
s"e#ified in testin+ "&ofile.
1. Send Reect (session-leel!
essa+e &efe&en#in+ invalid
Sener!ompIDo& Target!ompID FIX *.2:
SessionRee#tReason HCo"I
"&obleH3
2. In#&eent inboundMsgSeqNum
'. Send Logoutessa+e &efe&en#in+
in#o&&e#t Sener!ompIDo&
Target!ompIDvalue
*. =ait fo& Logoutessa+e
&es"onse note li7ely 5ill %ave
8/12/2019 FIX TestCase SessionLevel20010710
12/24
in#o&&e#t Sener!ompIDo&
Target!ompID3 o& 5ait 2 se#onds
5%i#%eve& #oes fi&st
>. is#onne#t
/. Gene&ate an He&&o&H #ondition in
test out"ut.l.Bo"#engt$value &e#eived is #o&&e#t. (##e"tBo"#engt$fo& t%e essa+e
.Bo"#engt$value &e#eived is not #o&&e#t. 1. Conside& +a&bled and i+no&e
essa+e do not in#&eent
inboundMsgSeqNum3 and
#ontinue a##e"tin+ essa+es
2. Gene&ate a H5a&nin+H #ondition in
test out"ut.
n. SeningTimevalue &e#eived is s"e#ified in
MTC Mnive&sal Tie Coo&dinated also
7no5n as G)T3 and is 5it%in 2 inutes of
atoi# #lo#7-based tie.
(##e"t SeningTimefo& t%e essa+e
o. SeningTimevalue &e#eived is eit%e& nots"e#ified in MTC Mnive&sal Tie
Coo&dinated also 7no5n as G)T3 o& is not
5it%in 2 inutes of atoi# #lo#7-based tie.
Rational:
e&ify syste #lo#7s on bot% sides a&e in
syn# and t%at Sendin+Tie ust be #u&&ent
tie
1. Send Reect(session-leel!essa+e &efe&en#in+ ina##u&ate
SeningTime FIX *.2:
SessionRee#tReason
HSendin+Tie a###u&a#y
"&obleH3
2. In#&eent inboundMsgSeqNum
'. Send Logoutessa+e &efe&en#in+
ina##u&ate SeningTimevalue
*. =ait fo& Logoutessa+e
&es"onse note li7ely 5ill %ave
ina##u&ate SeningTime3 o& 5ait 2
se#onds 5%i#%eve& #oes fi&st>. is#onne#t
/. Gene&ate an He&&o&H #ondition in
test out"ut.
".MsgT"pevalue &e#eived is valid defined
in s"e# o& #lassified as use&-defined3.
(##e"tMsgT"pefo& t%e essa+e
;.MsgT"pevalue &e#eived is not valid
defined in s"e# o& #lassified as use&-
defined3.
1. Send Reect(session-leel!
essa+e &efe&en#in+ invalid
MsgT"pe FIX *.2:
SessionRee#tReason HInvalid
)s+Ty"eH3
8/12/2019 FIX TestCase SessionLevel20010710
13/24
2. In#&eent inbound
MsgSeqNum
'. Gene&ate a H5a&nin+H
#ondition in test out"ut.
&.MsgT"pevalue &e#eived is valid defined
in s"e# o& #lassified as use&-defined3 but notsu""o&ted o& &e+iste&ed in testin+ "&ofile.
13 If N FIX *.2
a3 Send Reect(session-leel!essa+e &efe&en#in+ valid but
unsu""o&tedMsgT"pe
23 If FIX *.2
a3 Send +usiness $essage
Reectessa+e &efe&en#in+
valid but unsu""o&ted
MsgT"pe FIX *.2:
$usinessRee#tReason
HMnsu""o&ted )essa+e
Ty"eH3
'3 In#&eent inboundMsgSeqNum
*3 Gene&ate a H5a&nin+H #ondition intest out"ut.
s.BeginString% Bo"#engt$% andMsgT"pe
a&e fi&st t%&ee fields of essa+e.
(##e"t t%e essa+e
t.BeginString% Bo"#engt$% andMsgT"pe a&e
not t%e fi&st t%&ee fields of essa+e.
1. Conside& +a&bled and i+no&e
essa+e do not in#&eent
inboundMsgSeqNum3 and
#ontinue a##e"tin+ essa+es
2. Gene&ate a H5a&nin+H #ondition in
test out"ut.
' Re#eive $essage Standard
Trailer
)andato&y a. alid !$e&'Sum (##e"t )essa+e
b. Invalid !$e&'Sum 1. Conside& +a&bled and i+no&eessa+e do not in#&eent
inboundMsgSeqNum3 and
#ontinue a##e"tin+ essa+es
2. Gene&ate a H5a&nin+H #ondition in
test out"ut.
#. Ga&bled essa+e 1. Conside& +a&bled and i+no&e
essa+e do not in#&eent
inboundMsgSeqNum3 and
#ontinue a##e"tin+ essa+es
2. Gene&ate a H5a&nin+H #ondition in
8/12/2019 FIX TestCase SessionLevel20010710
14/24
test out"ut.
d. !$e&'Sumis last field of essa+e, value
%as len+t% of ', and is deliited by NSA.
(##e"t )essa+e
e. !$e&'Sumis not t%e last field of essa+e,
value does not %ave len+t% of ', o& is not
deliited by NSA.
1. Conside& +a&bled and i+no&e
essa+e do not in#&eent
inboundMsgSeqNum3 and#ontinue a##e"tin+ essa+es
2. Gene&ate a H5a&nin+H #ondition in
test out"ut.
* Send Heartbeatessa+e )andato&y a. 6o data sent du&in+ "&eset %ea&tbeat
inte&val HeartBeatIntfield3
Send Heartbeatessa+e
b. ( Test Requestessa+e is &e#eived Send Heartbeatessa+e 5it% Test
Requestessa+eOs TestReqID
> Re#eive Heartbeat essa+e )andato&y alid Heartbeatessa+e (##e"t Heartbeatessa+e
/ Send Test Request )andato&y 6o data &e#eived du&in+ "&eset %ea&tbeat
inte&val HeartBeatIntfield3 < Hsoe
&easonable "e&iod of tieH use 20P ofHeartBeatIntfield3
1. Send Test Request essa+e
2. T&a#7 and ve&ify t%at a Heartbeat
5it% t%e sae TestReqIDis&e#eived ay not be t%e ne!t
essa+e &e#eived3
Re#eive Reectessa+e )andato&y alid Reect essa+e 1. In#&eent inboundMsgSeqNum
2. Continue a##e"tin+ essa+es
Re#eive Resend Request
essa+e
)andato&y alid Resend Re;uest Res"ond 5it% a""li#ation level
essa+es and SequenceReset-(ap
Fillfo& adin essa+es in &e;uested
&an+e a##o&din+ to H)essa+e
Re#ove&yH &ules.
4 Syn#%&oniQe se;uen#e
nube&s
"tional (""li#ation failu&e Send Sequence Reset - Reset
essa+e o& anually &eset to 1 out-of-
band.10 Re#eive Sequence Reset
(Gap Fill!
)andato&y Re#eive Sequence Reset (Gap Fill!essa+e
5it% 6e5Se;6o )s+Se;6u
)s+Se;6u t%an e!"e#t se;uen#e nube&
)s+Se;6u to e!"e#ted se;uen#e nube&
)s+Se;6u N t%an e!"e#ted se;uen#e
nube&
1. If )s+Se;6u e!"e#ted
Issue Resend Request to fill
+a" bet5een e!"e#ted
)s+Se;6u
)s+Se;6u.
2. If )s+Se;6u N e!"e#ted
se;uen#e nube& ossu"Fla+
98
8/12/2019 FIX TestCase SessionLevel20010710
15/24
I+no&e essa+e
'. If )s+Se;6u N e!"e#ted
se;uen#e nube& 5it%out
ossu"Fla+ 98
is#onne#t 5it%out sendin+ aessa+e
Gene&ate an He&&o&H #ondition
in test out"ut
*. if )s+Se;6u e!"e#ted
se;uen#e nube&.
Set ne!t e!"e#ted se;uen#e
nube& 6e5Se;6o
11 Re#eive Sequence Reset
(Reset!
)andato&y a. Re#eive Sequence Reset (reset! essa+e
5it%Ne)SeqNo t%an e!"e#ted se;uen#e
nube&
13 (##e"t t%e Sequence Reset
(Reset!essa+e 5it%out &e+a&ds
itsMsgSeqNum23 Set e!"e#ted se;uen#e nube&
e;ual to 6e5Se;6o
b. Re#eive Sequence Reset (reset! essa+e
5it%Ne)SeqNo to e!"e#ted se;uen#e
nube&
13 (##e"t t%e Sequence Reset
(Reset!essa+e 5it%out &e+a&ds
itsMsgSeqNum
23 Gene&ate a H5a&nin+H #ondition in
test out"ut.
#. Re#eive Sequence Reset (reset! essa+e
5it%Ne)SeqNoN t%an e!"e#ted se;uen#e
nube&
13 (##e"t t%e Sequence Reset
(Reset!essa+e 5it%out &e+a&ds
itsMsgSeqNum23 Send Reect(session-leel!
essa+e &efe&en#in+ invalid
MsgT"pe FIX *.2:
SessionRee#tReason Halue is
in#o&&e#t out of &an+e3 fo& t%is
ta+H3
'3 o 6T In#&eent inbound
MsgSeqNum
*3 Gene&ate an He&&o&H #ondition in
8/12/2019 FIX TestCase SessionLevel20010710
16/24
test out"ut
>3 o 6T lo5e& e!"e#ted se;uen#e
nube&.
12 Initiate lo+out "&o#ess )andato&y Initiate Lo+out 13 Send Logoutessa+e
23 =ait fo& #ounte&"a&ty to &es"ond5it% Logoutessa+e u" to 10
se#onds note ay not be
&e#eived if #ouni#ations
"&oble e!ists3. If not &e#eived,
+ene&ate a 95a&nin+ #ondition
in test out"ut.
'3 is#onne#t
1' Re#eive Logout essa+e )andato&y a. Re#eive valid Logout essa+e in &es"onse
to a soli#ited lo+out "&o#ess
is#onne#t 5it%out sendin+ a
essa+e
b. Re#eive valid Logout essa+e
unsoli#itied
1. Send Logout&es"onse essa+e
2. =ait fo& #ounte&"a&ty to
dis#onne#t u" to 10 se#onds. Ifa! e!#eeded, dis#onne#t and
+ene&ate an 9e&&o& #ondition in
test out"ut.
1* Re#eive a""li#ation o&
adinist&ative essa+e
)andato&y a. Re#eive field identifie& ta+ nube&3 not
defined in s"e#ifi#ation.
!#e"tion: undefined ta+ used is s"e#ified in
testin+ "&ofile as use&-defined.
1. Send Reect(session-leel!
essa+e &efe&en#in+ invalid ta+
nube& FIX *.2:
SessionRee#tReason HInvalid
ta+ nube&H3
2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition in
test out"ut.
b. Re#eive essa+e 5it% a &e;ui&ed fieldidentifie& ta+ nube&3 issin+. 1. SendReect(session-leel!essa+e &efe&en#in+ &e;ui&ed ta+
issin+ FIX *.2:
SessionRee#tReason HRe;ui&ed
ta+ issin+H3
2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition in
test out"ut.
#. Re#eive essa+e 5it% field identifie& ta+
nube&3 5%i#% is defined in t%e s"e#ifi#ation
but not defined fo& t%is essa+e ty"e.
1. Send Reect(session-leel!
essa+e &efe&en#in+ ta+ not
defined fo& t%is essa+e ty"e
8/12/2019 FIX TestCase SessionLevel20010710
17/24
8/12/2019 FIX TestCase SessionLevel20010710
18/24
test out"ut.
%. Re#eive a essa+e in 5%i#% a field
identifie& ta+ nube&3 5%i#% is not "a&t of a
&e"eatin+ +&ou" is s"e#ified o&e t%an on#e
1. Send Reect(session-leel!
essa+e &efe&en#in+ du"li#ate
field identifie& ta+ nube&3
2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition intest out"ut.
i. Re#eive a essa+e 5it% &e"eatin+ +&ou"s
in 5%i#% t%e H#ountH field value fo& a
&e"eatin+ +&ou" is in#o&&e#t.
1. Send Reect(session-leel!
essa+e &efe&en#in+ t%e in#o&&e#t
H#ountH field identifie& ta+
nube&3
2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition in
test out"ut.
. Re#eive a essa+e 5it% &e"eatin+ +&ou"s
in 5%i#% t%e o&de& of &e"eatin+ +&ou" fields
does not at#% t%e s"e#ifi#ation.
1. Send Reect(session-leel!
essa+e &efe&en#in+ t%e &e"eatin+
+&ou" 5it% in#o&&e#t field
o&de&in+2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition in
test out"ut.
7. Re#eive a essa+e 5it% a field of a data
ty"e ot%e& t%an HdataH 5%i#% #ontains one o&
o&e ebedded NSA values.
1. Send Reect(session-leel!
essa+e &efe&en#in+ field
identifie& ta+ nube&3 5it%
ebedded NSA
2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition in
test out"ut.
is#a&d as valid &es"onseBout#oe
tooo&
Conside& +a&bled and i+no&e essa+e
l. Re#eive a essa+e 5%en a""li#ation-level
"&oessin+ o& syste is not available
"tional3
13 If N FIX *.2
a3 Send Reect(session-leel!
essa+e &efe&en#in+
a""li#ation essa+e
"&o#essin+ is not available
23 If FIX *.2
a3 Send +usiness $essage
Reectessa+e &efe&en#in+
8/12/2019 FIX TestCase SessionLevel20010710
19/24
8/12/2019 FIX TestCase SessionLevel20010710
20/24
1/ Dueue out+oin+ essa+es )andato&y a. )essa+e to sendB;ueue 5%ile dis#onne#ted Dueue out+oin+ essa+es. 6ote t%e&e
a&e t5o valid a""&oa#%es:
13 Dueue 5it%out &e+a&ds to
MsgSeqNum
a3 Sto&e data fo& essa+es
23 Dueue ea#% essa+e 5it% t%e ne!t
MsgSeqNumvalue
a3 Sto&e data fo& essa+es in
su#% a anne& as to use and
9#onsue t%e ne!t
MsgSeqNum
6ote: Sendin+Tie Ta+>23: ust
#ontain t%e tie t%e essa+e is sent
not t%e tie t%e essa+e 5as ;ueued.
b. Re-#onne#t 5it% ;ueued essa+es 1. Co"lete lo+on "&o#ess #onne#t,
and Logonessa+e e!#%an+e3
2. Co"leteMsgSeqNum &e#ove&y
"&o#ess if a""li#able.
'. Re#oended s%o&t delay o&
TestRequestBHeartbeatto ve&ify
MsgSeqNum&e#ove&y #o"leted.
*. 6ote t%e&e a&e t5o valid ;ueuin+
a""&oa#%es:
a3 Dueue 5it%out &e+a&ds to
MsgSeqNum
i3 Send ;ueued essa+es
5it% ne5MsgSeqNum
values +&eate& t%an
Logonessa+e@s
MsgSeqNum3
b3 Dueue ea#% essa+e 5it% t%e
ne!tMsgSeqNumvalue
i3 note Logonessa+e@s
MsgSeqNum5ill be
+&eate& t%an t%e ;ueued
essa+esOMsgSeqNum*
ii3 Counte&"a&ty 5ill issue
ResendRequest
&e;uestin+ t%e &an+e of
issed essa+es
8/12/2019 FIX TestCase SessionLevel20010710
21/24
iii3 Resend ea#% ;ueued
essa+e 5it%
PossDupFlagset to 8
6ote: Sendin+Tie Ta+>23: ust
#ontain t%e tie t%e essa+e is sent
not t%e tie t%e essa+e 5as ;ueued.
1 Su""o&t en#&y"tion "tional a. Re#eive Logonessa+e 5it% valid,
su""o&ted+n&r"ptMet$o
1. (##e"t t%e essa+e
2. e&fo& t%e a""&o"&iate
de#&y"tion and en#&y"tion et%od
&eadiness
'. Res"ond 5it% Logonessa+e
5it% t%e sae+n&r"ptMet$o
b. Re#eive Logonessa+e 5it% invalid o&
unsu""o&ted+n&r"ptMet$o
1. Send Reect(session-leel!
essa+e &efe&en#in+ invalid o&
unsu""o&ted+n&r"ptMet$o
value FIX *.2:
SessionRee#tReason
He#&y"tion "&obleH3
2. In#&eent inboundMsgSeqNum
'. Send Logoutessa+e &efe&en#in+
invalid o& unsu""o&ted
+n&r"ptMet$ovalue
*. =ait fo& Logoutessa+e
&es"onse note #ould %ave de#&y"t
"&obles3 o& 5ait 2 se#onds
5%i#%eve& #oes fi&st
>. is#onne#t
/. Gene&ate an He&&o&H #ondition in
test out"ut.
#. Re#eive essa+e 5it% valid
Signature#engt$and Signaturevalues.
(##e"t t%e essa+e
d. Re#eive essa+e 5it% invalid
Signature#engt$value.
1. Send Reect(session-leel!
essa+e &efe&en#in+ invalid
Signature#engt$value FIX
*.2: SessionRee#tReason
HSi+natu&e "&obleH3
2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition in
test out"ut.
8/12/2019 FIX TestCase SessionLevel20010710
22/24
e. Re#eive essa+e 5it% invalid Signature
value.
1. Send Reect(session-leel!
essa+e &efe&en#in+ invalid
Signature value FIX *.2:
SessionRee#tReason
HSi+natu&e "&obleH3
2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition in
test out"ut.
& #onside& de#&y"tion e&&o& o&
essa+e out of o&de&, i+no&e essa+e
do not in#&eent inbound
MsgSeqNum3 and #ontinue a##e"tin+
essa+es
f. Re#eive essa+e 5it% a valid
Se&ureData#envalue and a Se&ureData
value t%at #an be de#&y"ted into valid, "a&se-
able #lea&te!t.
(##e"t t%e essa+e
+. Re#eive essa+e 5it% invalid
Se&ureData#envalue.
1. Conside& de#&y"tion e&&o& o&
essa+e out of o&de&, i+no&e
essa+e do not in#&eent
inboundMsgSeqNum3 and
#ontinue a##e"tin+ essa+es
2. Gene&ate a H5a&nin+H #ondition in
test out"ut.
%. Re#eive essa+e 5it% a Se&ureDatavalue
t%at #annot be de#&y"ted into valid, "a&se-
able #lea&te!t.
1. Send Reect(session-leel!
essa+e &efe&en#in+ invalid
Se&ureDatavalue FIX *.2:
SessionRee#tReason H
e#&y"tion "&obleH3
2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition in
test out"ut.
i. Re#eive essa+e 5it% one o& o&e fields
not "&esent in t%e unen#&y"ted "o&tion of t%e
essa+e t%at Hust be unen#&y"tedH
a##o&din+ to t%e s"e#.
'. Send Reect(session-leel!
essa+e &efe&en#in+ field
identifie& ta+ nube&3 issin+
f&o unen#&y"ted se#tion FIX
*.2: SessionRee#tReason H
e#&y"tion "&obleH3
*. In#&eent inboundMsgSeqNum
>. Gene&ate an He&&o&H #ondition in
8/12/2019 FIX TestCase SessionLevel20010710
23/24
test out"ut.
. Re#eive essa+e 5it% in#o&&e#t %andlin+
of Hleft ove&H #%a&a#te&s e.+. 5%en len+t% of
#lea&te!t "&io& to en#&y"tion is not a ulti"le
of 3 a##o&din+ to t%e s"e#ified
+n&r"ptMet$o.
1. Send Reect(session-leel!
essa+e &efe&en#in+ in#o&&e#t
%andlin+ of Hleft ove&H #%a&a#te&s
du&in+ en#&y"tion FIX *.2:
SessionRee#tReason H
e#&y"tion "&obleH3
2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition in
test out"ut.
1 Su""o&t t%i&d "a&ty
add&essin+
"tional a. Re#eive essa+es 5it%
OnBe$alfOf!ompIDand
Deli,erTo!ompIDvalues e!"e#ted as
s"e#ified in testin+ "&ofile and 5it% #o&&e#t
usa+e.
(##e"t essa+es
b. Re#eive essa+es 5it%
OnBe$alfOf!ompIDo&Deli,erTo!ompID values not s"e#ified in
testin+ "&ofile o& in#o&&e#t usa+e.
1. Send Reect (session-leel!
essa+e &efe&en#in+ invalidOnBe$alfOf!ompIDo&
Deli,erTo!ompID FIX *.2:
SessionRee#tReason HCo"I
"&obleH3
2. In#&eent inboundMsgSeqNum
'. Gene&ate an He&&o&H #ondition in
test out"ut.
14 Test ossResend %andlin+ )andato&y a. Re#eive essa+e 5it% ossResend 98
and a""li#ation-level #%e#7 of )essa+e
s"e#ifi# I indi#ates t%at it %as al&eady been
seen on t%is session
13 I+no&e t%e essa+e.
23 Gene&ate a H5a&nin+H #ondition in
test out"ut
b. Re#eive essa+e 5it% ossResend 98
and a""li#ation-level #%e#7 of )essa+e
s"e#ifi# I indi#ates t%at it %as 6T yet
been seen on t%is session
13 (##e"t and "&o#ess t%e essa+e
no&ally.
20 Siultaneous Resend &e;uest
test
)andato&y Re#eive a Resend Requestessa+e 5%ile
%avin+ sent and a5aitin+ #o"lete set of
&es"onses to a Resend Requestessa+e.
13 e&fo& &esend of &e;uested
essa+es.
23 Send Resend Requestto &e;uest
issed essa+es
8/12/2019 FIX TestCase SessionLevel20010710
24/24