public void RangeAttribute_Fail_Constructor_ArbitraryType_NotComparableType() {
     var attr = new RangeAttribute(typeof(RangeAttributeTest), "1", "10");
     ExceptionHelper.ExpectException<InvalidOperationException>(delegate() {
         attr.IsValid(2);
     }, String.Format(CultureInfo.CurrentCulture, Resources.DataAnnotationsResources.RangeAttribute_ArbitraryTypeNotIComparable, typeof(RangeAttributeTest).FullName, typeof(System.IComparable).FullName));
 }
 public void RangeAttribute_Constructor_Double_MinGreaterThanMax() {
     var attr = new RangeAttribute(1000000000.5, 10.5);
     ExceptionHelper.ExpectException<InvalidOperationException>(delegate() {
         attr.IsValid(10.0);
     }, String.Format(CultureInfo.CurrentCulture, Resources.DataAnnotationsResources.RangeAttribute_MinGreaterThanMax, 10.5, 1000000000.5));
 }
 public void RangeAttribute_Fail_Constructor_ArbitraryType_NullParameter() {
     var attr = new RangeAttribute(null, "1", "10");
     ExceptionHelper.ExpectException<InvalidOperationException>(delegate() {
         attr.IsValid(2);
     }, Resources.DataAnnotationsResources.RangeAttribute_Must_Set_Operand_Type);
 }
 private void AssertAreFalse(RangeAttribute range, params object[] values) {
     foreach (var v in values) {
         Assert.IsFalse(range.IsValid(v), "value = " + v);
     }
 }
        public void RangeAttribute_Fail_String_Min_Exceed_Max() {
            var attr = new RangeAttribute(typeof(float), Convert.ToString(3.0), Convert.ToString(1.0));

            ExceptionHelper.ExpectException<InvalidOperationException>(delegate() {
                attr.IsValid(2.0f);
            }, String.Format(CultureInfo.CurrentCulture, Resources.DataAnnotationsResources.RangeAttribute_MinGreaterThanMax, 1, 3));
        }
 public void RangeAttribute_Fail_Int32_Min_Exceed_Max() {
     var attr = new RangeAttribute(3, 1);
     ExceptionHelper.ExpectException<InvalidOperationException>(delegate() {
         attr.IsValid(2);
     }, String.Format(CultureInfo.CurrentCulture, Resources.DataAnnotationsResources.RangeAttribute_MinGreaterThanMax, 1, 3));
 }
 public void RangeAttribute_IsValid_ArbitraryType_Cannot_Convert() {
     RangeAttribute attr = new RangeAttribute(typeof(DateTime), DateTime.Now.AddDays(-3).ToLongDateString(), DateTime.Now.AddDays(3).ToLongDateString());
     Assert.IsFalse(attr.IsValid("xxxx"));   // format error is invalid, not an exception
     Assert.IsFalse(attr.IsValid("2.0"));    // string which is valid double but not valid DateTime
     Assert.IsFalse(attr.IsValid(2.0));      // wrong type is invalid, not an exception
 }