public void ShouldThrowInvalidOperationExceptionWhenNoCommandHandlerIsRegistered()
            {
                List <IQueryHandler> queryHandlers =
                    Enumerable.Repeat <IQueryHandler>(new TestQueryHandler1 <TestQuery1, string>(string.Empty), 1)
                    .ToList();
                var mockHandler = new TestCommandHandler1 <TestCommand1>();
                ICollection <ICommandHandler> commandHandlers = new List <ICommandHandler>
                {
                    mockHandler,
                };
                var command = new TestCommand2();

                var    dispatcher = new CommandAndQueryDispatcher(commandHandlers, queryHandlers);
                Action action     = () => dispatcher.ExecuteCommand(command);

                action.ShouldThrow <InvalidOperationException>();
            }
            public void ShouldUseRegisteredCommandHandlerToExecuteCommand()
            {
                List <IQueryHandler> queryHandlers =
                    Enumerable.Repeat <IQueryHandler>(new TestQueryHandler1 <TestQuery1, string>(string.Empty), 1)
                    .ToList();
                var mockHandler = new TestCommandHandler1 <TestCommand1>();
                ICollection <ICommandHandler> commandHandlers = new List <ICommandHandler>
                {
                    mockHandler
                };
                var command = new TestCommand1();

                var dispatcher = new CommandAndQueryDispatcher(commandHandlers, queryHandlers);

                dispatcher.ExecuteCommand(command);
                mockHandler.CommandExecuted.Should().Be(command);
            }