示例#1
0
 public IdempotencyBehaviorPipelineTests()
 {
     _requestMock    = new Mock <IRequest <IResult> >();
     _nextMock       = new Mock <RequestHandlerDelegate <IResult> >();
     _keyReaderMock  = new Mock <IIdempotencyKeyReader <IRequest <IResult> > >();
     _repositoryMock = new Mock <IIdempotencyRepository>();
     _serializerMock = new Mock <IIdempotencySerializer>();
     _loggerMock     = new Mock <ILogger <IRequest <IResult>, IResult> >();
     _pipeline       = new IdempotencyPipelineBehavior <IRequest <IResult>, IResult>(
         _keyReaderMock.Object,
         _repositoryMock.Object,
         _serializerMock.Object,
         _loggerMock.Object);
 }
示例#2
0
        public async Task GivenRequestWhenKeyReaderNotAvaiableShouldCallApplication()
        {
            var pipeline = new IdempotencyPipelineBehavior <IRequest <IResult>, IResult>(
                null,
                _repositoryMock.Object,
                _serializerMock.Object,
                _loggerMock.Object);

            _nextMock.Setup(x => x.Invoke())
            .ReturnsAsync(Result.Success())
            .Verifiable();

            var result = await pipeline.Handle(
                _requestMock.Object,
                CancellationToken.None,
                _nextMock.Object);

            result.Should().NotBeNull();
            result.Successful.Should().BeTrue();

            _repositoryMock.Verify(x => x.TryAddAsync(It.IsAny <string>()), Times.Never());
            _nextMock.VerifyAll();
        }