@@ -410,6 +410,39 @@ public void TestConsumerRecoveryOnClientNamedQueueWithOneRecovery()
410
410
}
411
411
}
412
412
413
+ [ Fact ]
414
+ public void TestConsumerRecoveryWithServerNamedQueue ( )
415
+ {
416
+ // https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/1238
417
+ using ( AutorecoveringConnection c = CreateAutorecoveringConnection ( ) )
418
+ {
419
+ IChannel ch = c . CreateChannel ( ) ;
420
+ QueueDeclareOk queueDeclareResult = ch . QueueDeclare ( queue : string . Empty , durable : false , exclusive : true , autoDelete : true , arguments : null ) ;
421
+ string qname = queueDeclareResult . QueueName ;
422
+ Assert . False ( string . IsNullOrEmpty ( qname ) ) ;
423
+
424
+ var cons = new EventingBasicConsumer ( ch ) ;
425
+ ch . BasicConsume ( string . Empty , true , cons ) ;
426
+ AssertConsumerCount ( ch , qname , 1 ) ;
427
+
428
+ bool queueNameBeforeIsEqual = false ;
429
+ bool queueNameChangeAfterRecoveryCalled = false ;
430
+ string qnameAfterRecovery = null ;
431
+ c . QueueNameChangeAfterRecovery += ( source , ea ) =>
432
+ {
433
+ queueNameChangeAfterRecoveryCalled = true ;
434
+ queueNameBeforeIsEqual = qname . Equals ( ea . NameBefore ) ;
435
+ qnameAfterRecovery = ea . NameAfter ;
436
+ } ;
437
+
438
+ CloseAndWaitForRecovery ( c ) ;
439
+
440
+ AssertConsumerCount ( ch , qnameAfterRecovery , 1 ) ;
441
+ Assert . True ( queueNameChangeAfterRecoveryCalled ) ;
442
+ Assert . True ( queueNameBeforeIsEqual ) ;
443
+ }
444
+ }
445
+
413
446
[ Fact ]
414
447
public void TestConsumerRecoveryWithManyConsumers ( )
415
448
{
0 commit comments