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(); }
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(); }
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(); }
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(); }
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."); }