@@ -19,6 +19,7 @@ import (
1919 "testing"
2020 "time"
2121
22+ "github.com/stretchr/testify/mock"
2223 "github.com/stretchr/testify/suite"
2324
2425 "github.com/quickfixgo/quickfix/internal"
@@ -373,40 +374,29 @@ func (s *InSessionTestSuite) TestFIXMsgInResendRequestDoNotSendApp() {
373374 s .State (inSession {})
374375}
375376
376- func (s * InSessionTestSuite ) TestSendBlockedWhenResendRequestActive () {
377+ func (s * InSessionTestSuite ) TestFIXMsgInResendRequestBlocksSend () {
377378 s .MockApp .On ("ToApp" ).Return (nil )
379+ s .Require ().Nil (s .session .send (s .NewOrderSingle ()))
380+ s .LastToAppMessageSent ()
381+ s .MockApp .AssertNumberOfCalls (s .T (), "ToApp" , 1 )
382+ s .NextSenderMsgSeqNum (2 )
378383
379- s .session .resendMutex .Lock ()
380- s .session .resendRequestActive = true
381- s .session .resendMutex .Unlock ()
382-
383- sendCompleted := make (chan struct {})
384- go func () {
385- err := s .session .send (s .NewOrderSingle ())
386- s .Require ().NoError (err )
387- close (sendCompleted )
388- }()
389-
390- select {
391- case <- sendCompleted :
392- s .Fail ("send should be blocked during active resend" )
393- case <- time .After (50 * time .Millisecond ):
394- s .MockApp .AssertNumberOfCalls (s .T (), "ToApp" , 0 )
395- }
384+ s .MockStore .On ("IterateMessages" , mock .Anything , mock .Anything , mock .AnythingOfType ("func([]byte) error" )).
385+ Run (func (args mock.Arguments ) {
386+ s .Require ().Nil (s .session .send (s .NewOrderSingle ()))
387+ }).
388+ Return (nil )
396389
397- s .session .resendMutex .Lock ()
398- s .session .resendRequestActive = false
399- s .session .resendMutex .Unlock ()
400- s .session .resendCond .Broadcast ()
401-
402- select {
403- case <- sendCompleted :
404- s .LastToAppMessageSent ()
405- s .MessageType ("D" , s .MockApp .lastToApp )
406- s .MockApp .AssertNumberOfCalls (s .T (), "ToApp" , 1 )
407- case <- time .After (100 * time .Millisecond ):
408- s .Fail ("send did not proceed after resend was cleared" )
409- }
390+ s .MockApp .On ("FromAdmin" ).Return (nil )
391+ go s .fixMsgIn (s .session , s .ResendRequest (1 ))
392+
393+ s .MockApp .AssertNumberOfCalls (s .T (), "ToApp" , 1 )
394+ s .NextSenderMsgSeqNum (2 )
395+
396+ s .Require ().Nil (s .session .send (s .NewOrderSingle ()))
397+ s .LastToAppMessageSent ()
398+ s .MockApp .AssertNumberOfCalls (s .T (), "ToApp" , 2 )
399+ s .NextSenderMsgSeqNum (3 )
410400}
411401
412402func (s * InSessionTestSuite ) TestFIXMsgInTargetTooLow () {
0 commit comments