public async Task TestQueueClaims() { IQueueingService provider = CreateProvider(); CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(TestTimeout(TimeSpan.FromSeconds(10))); QueueName queueName = CreateRandomQueueName(); await provider.CreateQueueAsync(queueName, cancellationTokenSource.Token); await provider.PostMessagesAsync(queueName, cancellationTokenSource.Token, new Message <SampleMetadata>(TimeSpan.FromSeconds(120), new SampleMetadata(3, "yes"))); QueueStatistics statistics; using (Claim claim = await provider.ClaimMessageAsync(queueName, null, TimeSpan.FromMinutes(5), TimeSpan.FromMinutes(1), cancellationTokenSource.Token)) { Assert.AreEqual(TimeSpan.FromMinutes(5), claim.TimeToLive); Assert.IsNotNull(claim.Messages); Assert.AreEqual(1, claim.Messages.Count); statistics = await provider.GetQueueStatisticsAsync(queueName, cancellationTokenSource.Token); Assert.AreEqual(1, statistics.MessageStatistics.Claimed); QueuedMessage message = await provider.GetMessageAsync(queueName, claim.Messages[0].Id, cancellationTokenSource.Token); Assert.IsNotNull(message); TimeSpan age = claim.Age; await Task.Delay(TimeSpan.FromSeconds(2)); await claim.RefreshAsync(cancellationTokenSource.Token); Assert.IsTrue(claim.Age >= age + TimeSpan.FromSeconds(2)); await claim.RenewAsync(TimeSpan.FromMinutes(10), cancellationTokenSource.Token); Assert.AreEqual(TimeSpan.FromMinutes(10), claim.TimeToLive); } statistics = await provider.GetQueueStatisticsAsync(queueName, cancellationTokenSource.Token); Assert.AreEqual(0, statistics.MessageStatistics.Claimed); await provider.DeleteQueueAsync(queueName, cancellationTokenSource.Token); }
public async Task TestQueueStatistics() { IQueueingService provider = CreateProvider(); CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(TestTimeout(TimeSpan.FromSeconds(10))); QueueName queueName = CreateRandomQueueName(); await provider.CreateQueueAsync(queueName, cancellationTokenSource.Token); QueueStatistics statistics = await provider.GetQueueStatisticsAsync(queueName, cancellationTokenSource.Token); Assert.IsNotNull(statistics); QueueMessagesStatistics messageStatistics = statistics.MessageStatistics; Assert.IsNotNull(messageStatistics); Assert.AreEqual(messageStatistics.Free, 0); Assert.AreEqual(messageStatistics.Claimed, 0); Assert.AreEqual(messageStatistics.Total, 0); Assert.IsNull(messageStatistics.Oldest); Assert.IsNull(messageStatistics.Newest); Console.WriteLine("Statistics:"); Console.WriteLine(); Console.WriteLine(JsonConvert.SerializeObject(statistics, Formatting.Indented)); await provider.PostMessagesAsync(queueName, cancellationTokenSource.Token, new Message <SampleMetadata>(TimeSpan.FromSeconds(120), new SampleMetadata(3, "yes"))); statistics = await provider.GetQueueStatisticsAsync(queueName, cancellationTokenSource.Token); Assert.IsNotNull(statistics); messageStatistics = statistics.MessageStatistics; Assert.IsNotNull(messageStatistics); Assert.AreEqual(messageStatistics.Free, 1); Assert.AreEqual(messageStatistics.Claimed, 0); Assert.AreEqual(messageStatistics.Total, 1); Assert.IsNotNull(messageStatistics.Oldest); Assert.IsNotNull(messageStatistics.Newest); Console.WriteLine("Statistics:"); Console.WriteLine(); Console.WriteLine(JsonConvert.SerializeObject(statistics, Formatting.Indented)); await provider.DeleteQueueAsync(queueName, cancellationTokenSource.Token); }