public async Task AwaitMessageProcessedAttempt_ShouldWaitUntilMessageProcessorHasBeenCalled_WhenMessageProcessorFails() { var client = new SQSClientMock("mockEndpoint", "mockRegion"); await client.CreateStandardFifoQueueAsync(FifoQueueName); var cancellationTokenSource = new CancellationTokenSource(); var cancellationToken = cancellationTokenSource.Token; client.StartMessageReceiver(FifoQueueName, new MessageReceiverOptions(), async(message) => { await Task.Delay(1000); return(false); }, cancellationToken); await client.SendMessageAsync("Hello World!", FifoQueueName); var stopwatch = new Stopwatch(); stopwatch.Start(); await client.AwaitMessageProcessedAttempt(FifoQueueName); stopwatch.Stop(); Assert.True(stopwatch.ElapsedMilliseconds > 900); }
public async Task MockQueue_ShouldNotRemoveMessageFromQueue_IfFalseIsReturned() { var client = new SQSClientMock("mockEndpoint", "mockRegion"); await client.CreateStandardFifoQueueAsync(FifoQueueName); await client.SendMessageAsync("Hello World!", FifoQueueName); var cancellationTokenSource = new CancellationTokenSource(); var cancellationToken = cancellationTokenSource.Token; client.StartMessageReceiver(FifoQueueName, new MessageReceiverOptions(), async(message) => { Assert.Single(client.GetMessages(FifoQueueName)); Assert.True(client.GetMessages(FifoQueueName).First().IsLocked); Assert.Equal("Hello World!", message); _messagePicked = true; return(await Task.FromResult(false)); }, cancellationToken); await client.AwaitMessageProcessedAttempt(FifoQueueName); cancellationTokenSource.Cancel(); Assert.True(_messagePicked); Assert.Single(client.GetMessages(FifoQueueName)); Assert.False(client.GetMessages(FifoQueueName).First().IsLocked); _messagePicked = false; }
public async Task MockStartMessageReceiver_ShouldRetrieveMessageWithSyncProcessor_WhenQueueAndMessageExists() { var client = new SQSClientMock("mockEndpoint", "mockRegion"); await client.CreateStandardFifoQueueAsync(FifoQueueName); await client.SendMessageAsync("Hello World!", FifoQueueName); var cancellationTokenSource = new CancellationTokenSource(); var cancellationToken = cancellationTokenSource.Token; client.StartMessageReceiver(FifoQueueName, new MessageReceiverOptions(), message => { Assert.Equal("Hello World!", message); _messagePicked = true; return(true); }, cancellationToken); await client.AwaitMessageProcessedAttempt(FifoQueueName); cancellationTokenSource.Cancel(); Assert.True(_messagePicked); _messagePicked = false; }
public async Task GetNumberOfMessagesOnQueue_ShouldReturnNumberOfMessagesOnQueue_WhenMessageExists() { var client = new SQSClientMock("mockEndpoint", "mockRegion"); await client.CreateStandardFifoQueueAsync(FifoQueueName); await client.SendMessageAsync("Foo", FifoQueueName); var actual = await client.GetNumberOfMessagesOnQueue(FifoQueueName); Assert.Equal(FifoQueueName, actual.QueueName); Assert.Equal(1, actual.ApproximateNumberOfMessages); }
public async Task MockDeleteQueue_ShouldDeleteQueue_IfQueueExists() { var client = new SQSClientMock("mockEndpoint", "mockRegion"); await client.CreateStandardFifoQueueAsync(FifoQueueName); var queuesOnClientBeforeDeletion = await client.ListQueuesAsync(); await client.DeleteQueueAsync(FifoQueueName); var queuesOnClientAfterDeletion = await client.ListQueuesAsync(); Assert.Single(queuesOnClientBeforeDeletion); Assert.Empty(queuesOnClientAfterDeletion); }
public async Task SQSMessage_ShouldNotRemoveMessageFromQueue_WhenNotAcked() { var client = new SQSClientMock("mockEndpoint", "mockRegion"); await client.CreateStandardFifoQueueAsync(FifoQueueName); var cancellationTokenSource = new CancellationTokenSource(); var cancellationToken = cancellationTokenSource.Token; client.StartMessageReceiver(FifoQueueName, new MessageReceiverOptions(), async(ISQSMessage message) => { Assert.Equal("Bar", message.Body); }, cancellationToken); await client.SendMessageAsync("Bar", FifoQueueName); await client.AwaitMessageProcessedAttempt(FifoQueueName); cancellationTokenSource.Cancel(); Assert.Single(client.GetMessages(FifoQueueName)); }