public void ShouldThrowInvalidOperationExceptionWhenQueryHandlerIsNotRegistered() { const string expectedResult = "expectedResult"; const string expectedResult2 = "expectedResult2"; var mockHandler = new TestQueryHandler1 <TestQuery1, string>(expectedResult); ICollection <ICommandHandler> commandHandlers = Enumerable.Repeat <ICommandHandler>(new TestCommandHandler1 <TestCommand1>(), 1).ToList(); ICollection <IQueryHandler> queryHandlers = new List <IQueryHandler> { mockHandler, }; var query = new TestQuery2(); var dispatcher = new CommandAndQueryDispatcher(commandHandlers, queryHandlers); string queryResult; Action action = () => queryResult = dispatcher.ExecuteQuery(query); action.ShouldThrow <InvalidOperationException>(); }
public void ShouldUseRegisteredQueryHandlerToExecuteQueryWhenMultiple() { const string expectedResult = "expectedResult"; const string expectedResult2 = "expectedResult2"; var mockHandler = new TestQueryHandler1 <TestQuery1, string>(expectedResult); var mockHandler2 = new TestQueryHandler2 <TestQuery2, string>(expectedResult2); ICollection <ICommandHandler> commandHandlers = Enumerable.Repeat <ICommandHandler>(new TestCommandHandler1 <TestCommand1>(), 1).ToList(); ICollection <IQueryHandler> queryHandlers = new List <IQueryHandler> { mockHandler, mockHandler2 }; var query = new TestQuery2(); var dispatcher = new CommandAndQueryDispatcher(commandHandlers, queryHandlers); string queryResult = dispatcher.ExecuteQuery(query); mockHandler2.QueryExecuted.Should().Be(query); queryResult.Should().Be(expectedResult2); mockHandler.QueryExecuted.Should().BeNull(); }