Example #1
0
        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);
        }
Example #2
0
        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;
        }
Example #3
0
        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;
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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));
        }