public void Should_Add_MemberScope_When_Member() { var builder = new SpecificationBuilder <MemberClass>(); Predicate <string> isValid = c => true; var args = new[] { Arg.Text("test", "test123") }; builder.Member(m => m.Property, m => m.Valid(isValid, "message", args)); Assert.Single(builder.Commands); Assert.IsType <MemberScope <MemberClass, string> >(builder.Commands.Single()); var memberScope = (MemberScope <MemberClass, string>)builder.Commands.Single(); Assert.Null(memberScope.RuleSingleError); Assert.Equal("Property", memberScope.MemberPropertyInfo.Name); Assert.Equal(typeof(string), memberScope.MemberPropertyInfo.PropertyType); Assert.IsType <ValidRule <string> >(memberScope.MemberValidator.Rules.Single()); var memberRule = (ValidRule <string>)memberScope.MemberValidator.Rules.Single(); Assert.Same(isValid, memberRule.IsValid); Assert.Equal("message", memberRule.Error.Message); Assert.Same(args, memberRule.Error.Arguments); Assert.Null(memberRule.RuleSingleError); }
public void Should_AddMemberScope_When_Member_WithoutSpecification() { var builder = new SpecificationBuilder <MemberClass>(); builder.Member(m => m.Property); Assert.IsType <MemberScope <MemberClass, string> >(builder.Commands.Single()); var memberScope = (MemberScope <MemberClass, string>)builder.Commands.Single(); Assert.Null(memberScope.RuleSingleError); Assert.Equal("Property", memberScope.MemberPropertyInfo.Name); Assert.Equal(typeof(string), memberScope.MemberPropertyInfo.PropertyType); Assert.False(memberScope.MemberValidator.IsOptional); Assert.Null(memberScope.MemberValidator.RequiredError); Assert.Empty(memberScope.MemberValidator.Rules); }
public void Should_ThrowException_When_Member_And_NullMemberSelector() { var builder = new SpecificationBuilder <MemberClass>(); Assert.Throws <ArgumentNullException>(() => { builder.Member <string>(null); }); }