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}")); }
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}")); }
public virtual async Task <bool> HandleAsync(TestStaleQuery request, CancellationToken cancellationToken) { return(await Task.FromResult(true)); }
public virtual bool Handle(TestStaleQuery request) { return(true); }