Skip to content

Commit 43a4334

Browse files
committed
Port test from main
1 parent 67f78ef commit 43a4334

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

projects/Unit/TestConnectionRecovery.cs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1695,6 +1695,51 @@ void MessageReceived(object sender, BasicDeliverEventArgs e)
16951695
}
16961696
}
16971697

1698+
[Test]
1699+
public void TestQueueRecoveryWithDlxArgument_RabbitMQUsers_hk5pJ4cKF0c()
1700+
{
1701+
string tdiWaitExchangeName = GenerateExchangeName();
1702+
string tdiRetryExchangeName = GenerateExchangeName();
1703+
string testRetryQueueName = GenerateQueueName();
1704+
string testQueueName = GenerateQueueName();
1705+
1706+
Model.ExchangeDeclare(exchange: tdiWaitExchangeName,
1707+
type: ExchangeType.Topic, durable: true, autoDelete: false, arguments: null);
1708+
Model.ExchangeDeclare(exchange: tdiRetryExchangeName,
1709+
type: ExchangeType.Topic, durable: true, autoDelete: false, arguments: null);
1710+
1711+
var arguments = new Dictionary<string, object>
1712+
{
1713+
{ "x-dead-letter-exchange", "tdi.retry.exchange" },
1714+
{ "x-dead-letter-routing-key", "QueueTest" }
1715+
};
1716+
1717+
Model.QueueDeclare(testRetryQueueName, durable: false, exclusive: false, autoDelete: false, arguments);
1718+
1719+
arguments["x-dead-letter-exchange"] = "tdi.wait.exchange";
1720+
arguments["x-dead-letter-routing-key"] = "QueueTest";
1721+
1722+
Model.QueueDeclare(testQueueName, durable: false, exclusive: false, autoDelete: false, arguments);
1723+
1724+
arguments.Remove("x-dead-letter-exchange");
1725+
arguments.Remove("x-dead-letter-routing-key");
1726+
1727+
Model.QueueBind(testRetryQueueName, tdiWaitExchangeName, testQueueName);
1728+
1729+
Model.QueueBind(testQueueName, tdiRetryExchangeName, testQueueName);
1730+
1731+
var consumerAsync = new EventingBasicConsumer(Model);
1732+
Model.BasicConsume(queue: testQueueName, autoAck: false, consumer: consumerAsync);
1733+
1734+
CloseAndWaitForRecovery();
1735+
1736+
QueueDeclareOk q0 = Model.QueueDeclarePassive(testRetryQueueName);
1737+
Assert.AreEqual(testRetryQueueName, q0.QueueName);
1738+
1739+
QueueDeclareOk q1 = Model.QueueDeclarePassive(testQueueName);
1740+
Assert.AreEqual(testQueueName, q1.QueueName);
1741+
}
1742+
16981743
internal bool SendAndConsumeMessage(string queue, string exchange, string routingKey)
16991744
{
17001745
using (var ch = Conn.CreateModel())

0 commit comments

Comments
 (0)