@@ -76,12 +76,14 @@ func (s *LogonStateTestSuite) TestFixMsgInLogon() {
7676 s .MockApp .On ("FromAdmin" ).Return (nil )
7777 s .MockApp .On ("OnLogon" )
7878 s .MockApp .On ("ToAdmin" )
79+ s .Zero (s .session .HeartBtInt )
7980 s .fixMsgIn (s .session , logon )
8081
8182 s .MockApp .AssertExpectations (s .T ())
8283
8384 s .State (inSession {})
84- s .Equal (32 * time .Second , s .session .HeartBtInt )
85+ s .Equal (32 * time .Second , s .session .HeartBtInt ) //should be written from logon message
86+ s .False (s .session .HeartBtIntOverride )
8587
8688 s .LastToAdminMessageSent ()
8789 s .MessageType (string (msgTypeLogon ), s .MockApp .lastToAdmin )
@@ -91,6 +93,35 @@ func (s *LogonStateTestSuite) TestFixMsgInLogon() {
9193 s .NextSenderMsgSeqNum (3 )
9294}
9395
96+ func (s * LogonStateTestSuite ) TestFixMsgInLogonHeartBtIntOverride () {
97+ s .IncrNextSenderMsgSeqNum ()
98+ s .MessageFactory .seqNum = 1
99+ s .IncrNextTargetMsgSeqNum ()
100+
101+ logon := s .Logon ()
102+ logon .Body .SetField (tagHeartBtInt , FIXInt (32 ))
103+
104+ s .MockApp .On ("FromAdmin" ).Return (nil )
105+ s .MockApp .On ("OnLogon" )
106+ s .MockApp .On ("ToAdmin" )
107+ s .session .HeartBtIntOverride = true
108+ s .session .HeartBtInt = time .Second
109+ s .fixMsgIn (s .session , logon )
110+
111+ s .MockApp .AssertExpectations (s .T ())
112+
113+ s .State (inSession {})
114+ s .Equal (time .Second , s .session .HeartBtInt ) //should not have changed
115+ s .True (s .session .HeartBtIntOverride )
116+
117+ s .LastToAdminMessageSent ()
118+ s .MessageType (string (msgTypeLogon ), s .MockApp .lastToAdmin )
119+ s .FieldEquals (tagHeartBtInt , 1 , s .MockApp .lastToAdmin .Body )
120+
121+ s .NextTargetMsgSeqNum (3 )
122+ s .NextSenderMsgSeqNum (3 )
123+ }
124+
94125func (s * LogonStateTestSuite ) TestFixMsgInLogonEnableLastMsgSeqNumProcessed () {
95126 s .session .EnableLastMsgSeqNumProcessed = true
96127
0 commit comments