DarabonbaUnitTests/ValidatorTest.cs (63 lines of code) (raw):
using System;
using System.Collections.Generic;
using Darabonba;
using Xunit;
namespace DaraUnitTests
{
public class ValidatorTest
{
[Fact]
public void TestDaraValidator()
{
Validator validator = new Validator(null, "propertyName");
validator.ValidateRequired("test");
validator.ValidateRegex("test");
Assert.NotNull(validator);
ValidationAttribute attribute = new ValidationAttribute();
attribute.Required = false;
validator.Attribute = attribute;
validator.ValidateRequired("test");
Assert.NotNull(validator);
attribute.Pattern = "";
validator.ValidateRegex("test");
Assert.NotNull(validator);
attribute.Pattern = "pattern";
validator.ValidateRegex(null);
Assert.NotNull(validator);
validator.ValidateRegex("patternTest");
Assert.NotNull(validator);
Assert.Equal("propertyName is not match pattern",
Assert.Throws<ArgumentException>(() => { validator.ValidateRegex("test"); }).Message
);
attribute.Required = true;
Assert.Equal("propertyName is required.",
Assert.Throws<ArgumentException>(() => { validator.ValidateRequired(null); }).Message
);
attribute.MaxLength = 3;
validator.ValidateMaxLength("阿里");
Assert.Equal("propertyName is exceed max-length: 3",
Assert.Throws<ArgumentException>(() => { validator.ValidateMaxLength("阿里test"); }).Message
);
List<string> list = new List<string>{ "1", "2","3","4" };
validator.ValidateMaxLength("阿里");
Assert.Equal("propertyName is exceed max-length: 3",
Assert.Throws<ArgumentException>(() => { validator.ValidateMaxLength(list); }).Message
);
attribute.MinLength = 2;
validator.ValidateMinLength("阿里");
Assert.Equal("propertyName is less than min-length: 2",
Assert.Throws<ArgumentException>(() => { validator.ValidateMinLength("阿"); }).Message
);
attribute.Maximun = 1.5;
validator.ValidateMaximum("1");
Assert.Equal("propertyName is exceed maximum: 1.5",
Assert.Throws<ArgumentException>(() => { validator.ValidateMaximum(2); }).Message
);
attribute.Minimum = 1;
validator.ValidateMinimum(1.5);
Assert.Equal("propertyName is less than Minimum: 1",
Assert.Throws<ArgumentException>(() => { validator.ValidateMinimum(-2); }).Message
);
}
}
}