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); }
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(); }