@@ -65,11 +65,30 @@ public override void Init()
65
65
public void TestBasicAckAfterChannelRecovery ( )
66
66
{
67
67
var latch = new ManualResetEvent ( false ) ;
68
- var cons = new AckingBasicConsumer ( Model , latch , ( ) => { CloseAndWaitForRecovery ( ) ; } ) ;
68
+ var cons = new AckingBasicConsumer ( Model , latch , CloseAndWaitForRecovery ) ;
69
69
70
70
TestDelayedBasicAckNackAfterChannelRecovery ( cons , latch ) ;
71
71
}
72
72
73
+ [ Test ]
74
+ public void TestBasicAckAfterBasicGetAndChannelRecovery ( )
75
+ {
76
+ var q = GenerateQueueName ( ) ;
77
+ Model . QueueDeclare ( q , false , false , false , null ) ;
78
+ // create an offset
79
+ var bp = Model . CreateBasicProperties ( ) ;
80
+ Model . BasicPublish ( "" , q , bp , new byte [ ] { } ) ;
81
+ Thread . Sleep ( 50 ) ;
82
+ var g = Model . BasicGet ( q , false ) ;
83
+ CloseAndWaitForRecovery ( ) ;
84
+ Assert . IsTrue ( Conn . IsOpen ) ;
85
+ Assert . IsTrue ( Model . IsOpen ) ;
86
+ // ack the message after recovery - this should be out of range and ignored
87
+ Model . BasicAck ( g . DeliveryTag , false ) ;
88
+ // do a sync operation to 'check' there is no channel exception
89
+ Model . BasicGet ( q , false ) ;
90
+ }
91
+
73
92
[ Test ]
74
93
public void TestBasicAckEventHandlerRecovery ( )
75
94
{
@@ -173,7 +192,7 @@ public void TestBasicModelRecoveryOnServerRestart()
173
192
public void TestBasicNackAfterChannelRecovery ( )
174
193
{
175
194
var latch = new ManualResetEvent ( false ) ;
176
- var cons = new NackingBasicConsumer ( Model , latch , ( ) => { CloseAndWaitForRecovery ( ) ; } ) ;
195
+ var cons = new NackingBasicConsumer ( Model , latch , CloseAndWaitForRecovery ) ;
177
196
178
197
TestDelayedBasicAckNackAfterChannelRecovery ( cons , latch ) ;
179
198
}
@@ -182,7 +201,7 @@ public void TestBasicNackAfterChannelRecovery()
182
201
public void TestBasicRejectAfterChannelRecovery ( )
183
202
{
184
203
var latch = new ManualResetEvent ( false ) ;
185
- var cons = new RejectingBasicConsumer ( Model , latch , ( ) => { CloseAndWaitForRecovery ( ) ; } ) ;
204
+ var cons = new RejectingBasicConsumer ( Model , latch , CloseAndWaitForRecovery ) ;
186
205
187
206
TestDelayedBasicAckNackAfterChannelRecovery ( cons , latch ) ;
188
207
}
0 commit comments