Exemple #1
0
        public void Get_MediatorWithStaleQueryRequest_ExecutesEFQueryTrackingBehaviorInterceptorAndDisablesTracking()
        {
            // arrange
            var autoMocker      = new AutoMocker();
            var serviceProvider = autoMocker.GetMock <IServiceProvider>();
            var testHandler     = new Mock <TestHandler>();
            var interceptor     = new Mock <IInterceptor>();
            var logger          = new Mock <IBoltOnLogger <EFQueryTrackingBehaviorInterceptor> >();

            serviceProvider.Setup(s => s.GetService(typeof(IRequestHandler <TestStaleQuery, bool>)))
            .Returns(testHandler.Object);
            var request         = new TestStaleQuery();
            var mediatorContext = new MediatorDataContext();

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

            testHandler.Setup(s => s.Handle(request)).Returns(true);

            // act
            var result = sut.Process(request);

            // assert
            Assert.True(result);
            Assert.True(mediatorContext.IsQueryRequest);
            logger.Verify(l => l.Debug($"Entering {nameof(EFQueryTrackingBehaviorInterceptor)}..."));
            logger.Verify(l => l.Debug($"IsQueryRequest: {true}"));
        }
Exemple #2
0
        public async Task Get_MediatorWithQueryUncommittedRequest_ExecutesChangeTrackerContextInterceptorAndDisablesTracking()
        {
            // arrange
            var autoMocker      = new AutoMocker();
            var serviceProvider = autoMocker.GetMock <IServiceProvider>();
            var testHandler     = new Mock <TestHandler>();
            var logger          = new Mock <IBoltOnLogger <CustomChangeTrackerInterceptor> >();

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

            autoMocker.Use <IEnumerable <IInterceptor> >(new List <IInterceptor>
            {
                new CustomChangeTrackerInterceptor(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.True(changeTrackerContext.IsQueryRequest);
            logger.Verify(l => l.Debug($"Entering {nameof(CustomChangeTrackerInterceptor)}..."));
            logger.Verify(l => l.Debug($"IsQueryRequest or IQueryUncommitted: {true}"));
        }
Exemple #3
0
 public virtual async Task <bool> HandleAsync(TestStaleQuery request, CancellationToken cancellationToken)
 {
     return(await Task.FromResult(true));
 }
Exemple #4
0
 public virtual bool Handle(TestStaleQuery request)
 {
     return(true);
 }