public void Ctor_Void_Success() { EnumValuesConstraint c = new EnumValuesConstraint(); Assert.AreEqual(Constraint.EnumValuesConstraintName, c.Name); Assert.AreEqual(ParameterDataType.None, c.UnderlyingDataType); Assert.IsNull(c.UnderlyingType); Assert.IsFalse(c.HasFlags); Assert.IsNull(c.EnumValues); }
public void Ctor_FlagValues_Success() { EnumValuesConstraint c = new EnumValuesConstraint(ParameterDataType.Int32, true, CreateFlagValues()); Assert.AreEqual(Constraint.EnumValuesConstraintName, c.Name); Assert.AreEqual(ParameterDataType.Int32, c.UnderlyingDataType); Assert.AreEqual(typeof(int), c.UnderlyingType); Assert.IsTrue(c.HasFlags); Assert.IsNotNull(c.EnumValues); Assert.AreEqual(8, c.EnumValues.Count); }
public void Validate_NotConfigured_Error() { CustomAssert.ThrowsException<ConstraintConfigurationException>(() => { EnumValuesConstraint c = new EnumValuesConstraint(); IEnumerable<ParameterValidationResult> result = c.Validate(System.UriKind.Absolute, ParameterDataType.Enum, Constants.MemberName); }); }
public void Validate_ValueNotConvertible_Error() { CustomAssert.ThrowsException<CodedArgumentException>(() => { EnumValuesConstraint c = new EnumValuesConstraint(ParameterDataType.Int32, false, CreateValues()); IEnumerable<ParameterValidationResult> result = c.Validate(long.MaxValue, ParameterDataType.Enum, Constants.MemberName); }); }
public void Validate_DifferentType_Success() { EnumValuesConstraint c = new EnumValuesConstraint(ParameterDataType.Int32, false, CreateValues()); IEnumerable<ParameterValidationResult> result = c.Validate((byte)2, ParameterDataType.Enum, Constants.MemberName); Assert.IsNotNull(result); Assert.IsFalse(result.GetEnumerator().MoveNext()); }
public void Validate_InvFlags_Success() { EnumValuesConstraint c = new EnumValuesConstraint(ParameterDataType.Int32, true, CreateFlagValues()); IEnumerable<ParameterValidationResult> result = c.Validate(System.IO.FileAttributes.Device | System.IO.FileAttributes.ReparsePoint, ParameterDataType.Enum, Constants.MemberName); Assert.IsNotNull(result); Assert.IsTrue(result.GetEnumerator().MoveNext()); }
public void SetParameters_InvHexValue_Error() { CustomAssert.ThrowsException<ConstraintConfigurationException>(() => { EnumValuesConstraint c = new EnumValuesConstraint(); c.SetParametersInternal(new string[] { "Int32", "RelativeOrAbsolute=0xnarf", "Absolute=2", "Relative=3" }, ParameterDataType.Enum); }); }
public void Ctor_ChangedType_Success() { EnumValuesConstraint c = new EnumValuesConstraint(ParameterDataType.Int64, false, CreateValues()); Assert.AreEqual(Constraint.EnumValuesConstraintName, c.Name); Assert.AreEqual(ParameterDataType.Int64, c.UnderlyingDataType); Assert.AreEqual(typeof(long), c.UnderlyingType); Assert.IsFalse(c.HasFlags); Assert.IsNotNull(c.EnumValues); // To trigger retrieval of already resolved type Assert.AreEqual(3, c.EnumValues.Count); }
public void SetParameters_FlagsHex_Success() { EnumValuesConstraint c = new EnumValuesConstraint(); c.SetParametersInternal(new string[] { "Int32", "Flags", "ReadOnly=0x01", "Hidden=0x02", "System=0x04" }, ParameterDataType.Enum); Assert.AreEqual(ParameterDataType.Int32, c.UnderlyingDataType); Assert.AreEqual(typeof(int), c.UnderlyingType); Assert.IsTrue(c.HasFlags); Assert.IsNotNull(c.EnumValues); Assert.AreEqual(3, c.EnumValues.Count); Assert.AreEqual(4, c.EnumValues["System"]); }
public void SetParameters_TooFewParams_Error() { CustomAssert.ThrowsException<ConstraintConfigurationException>(() => { EnumValuesConstraint c = new EnumValuesConstraint(); c.SetParametersInternal(new string[] { "Int32" }, ParameterDataType.Enum); }); CustomAssert.ThrowsException<ConstraintConfigurationException>(() => { EnumValuesConstraint c = new EnumValuesConstraint(); c.SetParametersInternal(new string[] { "Int32", "Flags" }, ParameterDataType.Enum); }); }
public void SetParameters_Success() { EnumValuesConstraint c = new EnumValuesConstraint(); c.SetParametersInternal(new string[] { "Int32", "RelativeOrAbsolute=1", "Absolute=2", "Relative=3" }, ParameterDataType.Enum); Assert.AreEqual(ParameterDataType.Int32, c.UnderlyingDataType); Assert.AreEqual(typeof(int), c.UnderlyingType); Assert.IsFalse(c.HasFlags); Assert.IsNotNull(c.EnumValues); Assert.AreEqual(3, c.EnumValues.Count); }
public void ToString_Success() { EnumValuesConstraint c = new EnumValuesConstraint(ParameterDataType.Int32, false, CreateValues()); Assert.AreEqual("[Values(Int32,RelativeOrAbsolute=1,Absolute=2,Relative=3)]", c.ToString()); c = new EnumValuesConstraint(ParameterDataType.Int32, true, CreateFlagValues()); StringAssert.StartsWith(c.ToString(), "[Values(Int32,Flags,ReadOnly=1,Hidden=2,System=4"); }
public void Ctor_SerializationInfo_Success() { EnumValuesConstraint c = new EnumValuesConstraint(ParameterDataType.Int32, false, CreateValues()); System.IO.MemoryStream Buffer = SerializationHelper.Serialize(c); EnumValuesConstraint c2 = SerializationHelper.Deserialize<EnumValuesConstraint>(Buffer); Assert.AreEqual(Constraint.EnumValuesConstraintName, c2.Name); Assert.AreEqual(ParameterDataType.Int32, c2.UnderlyingDataType); Assert.AreEqual(typeof(int), c2.UnderlyingType); Assert.IsFalse(c2.HasFlags); Assert.IsNotNull(c2.EnumValues); // To trigger retrieval of already resolved type Assert.AreEqual(3, c2.EnumValues.Count); }
public void Ctor_InvalidType_Error() { CustomAssert.ThrowsException<CodedArgumentOutOfRangeException>(() => { EnumValuesConstraint c = new EnumValuesConstraint(ParameterDataType.String, false, CreateValues()); }); }
public void SetParameters_InvHexTooLarge_Error() { CustomAssert.ThrowsException<ConstraintConfigurationException>(() => { EnumValuesConstraint c = new EnumValuesConstraint(); c.SetParametersInternal(new string[] { "Byte", "Flags", "RelativeOrAbsolute=0x1000", "Absolute=0x2000", "Relative=0x4000" }, ParameterDataType.Enum); }); }
public void Ctor_ValuesNull_Error() { CustomAssert.ThrowsException<CodedArgumentNullException>(() => { EnumValuesConstraint c = new EnumValuesConstraint(ParameterDataType.Int32, false, null); }); }
public void Ctor_ValuesNotConvertable_Error() { CustomAssert.ThrowsException<CodedArgumentException>(() => { Dictionary<string, object> Values = new Dictionary<string, object>(); Values.Add("RelativeOrAbsolute", 1000); Values.Add("Absolute", 2000); Values.Add("Relative", 3000); EnumValuesConstraint c = new EnumValuesConstraint(ParameterDataType.Byte, false, Values); }); }