7.3 Test cases applicable to all FIX systems
Ref ID
参考号
|
Pre-
Condi-
tion
前置
条件
|
Test
case
测试
用例
|
Mandaory
/Optional
强制
/
可选
|
Condition
/Stimulus
状态
/
激发
|
Expected Beheavior
期望行为
|
2
|
|
收到消息标准头
|
Mandatory
强制
|
A
收到期望的
MsgSeqNum
|
接受该消息的
MsgSeqNum
|
|
|
|
|
b
收到比期望值大的
MsgSeqNum
|
用
Resend Request
消息作为响应
|
|
|
|
|
c
收到比期望值小的
MsgSeqNum
且
PossDupFlag
不为‘
Y
’
列外:
SeqReset-Reset
|
1.
推荐
FIX
引擎尝试发送一个
Logout
,并带有
Text
的值为“
MsgSeqNum too low
,
expecting X but receiced Y
”
2.
(可选)等待
Logout
消息的响应(注意:可能会出现的错误的
MsgSeqNum
)或者等待
2
秒无论什么先到达
3.
断开连接
4.
产生、输出错误报告
|
|
|
|
|
d
收到混乱消息
|
1.
当做混乱消息并忽略消息(不增加输入
MsgSeqNum
),继续接收消息。
2.
产生并输出“警告”测试信息。
3.
发送
Logout
消息,在其
Text
域填写错误状态。
4.
断开连接。
|
|
|
|
|
e PossDupFlag
值为‘
Y
’;
OrigSendingTime
值小于或等于
SendingTime
且
MsgSeqNum
比期望值小。
注意:
OrigSendingTime
应遭遇
SendingTime
除非该消息在同一秒内重传。
|
1.
检查是否该
MsgSeqNum
值消息已经被接收。
2.
如果已经收到,忽略该消息,否则接收并处理该消息。
|
|
|
|
|
f PossDupFlag
值为‘
Y
’,
OrigSendingTime
比
SendingTime
大,且
MsgSeqNum
等于期望值
注意:
OrigSendingTime
应遭遇
SendingTime
除非该消息在同一秒内重传。
|
1.
发送
Reject
驳回消息
,
参照不准确的发送时间
(
>=FIX4.2
:
SessionRejectReason =
“
SendingTime
准确性问题
”)
2.
增加接收
MsgSeqNum
值
3.
可选:
a)
发送
Logtout
消息,参照不准确的
SendingTime
值
b)
(可选)等待
Logout
响应(注意有可能有不准确的
SendingTime
)或者等待
2
秒无论什么消息先到达。
c)
断开连接。
产生、输出一个“错误”测试信息。
|
|
|
|
|
g
PossDupFlag
值为‘
Y
’,
OrigSendingTime
没有指定
注意:在响应
Resen Request
消息时,始终将
OrigSendingTime
设置为消息最开始发送的时间,不是当前
SendingTime
时间,并且
PossDuFlag=
‘
Y
’
|
1.
发送
Reject
驳回消息
,
参照不准确的发送时间
(
>=FIX4.2
:
SessionRejectReason =
“
tag
丢失”)
2.
增加接收
MsgSeqNum
值
|
|
|
|
|
h
收到在测试
Profile
中指定的期望的
BeginString
值
,并且匹配发送消息的
BeginString
值
|
接受该消息的
BeginString
|
|
|
|
|
i
收到不是在测试
Profile
中指定的期望的
BeginString
值
,并且匹配发送消息的
BeginString
值
|
1.
发送
Logout
消息参照错误的
BeginString
值。
2.
(可选)等待
Logout
响应消息(注意可能有错误的
BeginString
)或者等待
2
秒无论什么先到达
3.
断开连接。
4.
产生、输出“错误“测试信息。
|
|
|
|
|
j
收到在测试
Profile
中指定的期望的
SenderCompID
和
TargetCompID
值
|
接受该消息的
SenderCompID
和
TargetCompID
|
|
|
|
|
k
收到不是在测试
Profile
中指定的期望的
SenderCompID
和
TargetCompID
值
|
1.
发送
Reject
驳回消息
,
参照无效的
SenderCompID
和
TargetCompID
。
(
>=FIX4.2
:
SessionRejectReason =
“
CompID
错误”)
2.
增加接收
MsgSeqNum
值。
3.
参照错误的
SenderCompID
或
TargetCompID
值发送
Logout
消息。
4.
(
可选
)等待
Logout
响应消息(注意可能有错误的
SenderCompID
或
TargetCompID
值)或者等待
2
秒无论什么先到达
5.
断开连接
6.
产生、输出“错误”测试信息。
|
|
|
|
|
l
收到正确的
BodyLength
值
|
接受该消息的
BodyLength
|
|
|
|
|
m
收到正确的
BodyLength
值
|
1.
当做混乱消息并忽略(不增加接收
MsgSeqNum
值),继续接收消息。
2.
产生、输出“警告”测试信息。
|
|
|
|
|
N SendingTime
值使用
UTC
格式并在一个基于原子时间的合理范围内(如,
2
秒)
|