예제 #1
0
        public async Task Retry_CancellationTokenCanceled_Complete()
        {
            var innerHandlerMock = Substitute.For <IDelegatingHandler>();

            innerHandlerMock.CompleteAsync(Arg.Any <string>(), Arg.Any <CancellationToken>()).Returns(TaskConstants.Completed);

            var sut = new RetryDelegatingHandler(innerHandlerMock);
            var cancellationTokenSource = new CancellationTokenSource();

            cancellationTokenSource.Cancel();
            await sut.CompleteAsync(Arg.Any <string>(), cancellationTokenSource.Token).ExpectedAsync <TaskCanceledException>();
        }
        public async Task RetryCancellationTokenCanceledComplete()
        {
            var innerHandlerMock        = Substitute.For <IDelegatingHandler>();
            var cancellationTokenSource = new CancellationTokenSource();

            cancellationTokenSource.Cancel();
            innerHandlerMock.CompleteAsync(Arg.Any <string>(), cancellationTokenSource.Token).Returns(TaskHelpers.CompletedTask);

            var contextMock = Substitute.For <IPipelineContext>();
            var sut         = new RetryDelegatingHandler(contextMock, innerHandlerMock);

            await sut.CompleteAsync("", cancellationTokenSource.Token).ExpectedAsync <TaskCanceledException>().ConfigureAwait(false);
        }
예제 #3
0
        public async Task Retry_CancellationTokenCanceled_Complete()
        {
            var innerHandlerMock        = Substitute.For <IDelegatingHandler>();
            var cancellationTokenSource = new CancellationTokenSource();

            cancellationTokenSource.Cancel();
            innerHandlerMock.CompleteAsync(Arg.Any <string>(), cancellationTokenSource.Token).Returns(TaskConstants.Completed);

            var contextMock = Substitute.For <IPipelineContext>();
            var sut         = new RetryDelegatingHandler(contextMock);

            sut.ContinuationFactory = c => innerHandlerMock;

            await sut.CompleteAsync("", cancellationTokenSource.Token).ExpectedAsync <TaskCanceledException>();
        }