Skip to content

Commit f83e8a8

Browse files
committed
local tz tests
1 parent 1899c8f commit f83e8a8

File tree

1 file changed

+103
-2
lines changed

1 file changed

+103
-2
lines changed

session_test.go

Lines changed: 103 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1010,20 +1010,24 @@ func (s *SessionSuite) TestSeqNumResetTime() {
10101010
s.session.ResetSeqTime = now
10111011
s.session.EnableResetSeqTime = true
10121012

1013+
s.NextSenderMsgSeqNum(1)
1014+
s.NextTargetMsgSeqNum(1)
10131015
s.IncrNextSenderMsgSeqNum()
10141016
s.IncrNextTargetMsgSeqNum()
10151017

10161018
s.MockApp.On("ToAdmin")
10171019

1020+
s.NextSenderMsgSeqNum(2)
1021+
s.NextTargetMsgSeqNum(2)
10181022
s.IncrNextSenderMsgSeqNum()
10191023
s.IncrNextTargetMsgSeqNum()
10201024

10211025
s.MockApp.On("ToAdmin")
10221026

10231027
s.session.CheckResetTime(s.session, now)
10241028

1025-
s.NextSenderMsgSeqNum(2)
1026-
s.NextSenderMsgSeqNum(2)
1029+
s.NextSenderMsgSeqNum(3)
1030+
s.NextSenderMsgSeqNum(3)
10271031

10281032
}
10291033

@@ -1108,3 +1112,100 @@ func (s *SessionSuite) TestSeqNumResetTimeNotAfterDisconnect() {
11081112
s.NextSenderMsgSeqNum(2)
11091113
s.NextTargetMsgSeqNum(2)
11101114
}
1115+
1116+
func (s *SessionSuite) TestSeqNumResetTimeDisconnected_LocalTZ() {
1117+
s.session.State = logonState{}
1118+
tz, err := time.LoadLocation("America/Chicago")
1119+
if err != nil {
1120+
s.T().Fatal(err)
1121+
}
1122+
s.session.TimeZone = tz
1123+
s.session.ResetSeqTime = time.Now().In(tz).Add(time.Second * 2)
1124+
s.session.EnableResetSeqTime = true
1125+
1126+
s.NextSenderMsgSeqNum(1)
1127+
s.NextTargetMsgSeqNum(1)
1128+
s.IncrNextTargetMsgSeqNum()
1129+
s.IncrNextSenderMsgSeqNum()
1130+
s.NextSenderMsgSeqNum(2)
1131+
s.NextTargetMsgSeqNum(2)
1132+
1133+
s.session.onAdmin(stopReq{})
1134+
s.Disconnected()
1135+
s.Stopped()
1136+
1137+
// Wait for reset time to pass.
1138+
time.Sleep(time.Second * 3)
1139+
1140+
s.MockApp.On("ToAdmin")
1141+
// Disconnected so the seq numbers should not be reset.
1142+
s.session.CheckResetTime(s.session, time.Now().UTC())
1143+
s.NextSenderMsgSeqNum(2)
1144+
s.NextTargetMsgSeqNum(2)
1145+
}
1146+
1147+
func (s *SessionSuite) TestSeqNumResetTimeAfterElapse_LocalTZ() {
1148+
s.session.State = logonState{}
1149+
tz, err := time.LoadLocation("America/Chicago")
1150+
if err != nil {
1151+
s.T().Fatal(err)
1152+
}
1153+
s.session.TimeZone = tz
1154+
before := time.Now().In(tz)
1155+
resetTime := before.Add(time.Second * 2)
1156+
after := resetTime.Add(time.Second * 1)
1157+
s.session.ResetSeqTime = resetTime
1158+
s.session.EnableResetSeqTime = true
1159+
1160+
s.NextSenderMsgSeqNum(1)
1161+
s.NextTargetMsgSeqNum(1)
1162+
s.IncrNextTargetMsgSeqNum()
1163+
s.IncrNextSenderMsgSeqNum()
1164+
s.NextSenderMsgSeqNum(2)
1165+
s.NextTargetMsgSeqNum(2)
1166+
1167+
s.MockApp.On("ToAdmin")
1168+
s.session.CheckResetTime(s.session, before)
1169+
s.NextSenderMsgSeqNum(2)
1170+
s.NextTargetMsgSeqNum(2)
1171+
1172+
s.session.LastCheckedResetSeqTime = before
1173+
s.session.CheckResetTime(s.session, after)
1174+
s.NextSenderMsgSeqNum(2)
1175+
s.NextTargetMsgSeqNum(1)
1176+
}
1177+
1178+
func (s *SessionSuite) TestSeqNumResetTimeNotAfterDisconnect_LocalTZ() {
1179+
s.session.State = logonState{}
1180+
tz, err := time.LoadLocation("America/Chicago")
1181+
if err != nil {
1182+
s.T().Fatal(err)
1183+
}
1184+
s.session.TimeZone = tz
1185+
before := time.Now().In(tz)
1186+
resetTime := before.Add(time.Second * 2)
1187+
after := resetTime.Add(time.Second * 1)
1188+
s.session.ResetSeqTime = resetTime
1189+
s.session.EnableResetSeqTime = true
1190+
1191+
s.NextSenderMsgSeqNum(1)
1192+
s.NextTargetMsgSeqNum(1)
1193+
s.IncrNextTargetMsgSeqNum()
1194+
s.IncrNextSenderMsgSeqNum()
1195+
s.NextSenderMsgSeqNum(2)
1196+
s.NextTargetMsgSeqNum(2)
1197+
1198+
s.MockApp.On("ToAdmin")
1199+
s.session.CheckResetTime(s.session, before)
1200+
s.NextSenderMsgSeqNum(2)
1201+
s.NextTargetMsgSeqNum(2)
1202+
1203+
s.session.onAdmin(stopReq{})
1204+
s.Disconnected()
1205+
s.Stopped()
1206+
1207+
s.session.LastCheckedResetSeqTime = before
1208+
s.session.CheckResetTime(s.session, after)
1209+
s.NextSenderMsgSeqNum(2)
1210+
s.NextTargetMsgSeqNum(2)
1211+
}

0 commit comments

Comments
 (0)