diff --git a/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/multi_tenancy_through_virtual_hosts.cs b/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/multi_tenancy_through_virtual_hosts.cs index 41a22f6dc..4fd473bb2 100644 --- a/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/multi_tenancy_through_virtual_hosts.cs +++ b/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/multi_tenancy_through_virtual_hosts.cs @@ -49,6 +49,13 @@ public async Task InitializeAsync() .AddTenant("one", "vh1") .AddTenant("two", "vh2") .AddTenant("three", "vh3"); + + // Really just to manually test https://github.com/JasperFx/wolverine/issues/1658 + opts.ListenToRabbitQueue("Queue1", conf => + { + conf.BindExchange("Exchange1"); + conf.BindExchange("Exchange2"); + }); // Listen for multiples opts.ListenToRabbitQueue("multi_response"); diff --git a/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqQueue.Bindings.cs b/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqQueue.Bindings.cs index d872d91ab..b464d4c1d 100644 --- a/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqQueue.Bindings.cs +++ b/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqQueue.Bindings.cs @@ -15,6 +15,10 @@ public RabbitMqBinding BindExchange(string exchangeName, string? bindingKey = nu var existing = _bindings.FirstOrDefault(x => x.ExchangeName == exchangeName && x.BindingKey == bindingKey); if (existing != null) return existing; + + // Just to make sure that the exchange exists so resource setup + // works correctly + _parent.Exchanges.FillDefault(exchangeName); var binding = new RabbitMqBinding(exchangeName, this, bindingKey); if (arguments is not null) diff --git a/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqTransport.cs b/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqTransport.cs index e582002b2..751f121b1 100644 --- a/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqTransport.cs +++ b/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/RabbitMqTransport.cs @@ -204,6 +204,8 @@ protected override IEnumerable endpoints() } foreach (var queue in Queues) yield return queue; + + } protected override RabbitMqEndpoint findEndpointByUri(Uri uri)