Skip to content

Commit c095784

Browse files
author
Mike Hadlow
committed
Added overload to GetQueuesAsync that takes a Vhost for the 'queues/<vhost>' API endpoint.
1 parent 24c081f commit c095784

3 files changed

Lines changed: 31 additions & 3 deletions

File tree

Source/EasyNetQ.Management.Client.IntegrationTests/ManagementClientTests.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,16 @@ public async Task Should_get_queues()
237237
(await managementClient.GetQueuesAsync().ConfigureAwait(false)).ToList().Count.ShouldBeGreaterThan(0);
238238
}
239239

240+
[Fact]
241+
public async Task Should_get_queues_by_vhost()
242+
{
243+
var vhost = await managementClient.CreateVhostAsync(testVHost).ConfigureAwait(false);
244+
vhost.Name.ShouldEqual(testVHost);
245+
246+
await CreateTestQueueInVhost(testQueue, vhost).ConfigureAwait(false);
247+
(await managementClient.GetQueuesAsync(vhost).ConfigureAwait(false)).ToList().Count.ShouldBeGreaterThan(0);
248+
}
249+
240250
[Fact]
241251
public async Task Should_be_able_to_get_a_queue_by_name()
242252
{
@@ -409,6 +419,11 @@ private async Task<Queue> EnsureQueueExists(string managementApiTestQueue)
409419
private async Task<Queue> CreateTestQueue(string queueName)
410420
{
411421
var vhost = await managementClient.GetVhostAsync(vhostName).ConfigureAwait(false);
422+
return await CreateTestQueueInVhost(queueName, vhost);
423+
}
424+
425+
private async Task<Queue> CreateTestQueueInVhost(string queueName, Vhost vhost)
426+
{
412427
var queueInfo = new QueueInfo(queueName);
413428
await managementClient.CreateQueueAsync(queueInfo, vhost).ConfigureAwait(false);
414429
return await managementClient.GetQueueAsync(queueName, vhost).ConfigureAwait(false);
@@ -1058,4 +1073,4 @@ public async Task Should_disable_tracing()
10581073
Assert.False(vhostAfterUpdate.Tracing);
10591074
}
10601075
}
1061-
}
1076+
}

Source/EasyNetQ.Management.Client/IManagementClient.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,14 @@ Task<Channel> GetChannelAsync(
9191
/// <returns></returns>
9292
Task<IEnumerable<Queue>> GetQueuesAsync(CancellationToken cancellationToken = default(CancellationToken));
9393

94+
/// <summary>
95+
/// A list of all queues for a virtual host.
96+
/// </summary>
97+
/// <param name="vhost"></param>
98+
/// <param name="cancellationToken"></param>
99+
/// <returns></returns>
100+
Task<IEnumerable<Queue>> GetQueuesAsync(Vhost vhost, CancellationToken cancellationToken = default(CancellationToken));
101+
94102
/// <summary>
95103
/// A list of all bindings.
96104
/// </summary>
@@ -532,4 +540,4 @@ Task DeleteParameterAsync(
532540
/// <returns></returns>
533541
Task<List<Federation>> GetFederationAsync(CancellationToken cancellationToken = default(CancellationToken));
534542
}
535-
}
543+
}

Source/EasyNetQ.Management.Client/ManagementClient.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,11 @@ public Task<PublishResult> PublishAsync(Exchange exchange, PublishInfo publishIn
267267
return GetAsync<IEnumerable<Queue>>("queues", cancellationToken);
268268
}
269269

270+
public Task<IEnumerable<Queue>> GetQueuesAsync(Vhost vhost, CancellationToken cancellationToken = default(CancellationToken))
271+
{
272+
return GetAsync<IEnumerable<Queue>>($"queues/{SanitiseVhostName(vhost.Name)}", cancellationToken);
273+
}
274+
270275
public async Task<Queue> CreateQueueAsync(QueueInfo queueInfo, Vhost vhost,
271276
CancellationToken cancellationToken = default(CancellationToken))
272277
{
@@ -833,4 +838,4 @@ public void Dispose()
833838
httpClient.Dispose();
834839
}
835840
}
836-
}
841+
}

0 commit comments

Comments
 (0)