2 // System.ComponentModel.InvalidEnumArgumentException test cases
5 // Gert Driesen (drieseng@users.sourceforge.net)
7 // (c) 2007 Gert Driesen
11 using System.ComponentModel;
12 using System.Globalization;
14 using NUnit.Framework;
16 namespace MonoTests.System.ComponentModel
19 public class InvalidEnumArgumentExceptionTest
22 public void Constructor0 ()
24 InvalidEnumArgumentException iea = new InvalidEnumArgumentException ();
25 Assert.IsNull (iea.InnerException, "#1");
26 Assert.IsNotNull (iea.Message, "#2");
27 Assert.IsTrue (iea.Message.IndexOf (typeof (InvalidEnumArgumentException).FullName) != -1, "#3");
28 Assert.IsNull (iea.ParamName, "#4");
31 [Test] // ctor (string)
32 public void Constructor1 ()
34 InvalidEnumArgumentException iea;
36 iea = new InvalidEnumArgumentException ("msg");
37 Assert.IsNull (iea.InnerException, "#A1");
38 Assert.IsNotNull (iea.Message, "#A2");
39 Assert.AreEqual ("msg", iea.Message, "#A3");
40 Assert.IsNull (iea.ParamName, "#A4");
42 iea = new InvalidEnumArgumentException (string.Empty);
43 Assert.IsNull (iea.InnerException, "#B1");
44 Assert.IsNotNull (iea.Message, "#B2");
45 Assert.AreEqual (string.Empty, iea.Message, "#B3");
46 Assert.IsNull (iea.ParamName, "#B4");
48 iea = new InvalidEnumArgumentException ((string) null);
49 Assert.IsNull (iea.InnerException, "#C1");
50 Assert.IsNotNull (iea.Message, "#C2");
51 Assert.IsTrue (iea.Message.IndexOf (typeof (InvalidEnumArgumentException).FullName) != -1, "#C3");
52 Assert.IsNull (iea.ParamName, "#C4");
55 // TODO: ctor (SerializationInfo, StreamingContext)
58 [Test] // ctor (string, Exception)
59 public void Constructor3 ()
61 InvalidEnumArgumentException iea;
62 Exception inner = new Exception ("INNER");
64 iea = new InvalidEnumArgumentException ("msg", (Exception) null);
65 Assert.IsNull (iea.InnerException, "#A1");
66 Assert.IsNotNull (iea.Message, "#A2");
67 Assert.AreEqual ("msg", iea.Message, "#A3");
68 Assert.IsNull (iea.ParamName, "#A4");
70 iea = new InvalidEnumArgumentException (string.Empty, inner);
71 Assert.AreSame (inner, iea.InnerException, "#B1");
72 Assert.IsNotNull (iea.Message, "#B2");
73 Assert.AreEqual (string.Empty, iea.Message, "#B3");
74 Assert.IsNull (iea.ParamName, "#B4");
76 iea = new InvalidEnumArgumentException ((string) null, inner);
77 Assert.AreSame (inner, iea.InnerException, "#C1");
78 Assert.IsNotNull (iea.Message, "#C2");
79 Assert.IsTrue (iea.Message.IndexOf (typeof (InvalidEnumArgumentException).FullName) != -1, "#C3");
80 Assert.IsNull (iea.ParamName, "#C4");
84 [Test] // ctor (string, int, System.Type)
85 public void Constructor4 ()
87 InvalidEnumArgumentException iea;
88 Type enumClass = typeof (AttributeTargets);
90 // The value of argument 'value' (667666) is invalid for
91 // Enum type 'AttributeTargets'
92 iea = new InvalidEnumArgumentException ("arg", 667666, enumClass);
93 Assert.IsNull (iea.InnerException, "#A1");
94 Assert.IsNotNull (iea.Message, "#A2");
96 Assert.IsTrue (iea.Message.IndexOf ("'arg'") != -1, "#A3");
97 Assert.IsTrue (iea.Message.IndexOf ("(" + 667666.ToString (CultureInfo.CurrentCulture) + ")") != -1, "#A4");
98 Assert.IsTrue (iea.Message.IndexOf ("'" + enumClass.Name + "'") != -1, "#A5");
100 Assert.IsTrue (iea.Message.IndexOf ("arg") != -1, "#A3");
101 Assert.IsTrue (iea.Message.IndexOf (667666.ToString (CultureInfo.CurrentCulture)) != -1, "#A4");
102 Assert.IsTrue (iea.Message.IndexOf (enumClass.Name) != -1, "#A5");
104 Assert.IsNotNull (iea.ParamName, "#A6");
105 Assert.AreEqual ("arg", iea.ParamName, "#A7");
107 // The value of argument '' (0) is invalid for
108 // Enum type 'AttributeTargets'
109 iea = new InvalidEnumArgumentException (string.Empty, 0, enumClass);
110 Assert.IsNull (iea.InnerException, "#B1");
111 Assert.IsNotNull (iea.Message, "#B2");
113 Assert.IsTrue (iea.Message.IndexOf ("''") != -1, "#B3");
114 Assert.IsTrue (iea.Message.IndexOf ("(" + 0.ToString (CultureInfo.CurrentCulture) + ")") != -1, "#B4");
115 Assert.IsTrue (iea.Message.IndexOf ("'" + enumClass.Name + "'") != -1, "#B5");
117 Assert.IsTrue (iea.Message.IndexOf (" ") != -1, "#B3");
118 Assert.IsTrue (iea.Message.IndexOf (0.ToString (CultureInfo.CurrentCulture)) != -1, "#B4");
119 Assert.IsTrue (iea.Message.IndexOf (enumClass.Name) != -1, "#B5");
121 Assert.IsNotNull (iea.ParamName, "#B6");
122 Assert.AreEqual (string.Empty, iea.ParamName, "#B7");
124 // The value of argument '' (-56776) is invalid for Enum type
125 // 'AttributeTargets'
126 iea = new InvalidEnumArgumentException ((string) null, -56776, enumClass);
127 Assert.IsNull (iea.InnerException, "#C1");
128 Assert.IsNotNull (iea.Message, "#C2");
130 Assert.IsTrue (iea.Message.IndexOf ("''") != -1, "#C3");
131 Assert.IsTrue (iea.Message.IndexOf ("(" + (-56776).ToString (CultureInfo.CurrentCulture) + ")") != -1, "#C4");
132 Assert.IsTrue (iea.Message.IndexOf ("'" + enumClass.Name + "'") != -1, "#C5");
134 Assert.IsTrue (iea.Message.IndexOf (" ") != -1, "#C3");
135 Assert.IsTrue (iea.Message.IndexOf ((-56776).ToString (CultureInfo.CurrentCulture)) != -1, "#C4");
136 Assert.IsTrue (iea.Message.IndexOf (enumClass.Name) != -1, "#C5");
138 Assert.IsNull (iea.ParamName, "#C6");
140 // The value of argument '' (0) is invalid for Enum type
141 // 'AttributeTargets'
142 iea = new InvalidEnumArgumentException ((string) null, 0, enumClass);
143 Assert.IsNull (iea.InnerException, "#D1");
144 Assert.IsNotNull (iea.Message, "#D2");
146 Assert.IsTrue (iea.Message.IndexOf ("''") != -1, "#D3");
147 Assert.IsTrue (iea.Message.IndexOf ("(" + 0.ToString (CultureInfo.CurrentCulture) + ")") != -1, "#D4");
148 Assert.IsTrue (iea.Message.IndexOf ("'" + enumClass.Name + "'") != -1, "#D5");
150 Assert.IsTrue (iea.Message.IndexOf (" ") != -1, "#D3");
151 Assert.IsTrue (iea.Message.IndexOf (0.ToString (CultureInfo.CurrentCulture)) != -1, "#D4");
152 Assert.IsTrue (iea.Message.IndexOf (enumClass.Name) != -1, "#D5");
154 Assert.IsNull (iea.ParamName, "#D6");
157 [Test] // ctor (string, int, System.Type)
158 [ExpectedException (typeof (NullReferenceException))]
159 public void Constructor4_EnumClass_Null ()
161 new InvalidEnumArgumentException ("param", 55, (Type) null);