예제 #1
0
        public void ListCanBeEmpty()
        {
            AddressTestObject obj = new AddressTestObject();

            ValidationContext ctx = new ValidationContext(obj);

            ctx.MemberName = "StreetAddresses";

            List <ValidationResult> validationResults = new List <ValidationResult>();

            Validator.TryValidateProperty(obj.StreetAddresses, ctx, validationResults).Should().BeTrue();
        }
예제 #2
0
        public void StreetNumberIsNotGiven()
        {
            AddressTestObject obj = new AddressTestObject();

            obj.StreetAddresses.Add("Aleksanterinkatu");

            ValidationContext ctx = new ValidationContext(obj);

            ctx.MemberName = "StreetAddresses";

            List <ValidationResult> validationResults = new List <ValidationResult>();

            Validator.TryValidateProperty(obj.StreetAddresses, ctx, validationResults).Should().BeFalse();
        }
예제 #3
0
        public void LongitudeAndLatitudeValuesAreGiven()
        {
            AddressTestObject obj = new AddressTestObject();

            obj.StreetAddresses.Add("Aleksanterinkatu");
            obj.Longitude = "627262"; // doesn't validate values, on purpose setting bogus values, enough that the value is not null
            obj.Latitude  = "782872"; // doesn't validate values, on purpose setting bogus values, enough that the value is not null

            ValidationContext ctx = new ValidationContext(obj);

            ctx.MemberName = "StreetAddresses";

            List <ValidationResult> validationResults = new List <ValidationResult>();

            Validator.TryValidateProperty(obj.StreetAddresses, ctx, validationResults).Should().BeTrue();
        }
예제 #4
0
        public void LongitudeOrLatitudeValueIsNotGiven(string lon, string lat)
        {
            AddressTestObject obj = new AddressTestObject();

            obj.StreetAddresses.Add("Aleksanterinkatu");
            obj.Longitude = lon;
            obj.Latitude  = lat;

            ValidationContext ctx = new ValidationContext(obj);

            ctx.MemberName = "StreetAddresses";

            List <ValidationResult> validationResults = new List <ValidationResult>();

            Validator.TryValidateProperty(obj.StreetAddresses, ctx, validationResults).Should().BeFalse();
        }
예제 #5
0
        public void ShouldThrowWhenUsedOnWrongTypeProperty()
        {
            // the implementation currently casts the value to IList and if the casted object is null it returns success
            // should differiante null value and the cast failing
            // for the using code it would be clear that an exception is thrown if used on a type that doesn't implement IList
            // so the using code knows that whatever they are trying to validate can't be validated with this attribute

            AddressTestObject obj = new AddressTestObject();

            obj.InvalidPropertyType = string.Empty;

            ValidationContext ctx = new ValidationContext(obj);

            ctx.MemberName = "InvalidPropertyType";

            Action act = () => Validator.ValidateProperty(obj.InvalidPropertyType, ctx);

            act.ShouldThrowExactly <InvalidOperationException>(because: "The ValidStreetAddressAttribute is used on a type that doesn't implement IList.");
        }