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 AwaitMessageProcessedAttempt_ShouldAwaitMessageProcessingBeforeReturning() { var client = new SQSClientMock("mockEndpoint", "mockRegion"); await client.CreateStandardFifoQueueAsync(FifoQueueName); var batch = new List <BatchMessageRequest> { new BatchMessageRequest("Hello World!") }.ToArray(); var response = await client.SendMessageBatchAsync(batch, FifoQueueName); var receivedTask = client.AwaitMessageProcessedAttempt(FifoQueueName); client.StartMessageReceiver(FifoQueueName, new MessageReceiverOptions(), message => { Assert.Equal("Hello World!", message); return(true); }, new CancellationToken()); await receivedTask; var messages = client.GetMessages(FifoQueueName); Assert.Empty(messages); }
public async Task MockGetMessagesOnQueue_ShouldContainSentMessage_WhenQueueExists() { var queueName = "mockQueue.fifo"; var messageContents = "Hello World!"; var client = new SQSClientMock("mockEndpoint", "mockRegion"); await client.CreateStandardFifoQueueAsync(queueName); await client.SendMessageAsync(messageContents, queueName); var actual = client.GetMessages(queueName); Assert.Equal(1, actual.Count); Assert.Equal(messageContents, actual.First()); }
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)); }