public async Task ShouldInterceptQueryHandlerWithMultipleDependencies() { var container = new ServiceContainer(); container.RegisterQueryHandlers(); container.Register <IFoo, Foo>(); container.Register <IBar, Bar>(); bool invoked = false; IFoo passedFoo = null; IBar passedBar = null; container.RegisterQueryInterceptor <SampleQuery, SampleQueryResult, (IFoo foo, IBar bar)>(async(query, handler, dependencies, token) => { passedFoo = dependencies.foo; passedBar = dependencies.bar; invoked = true; return(await handler.HandleAsync(query, token)); } ); var query = new SampleQuery(); using (var scope = container.BeginScope()) { await container.GetInstance <IQueryHandler <SampleQuery, SampleQueryResult> >().HandleAsync(query); invoked.Should().BeTrue(); query.WasHandled.Should().BeTrue(); passedFoo.Should().BeOfType <Foo>(); passedBar.Should().BeOfType <Bar>(); } }
public async Task ShouldInterceptQueryHandler() { var container = new ServiceContainer(); container.RegisterQueryHandlers(); container.Register <IFoo, Foo>(); bool invoked = false; container.RegisterQueryInterceptor <SampleQuery, SampleQueryResult>(async(query, handler, token) => { invoked = true; return(await handler.HandleAsync(query, token)); } ); var query = new SampleQuery(); using (var scope = container.BeginScope()) { await container.GetInstance <IQueryHandler <SampleQuery, SampleQueryResult> >().HandleAsync(query); invoked.Should().BeTrue(); query.WasHandled.Should().BeTrue(); } }
public async Task ShouldExecuteQueryHandler() { var container = new ServiceContainer(); container.RegisterQueryHandlers(); using (var scope = container.BeginScope()) { var queryExecutor = scope.GetInstance <IQueryExecutor>(); var query = new SampleQuery(); var result = await queryExecutor.ExecuteAsync(query); query.WasHandled.Should().BeTrue(); } }