예제 #1
0
        public void Builder_BuildTextValidatable_WithDefaultState()
        {
            var validatable = ValidatableBuilder.CreateText().Build();

            Assert.IsNull(validatable.Value);
            Assert.IsTrue(validatable.IsValid);
        }
예제 #2
0
        public void Validatable_ValidateMultiple_CorrectOrder()
        {
            var errorMessages = new[] {
                "ErrorMessage1",
                "ErrorMessage2",
                "ErrorMessage3",
            };
            var validators = new[] {
                new FakeValidator <object> {
                    Message = errorMessages[0], Order = 1
                },
                new FakeValidator <object> {
                    Message = errorMessages[1], Order = 2
                },
                new FakeValidator <object> {
                    Message = errorMessages[2], Order = 3
                },
            };
            var validatable = ValidatableBuilder.Create <object>()
                              .WithValidator(validators[0])
                              .WithValidator(validators[1])
                              .WithValidator(validators[2])
                              .Build();

            for (int i = 0; i < validators.Length; i++)
            {
                validatable.Validate();
                Assert.IsFalse(validatable.IsValid);
                Assert.AreEqual(errorMessages[i], validatable.ErrorMessage);

                validators[i].IsValid = true;
            }
        }
예제 #3
0
        public void Validator_Empty_RetursTrue()
        {
            var validatable = ValidatableBuilder.CreateText().Build();
            var validator   = CreateValidator(validatable);

            var(success, _) = validator.Validate(null);
            Assert.IsTrue(success);
        }
예제 #4
0
        public void Builder_BuildTextValidatable_WithValidator()
        {
            var validatable = ValidatableBuilder.CreateText()
                              .WithValidator(new RequiredValidator("Required field."))
                              .Build();

            Assert.AreEqual(1, validatable.Validators.Count());
        }
예제 #5
0
        public void Validator_DifferentString_ReturnsMessage()
        {
            var validatable = ValidatableBuilder.CreateText().Build();
            var validator   = CreateValidator(validatable);

            validatable.Value = "test1";
            var(_, message)   = validator.Validate("test");
            Assert.AreEqual(ErrorMessage, message);
        }
예제 #6
0
        public void Validator_DifferentString_ReturnsFalse()
        {
            var validatable = ValidatableBuilder.CreateText().Build();
            var validator   = CreateValidator(validatable);

            validatable.Value = "test1";
            var(success, _)   = validator.Validate("test");
            Assert.IsFalse(success);
        }
예제 #7
0
        public void Validator_SameString_ReturnsTrue()
        {
            var validatable = ValidatableBuilder.CreateText().Build();
            var validator   = CreateValidator(validatable);

            validatable.Value = "test";
            var(success, _)   = validator.Validate("test");
            Assert.IsTrue(success);
        }
예제 #8
0
        public void Validatable_Validate_ChangeIsValid()
        {
            var validatable = ValidatableBuilder.Create <object>()
                              .WithValidator(new AlwaysFalseValidator())
                              .Build();

            validatable.Validate();
            Assert.IsFalse(validatable.IsValid);
        }
예제 #9
0
        public void Builder_BuildTextValidatable_WithRequired()
        {
            var validatable = ValidatableBuilder.CreateText()
                              .WithRequired("Required field.")
                              .Build();

            Assert.AreEqual(1, validatable.Validators.Count());
            Assert.Contains(typeof(RequiredValidator),
                            validatable.Validators.Select(v => v.GetType()).ToList());
        }
예제 #10
0
 TextValidatable MakeValidatable(IValidator <string> validator, bool validateOnChange) =>
 ValidatableBuilder.CreateText()
 .WithValidator(validator)
 .SetValidateOnValueChanged(validateOnChange)
 .Build();
예제 #11
0
 Validatable <object> MakeValidatable() => ValidatableBuilder.Create <object>().Build();