@@ -353,6 +353,8 @@ func (s *SessionFactorySuite) TestNewSessionBuildInitiators() {
353353 s .True (session .InitiateLogon )
354354 s .Equal (34 * time .Second , session .HeartBtInt )
355355 s .Equal (30 * time .Second , session .ReconnectInterval )
356+ s .Equal (10 * time .Second , session .LogonTimeout )
357+ s .Equal (2 * time .Second , session .LogoutTimeout )
356358 s .Equal ("127.0.0.1:5000" , session .SocketConnectAddress [0 ])
357359}
358360
@@ -399,6 +401,54 @@ func (s *SessionFactorySuite) TestNewSessionBuildInitiatorsValidReconnectInterva
399401 s .NotNil (err , "ReconnectInterval must be greater than zero" )
400402}
401403
404+ func (s * SessionFactorySuite ) TestNewSessionBuildInitiatorsValidLogoutTimeout () {
405+ s .sessionFactory .BuildInitiators = true
406+ s .SessionSettings .Set (config .HeartBtInt , "34" )
407+ s .SessionSettings .Set (config .SocketConnectHost , "127.0.0.1" )
408+ s .SessionSettings .Set (config .SocketConnectPort , "3000" )
409+
410+ s .SessionSettings .Set (config .LogoutTimeout , "45" )
411+ session , err := s .newSession (s .SessionID , s .MessageStoreFactory , s .SessionSettings , s .LogFactory , s .App )
412+ s .Nil (err )
413+ s .Equal (45 * time .Second , session .LogoutTimeout )
414+
415+ s .SessionSettings .Set (config .LogoutTimeout , "not a number" )
416+ _ , err = s .newSession (s .SessionID , s .MessageStoreFactory , s .SessionSettings , s .LogFactory , s .App )
417+ s .NotNil (err , "LogoutTimeout must be a number" )
418+
419+ s .SessionSettings .Set (config .LogoutTimeout , "0" )
420+ _ , err = s .newSession (s .SessionID , s .MessageStoreFactory , s .SessionSettings , s .LogFactory , s .App )
421+ s .NotNil (err , "LogoutTimeout must be greater than zero" )
422+
423+ s .SessionSettings .Set (config .LogoutTimeout , "-20" )
424+ _ , err = s .newSession (s .SessionID , s .MessageStoreFactory , s .SessionSettings , s .LogFactory , s .App )
425+ s .NotNil (err , "LogoutTimeout must be greater than zero" )
426+ }
427+
428+ func (s * SessionFactorySuite ) TestNewSessionBuildInitiatorsValidLogonTimeout () {
429+ s .sessionFactory .BuildInitiators = true
430+ s .SessionSettings .Set (config .HeartBtInt , "34" )
431+ s .SessionSettings .Set (config .SocketConnectHost , "127.0.0.1" )
432+ s .SessionSettings .Set (config .SocketConnectPort , "3000" )
433+
434+ s .SessionSettings .Set (config .LogonTimeout , "45" )
435+ session , err := s .newSession (s .SessionID , s .MessageStoreFactory , s .SessionSettings , s .LogFactory , s .App )
436+ s .Nil (err )
437+ s .Equal (45 * time .Second , session .LogonTimeout )
438+
439+ s .SessionSettings .Set (config .LogonTimeout , "not a number" )
440+ _ , err = s .newSession (s .SessionID , s .MessageStoreFactory , s .SessionSettings , s .LogFactory , s .App )
441+ s .NotNil (err , "LogonTimeout must be a number" )
442+
443+ s .SessionSettings .Set (config .LogonTimeout , "0" )
444+ _ , err = s .newSession (s .SessionID , s .MessageStoreFactory , s .SessionSettings , s .LogFactory , s .App )
445+ s .NotNil (err , "LogonTimeout must be greater than zero" )
446+
447+ s .SessionSettings .Set (config .LogonTimeout , "-20" )
448+ _ , err = s .newSession (s .SessionID , s .MessageStoreFactory , s .SessionSettings , s .LogFactory , s .App )
449+ s .NotNil (err , "LogonTimeout must be greater than zero" )
450+ }
451+
402452func (s * SessionFactorySuite ) TestConfigureSocketConnectAddress () {
403453 sess := new (session )
404454 err := s .configureSocketConnectAddress (sess , s .SessionSettings )
0 commit comments