Exemple #1
0
        public async Task Get_MediatorWithCommandRequest_ExecutesChangeTrackerContextInterceptorAndEnablesTracking()
        {
            // arrange
            var autoMocker      = new AutoMocker();
            var serviceProvider = autoMocker.GetMock <IServiceProvider>();
            var testHandler     = new Mock <TestHandler>();
            var logger          = new Mock <IBoltOnLogger <ChangeTrackerInterceptor> >();

            serviceProvider.Setup(s => s.GetService(typeof(IHandler <TestCommand, bool>)))
            .Returns(testHandler.Object);
            var request = new TestCommand();
            var changeTrackerContext = new ChangeTrackerContext();

            autoMocker.Use <IEnumerable <IInterceptor> >(new List <IInterceptor>
            {
                new ChangeTrackerInterceptor(logger.Object, changeTrackerContext)
            });
            var sut = autoMocker.CreateInstance <BoltOn.Mediator.Pipeline.Mediator>();

            testHandler.Setup(s => s.HandleAsync(request, It.IsAny <CancellationToken>())).Returns(Task.FromResult(true));

            // act
            var result = await sut.ProcessAsync(request);

            // assert
            Assert.True(result);
            Assert.False(changeTrackerContext.IsQueryRequest);
            logger.Verify(l => l.Debug($"Entering {nameof(ChangeTrackerInterceptor)}..."));
            logger.Verify(l => l.Debug($"IsQueryRequest: {false}"));
        }
 public CustomChangeTrackerInterceptor(IBoltOnLogger <CustomChangeTrackerInterceptor> logger,
                                       ChangeTrackerContext changeTrackerContext)
 {
     _logger = logger;
     _changeTrackerContext = changeTrackerContext;
 }