public void Verify()
		{
			var sc = new StringLengthAttribute(3);
			Assert.IsTrue(sc.IsValid("12",null));
			Assert.IsTrue(sc.IsValid("", null));
			Assert.IsTrue(sc.IsValid("123", null));
			Assert.IsFalse(sc.IsValid("1234", null));
		}
		public void StringLengthAttribute_validating_zero_max_length()
		{
			var an = new StringLengthAttribute(0);
			Assert.AreEqual(0, an.MinimumLength);
			Assert.IsTrue(an.IsValid(null, typeof(string)));
			Assert.IsTrue(an.IsValid(string.Empty, typeof(string)));
			Assert.IsFalse(an.IsValid("valid", typeof(string)));
		}
		public void VerifyWithMin()
		{
			var sc = new StringLengthAttribute(3) {MinimumLength = 2};
			Assert.IsTrue(sc.IsValid("12", null));
			Assert.IsFalse(sc.IsValid("", null));
			Assert.IsFalse(sc.IsValid("1", null));
			Assert.IsTrue(sc.IsValid("123", null));
			Assert.IsFalse(sc.IsValid("1234", null));
		}
		public void StringLengthAttribute_valid_with_length_non_zero()
		{
			var an = new StringLengthAttribute(5);
			Assert.AreEqual(0, an.MinimumLength);
			Assert.IsTrue(an.IsValid(null, typeof(string)));
			Assert.IsTrue(an.IsValid(string.Empty, typeof(string)));
			Assert.IsTrue(an.IsValid("valid", typeof(string)));
			Assert.IsFalse(an.IsValid("invalid", typeof(string)));
		}
		public void ItShouldBePossibleToSetMinOnly()
		{
			var sc = new StringLengthAttribute(3);
			Assert.AreEqual(3, sc.MaximumLength);
			Assert.AreEqual(0, sc.MinimumLength);
		}
		public void ItShouldBePossibleToSetBothMinMax()
		{
			var sc = new StringLengthAttribute(3) {MinimumLength = 1};
			Assert.AreEqual(3, sc.MaximumLength);
		}