public void DispatchTheQuery_HandlerNotRegistered_ExceptionThrown()
        {
            IServiceCollection serviceCollection = new ServiceCollection();

            IQuery    fakeQuery = new FakeQuery();
            IResolver resolver  = new Resolver(serviceCollection.BuildServiceProvider());

            IQueryDispatcher queryDispatcher = new QueryDispatcher(resolver);

            Assert.Throws <NotRegisteredQueryHandlerException <FakeQuery> >(() => queryDispatcher.RunQuery <FakeQuery, FakeQueryResult>(new FakeQuery()));
        }
        public void DispatchTheQuery_ThereIsAnHandler_QueryHandlerIsInvoked()
        {
            IServiceCollection serviceCollection = new ServiceCollection();


            serviceCollection.AddScoped <IWantToHandleQuery <FakeQuery, FakeQueryResult>, FakeQueryHandler>();

            IResolver resolver = new Resolver(serviceCollection.BuildServiceProvider());

            IQueryDispatcher queryDispatcher = new QueryDispatcher(resolver);

            queryDispatcher.RunQuery <FakeQuery, FakeQueryResult>(new FakeQuery());

            var queryHandler = resolver.Resolve <IWantToHandleQuery <FakeQuery, FakeQueryResult> >();

            ((FakeQueryHandler)queryHandler).Verify();
        }