public static CommandAndValidator CreateValidator(
     CommandAndValidatorType self,
     Func<Type, IValidator> createValidator)
 {
     var validator = self.ValidatorType == null
         ? null
         : createValidator(self.ValidatorType);
     return new CommandAndValidator(self.Command, validator);
 }
 public void TestCommandNullIn()
 {
     var command = new CommandA();
     var self = new CommandAndValidatorType(command, null);
     var spy = Substitute.For<Func<Type, IValidator>>();
     var result = CommandValidationSteps.CreateValidator(self, spy);
     result.Command.ShouldBe(command);
     result.Validator.ShouldBe(null);
     spy.DidNotReceive().Invoke(Arg.Any<Type>());
 }
 public void TestCommandNullOut()
 {
     var command = new CommandA();
     var self = new CommandAndValidatorType(command, typeof(TestValidator<CommandA>));
     var result = CommandValidationSteps.CreateValidator(
         self,
         t =>
         {
             t.ShouldBe(typeof(TestValidator<CommandA>));
             return null;
         });
     result.Command.ShouldBe(command);
     result.Validator.ShouldBe(null);
 }