Skip to content

Commit 4bc3d44

Browse files
More tests
1 parent a8e1ad7 commit 4bc3d44

File tree

1 file changed

+44
-4
lines changed

1 file changed

+44
-4
lines changed

projects/client/Unit/src/unit/TestConnectionRecovery.cs

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -609,24 +609,64 @@ public override void HandleBasicDeliver(string consumerTag,
609609
{
610610
this.latch.Set();
611611
}
612-
base.m_model.BasicAck(deliveryTag, false);
612+
this.PostHandleDelivery(deliveryTag);
613613
} finally
614614
{
615615
counter += 1;
616616
}
617617
}
618+
619+
public virtual void PostHandleDelivery(ulong deliveryTag)
620+
{
621+
}
622+
}
623+
624+
public class AckingBasicConsumer : TestBasicConsumer1
625+
{
626+
public AckingBasicConsumer(IModel model, AutoResetEvent latch, Action fn) : base(model, latch, fn) {}
627+
628+
public override void PostHandleDelivery(ulong deliveryTag)
629+
{
630+
base.m_model.BasicAck(deliveryTag, false);
631+
}
632+
}
633+
634+
public class NackingBasicConsumer : TestBasicConsumer1
635+
{
636+
public NackingBasicConsumer(IModel model, AutoResetEvent latch, Action fn) : base(model, latch, fn) {}
637+
638+
public override void PostHandleDelivery(ulong deliveryTag)
639+
{
640+
base.m_model.BasicNack(deliveryTag, false, false);
641+
}
618642
}
619643

620644
[Test]
621645
public void TestBasicAckAfterChannelRecovery()
622646
{
623-
var q = Model.QueueDeclare(GenerateQueueName(), false, false, false, null).QueueName;
624-
var n = 30;
647+
var latch = new AutoResetEvent(false);
648+
var cons = new AckingBasicConsumer(Model, latch, () => {
649+
CloseAndWaitForRecovery();
650+
});
651+
652+
TestDelayedBasicAckNackAfterChannelRecovery(cons, latch);
653+
}
625654

655+
[Test]
656+
public void TestBasicNackAfterChannelRecovery()
657+
{
626658
var latch = new AutoResetEvent(false);
627-
var cons = new TestBasicConsumer1(Model, latch, () => {
659+
var cons = new NackingBasicConsumer(Model, latch, () => {
628660
CloseAndWaitForRecovery();
629661
});
662+
663+
TestDelayedBasicAckNackAfterChannelRecovery(cons, latch);
664+
}
665+
666+
protected void TestDelayedBasicAckNackAfterChannelRecovery(TestBasicConsumer1 cons, AutoResetEvent latch)
667+
{
668+
var q = Model.QueueDeclare(GenerateQueueName(), false, false, false, null).QueueName;
669+
var n = 30;
630670
Model.BasicQos(0, 1, false);
631671
Model.BasicConsume(q, false, cons);
632672

0 commit comments

Comments
 (0)