public void TestSimple() { var resolver = new DefaultErrorResolver(); SetErrorMessage <ClassA, int>(resolver, a => a.A, null, "ClassA validation for property A"); Assert.AreEqual("ClassA validation for property A", GetErrorMessage <ClassA, int>(resolver, o => o.A, new Rules.NotNullOrEmpty())); }
public void TestByExpression() { var resolver = new DefaultErrorResolver(); SetErrorMessage <ClassB, int>(resolver, b => b.A, null, "ClassB validation for property A"); SetErrorMessage <ClassB, int>(resolver, b => b.B, null, "ClassB validation for property B"); Assert.AreEqual("ClassB validation for property A", GetErrorMessage <ClassB, int>(resolver, o => o.A, new Rules.NotNullOrEmpty())); Assert.AreEqual("ClassB validation for property B", GetErrorMessage <ClassB, int>(resolver, o => o.B, new Rules.NotNullOrEmpty())); }
public void TestSimpleInheritance_ShouldGetBaseMessage2() { var resolver = new DefaultErrorResolver(); SetErrorMessage <ClassA, int>(resolver, a => a.A, null, "ClassA validation for property A"); SetErrorMessage <ClassB, int>(resolver, b => b.A, null, "ClassB validation for property A"); Assert.AreEqual("ClassA validation for property A", GetErrorMessage <ClassA, int>(resolver, o => o.A, new Rules.NotNullOrEmpty())); Assert.AreEqual("ClassB validation for property A", GetErrorMessage <ClassB, int>(resolver, o => o.A, new Rules.NotNullOrEmpty())); Assert.AreEqual("ClassB validation for property A", GetErrorMessage <ClassC, int>(resolver, o => o.A, new Rules.NotNullOrEmpty())); }
public void TestInheritance_AllOverridden() { var resolver = new DefaultErrorResolver(); SetErrorMessage <ClassA, int>(resolver, a => a.A, null, "ClassA validation for property A"); SetErrorMessage <ClassB, int>(resolver, b => b.A, null, "ClassB validation for property A"); SetErrorMessage <ClassC, int>(resolver, c => c.A, null, "ClassC validation for property A"); Assert.AreEqual("ClassA validation for property A", GetErrorMessage <ClassA, int>(resolver, o => o.A, new Rules.NotNullOrEmpty())); Assert.AreEqual("ClassB validation for property A", GetErrorMessage <ClassB, int>(resolver, o => o.A, new Rules.NotNullOrEmpty())); Assert.AreEqual("ClassC validation for property A", GetErrorMessage <ClassC, int>(resolver, o => o.A, new Rules.NotNullOrEmpty())); }
public void TestTestByType_ShouldGetOverridenDefault() { var resolver = new DefaultErrorResolver(); var rule1 = new NotNullOrEmpty(); var rule2 = new NotNullOrEmpty(); SetErrorMessage <ClassA, int>(resolver, a => a.A, rule1, "ClassA validation for property A - Rule1"); SetErrorMessage <ClassA, int>(resolver, a => a.A, null, "ClassA validation for property A - Default"); SetErrorMessage <ClassA, ClassA>(resolver, a => a, null, "ClassA validation - Default"); SetErrorMessage <ClassB, ClassB>(resolver, b => b, null, "ClassB validation - Default"); //Should get message from default ClassB instead of getting a => a.A from ClassA message! Assert.AreEqual("ClassB validation - Default", GetErrorMessage <ClassB, int>(resolver, o => o.A, rule1)); }
public void TestByType() { var resolver = new DefaultErrorResolver(); var rule1 = new NotNullOrEmpty(); var rule2 = new NotNullOrEmpty(); SetErrorMessage <ClassB, int>(resolver, b => b.A, rule1, "ClassB validation for property A - Rule1"); SetErrorMessage <ClassB, int>(resolver, b => b.A, null, "ClassB validation for property A - Default"); SetErrorMessage <ClassB, ClassB>(resolver, b => b, null, "ClassB validation - Default"); Assert.AreEqual("ClassB validation for property A - Rule1", GetErrorMessage <ClassB, int>(resolver, o => o.A, rule1)); Assert.AreEqual("ClassB validation for property A - Default", GetErrorMessage <ClassB, int>(resolver, o => o.A, rule2)); Assert.AreEqual("ClassB validation - Default", GetErrorMessage <ClassB, int>(resolver, o => o.B, new NotNullOrEmpty())); }
public void TestByRule() { var resolver = new DefaultErrorResolver(); var rule1 = new NotNullOrEmpty(); var rule2 = new RegexRule(new System.Text.RegularExpressions.Regex("a")); var rule3 = new Rules.GreaterThanRule <int>(10, true); SetErrorMessage <ClassA, int>(resolver, a => a.A, null, "ClassA validation for property A - Default"); SetErrorMessage <ClassA, int>(resolver, a => a.A, rule1, "ClassA validation for property A - Rule1"); SetErrorMessage <ClassA, int>(resolver, a => a.A, rule2, "ClassA validation for property A - Rule2"); Assert.AreEqual("ClassA validation for property A - Rule1", GetErrorMessage <ClassA, int>(resolver, o => o.A, rule1)); Assert.AreEqual("ClassA validation for property A - Rule2", GetErrorMessage <ClassA, int>(resolver, o => o.A, rule2)); Assert.AreEqual("ClassA validation for property A - Default", GetErrorMessage <ClassA, int>(resolver, o => o.A, rule3)); }
private string GetErrorMessage <T, R>(DefaultErrorResolver resolver, Expression <Func <T, R> > expression, IRule rule) where T : new() { return(resolver.GetErrorMessage(typeof(T), new EquatableExpression(expression), rule, new object[0])); }