public void WhenValidatingValidMixedValidatableCommandThenReturnsTrue()
        {
            // Assign
            ICommandValidator       validator = new DefaultCommandValidator();
            MixedValidatableCommand command   = new MixedValidatableCommand(true);

            command.Property1 = "123456";
            CommandHandlerRequest request = new CommandHandlerRequest(this.configuration, command);

            // Act
            bool result = validator.Validate(request);

            // Assert
            Assert.True(result);
            Assert.Equal(0, request.ModelState.Count);
        }
        public void WhenValidatingInvalidMixedValidatableCommandThenReturnsFalse()
        {
            // Assign
            ICommandValidator       validator = new DefaultCommandValidator();
            MixedValidatableCommand command   = new MixedValidatableCommand(false);

            command.Property1 = "123456789456132456";
            CommandHandlerRequest request = new CommandHandlerRequest(this.configuration, command);

            // Act
            bool result = validator.Validate(request);

            // Assert
            Assert.False(result);

            // Validator ignore IValidatableObject validation until DataAnnotations succeed.
            Assert.Equal(1, request.ModelState.Count);
        }
        public void WhenValidatingValidMixedValidatableCommandThenReturnsTrue()
        {
            // Assign
            ICommandValidator validator = new DefaultCommandValidator();
            MixedValidatableCommand command = new MixedValidatableCommand(true);
            command.Property1 = "123456";
            CommandHandlerRequest request = new CommandHandlerRequest(this.configuration, command);

            // Act
            bool result = validator.Validate(request);

            // Assert
            Assert.True(result);
            Assert.Equal(0, request.ModelState.Count);
        }
        public void WhenValidatingInvalidMixedValidatableCommandThenReturnsFalse()
        {
            // Assign
            ICommandValidator validator = new DefaultCommandValidator();
            MixedValidatableCommand command = new MixedValidatableCommand(false);
            command.Property1 = "123456789456132456";
            CommandHandlerRequest request = new CommandHandlerRequest(this.configuration, command);

            // Act
            bool result = validator.Validate(request);

            // Assert
            Assert.False(result);

            // Validator ignore IValidatableObject validation until DataAnnotations succeed.
            Assert.Equal(1, request.ModelState.Count);
        }