Exemplo n.º 1
0
        public async void RegisterMessageStatusAsync_StatusNotHandledCorrectly_DoesNotSetLastHandledMessage(
            ProcessedMessageStatus status)
        {
            var tooManyTemporaryFailuresStatistics = new TooManyTemporaryFailuresStatistics <string>();
            var beforeRegister = DateTimeOffset.UtcNow;

            await tooManyTemporaryFailuresStatistics.RegisterMessageStatusAsync(status);

            Assert.NotInRange(tooManyTemporaryFailuresStatistics.LastHandledMessageAt, beforeRegister,
                              DateTimeOffset.UtcNow);
        }
Exemplo n.º 2
0
        public async void RegisterMessageStatusAsync_StatusHandledCorrectly_ResetTemporaryFailureCount(
            ProcessedMessageStatus status)
        {
            var tooManyTemporaryFailuresStatistics = new TooManyTemporaryFailuresStatistics <string>
            {
                TemporaryFailureCountSinceLastHandledMessage = 100
            };

            await tooManyTemporaryFailuresStatistics.RegisterMessageStatusAsync(status);

            Assert.Equal((uint)0, tooManyTemporaryFailuresStatistics.TemporaryFailureCountSinceLastHandledMessage);
        }
Exemplo n.º 3
0
        public async void RegisterMessageStatusAsync_StatusNotHandledCorrectly_IncreasesTemporaryFailureCount(
            uint count, ProcessedMessageStatus status)
        {
            var tooManyTemporaryFailuresStatistics = new TooManyTemporaryFailuresStatistics <string>();

            for (uint i = 0; i < count; i++)
            {
                await tooManyTemporaryFailuresStatistics.RegisterMessageStatusAsync(status);
            }

            Assert.Equal(count, tooManyTemporaryFailuresStatistics.TemporaryFailureCountSinceLastHandledMessage);
        }
Exemplo n.º 4
0
        public async Task ExecuteAsync_MessagesProcessingStatus_TaskCompletionSourceIsCompleted(
            ProcessedMessageStatus expectedStatus)
        {
            var taskCompletionSource = new TaskCompletionSource <ProcessedMessageStatus>();
            var queue = CreateQueue(status: taskCompletionSource);

            var service = new Mock <INoOutputService <string> >();

            service
            .Setup(t => t.HandleMessageAsync(It.IsAny <MotorCloudEvent <string> >(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(expectedStatus);

            var queuedGenericService = CreateQueuedGenericService(service.Object, queue);

            await queuedGenericService.StartAsync(CancellationToken.None).ConfigureAwait(false);

            await Task.Delay(100).ConfigureAwait(false);

            var actualStatus = await taskCompletionSource.Task.ConfigureAwait(false);

            Assert.Equal(expectedStatus, actualStatus);

            await queuedGenericService.StopAsync(CancellationToken.None).ConfigureAwait(false);
        }