2 // System.ComponentModel.ByteConverter test cases
5 // Gert Driesen (drieseng@users.sourceforge.net)
7 // (c) 2005 Novell, Inc. (http://www.ximian.com)
11 using System.ComponentModel;
12 using System.ComponentModel.Design.Serialization;
13 using System.Globalization;
15 using NUnit.Framework;
17 namespace MonoTests.System.ComponentModel
20 public class ByteConverterTests
22 private ByteConverter converter;
27 converter = new ByteConverter ();
31 public void CanConvertFrom ()
33 Assert.IsTrue (converter.CanConvertFrom (typeof (string)), "#1");
34 Assert.IsFalse (converter.CanConvertFrom (typeof (byte)), "#2");
35 Assert.IsFalse (converter.CanConvertFrom (typeof (object)), "#3");
36 Assert.IsTrue (converter.CanConvertFrom (typeof (InstanceDescriptor)), "#4");
40 public void CanConvertTo ()
42 Assert.IsTrue (converter.CanConvertTo (typeof (string)), "#1");
43 Assert.IsFalse (converter.CanConvertTo (typeof (object)), "#2");
47 public void ConvertFrom_MinValue ()
49 Assert.AreEqual (byte.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0"), "#1");
50 Assert.AreEqual (byte.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0x0"), "#2");
51 Assert.AreEqual (byte.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0X0"), "#3");
52 Assert.AreEqual (byte.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0x0"), "#4");
53 Assert.AreEqual (byte.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0X0"), "#5");
57 public void ConvertFrom_MaxValue ()
59 Assert.AreEqual (byte.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#ff"), "#1");
60 Assert.AreEqual (byte.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#FF"), "#2");
61 Assert.AreEqual (byte.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0xff"), "#3");
62 Assert.AreEqual (byte.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0XFF"), "#4");
63 Assert.AreEqual (byte.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0xff"), "#5");
64 Assert.AreEqual (byte.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0XFF"), "#6");
68 [ExpectedException (typeof (NotSupportedException))]
69 public void ConvertFrom_Object ()
71 converter.ConvertFrom (new object ());
75 [ExpectedException (typeof (NotSupportedException))]
76 public void ConvertFrom_Byte ()
78 converter.ConvertFrom (byte.MaxValue);
82 [ExpectedException (typeof (NotSupportedException))]
83 public void ConvertFrom_Int16 ()
85 converter.ConvertFrom ((short) 10);
89 [ExpectedException (typeof (NotSupportedException))]
90 public void ConvertFrom_Int32 ()
92 converter.ConvertFrom (10);
96 public void ConvertTo_MinValue ()
98 Assert.AreEqual (byte.MinValue.ToString (CultureInfo.InvariantCulture),
99 converter.ConvertTo (null, CultureInfo.InvariantCulture, byte.MinValue,
100 typeof (string)), "#1");
101 Assert.AreEqual (byte.MinValue.ToString (CultureInfo.CurrentCulture),
102 converter.ConvertTo (null, CultureInfo.CurrentCulture, byte.MinValue,
103 typeof (string)), "#2");
104 Assert.AreEqual (byte.MinValue.ToString (CultureInfo.CurrentCulture),
105 converter.ConvertTo (byte.MinValue, typeof (string)), "#3");
109 public void ConvertTo_MaxValue ()
111 Assert.AreEqual (byte.MaxValue.ToString (CultureInfo.InvariantCulture),
112 converter.ConvertTo (null, CultureInfo.InvariantCulture, byte.MaxValue,
113 typeof (string)), "#1");
114 Assert.AreEqual (byte.MaxValue.ToString (CultureInfo.CurrentCulture),
115 converter.ConvertTo (null, CultureInfo.CurrentCulture, byte.MaxValue,
116 typeof (string)), "#2");
117 Assert.AreEqual (byte.MaxValue.ToString (CultureInfo.CurrentCulture),
118 converter.ConvertTo (byte.MaxValue, typeof (string)), "#3");
122 public void ConvertToString_MinValue ()
124 Assert.AreEqual (byte.MinValue.ToString (CultureInfo.InvariantCulture),
125 converter.ConvertToString (null, CultureInfo.InvariantCulture,
126 byte.MinValue), "#1");
128 Assert.AreEqual (byte.MinValue.ToString (CultureInfo.CurrentCulture),
129 converter.ConvertToString (null, byte.MinValue), "#2");
130 Assert.AreEqual (byte.MinValue.ToString (CultureInfo.CurrentCulture),
131 converter.ConvertToString (null, CultureInfo.CurrentCulture,
132 byte.MinValue), "#3");
133 Assert.AreEqual (byte.MinValue.ToString (CultureInfo.CurrentCulture),
134 converter.ConvertToString (byte.MinValue), "#4");
138 public void ConvertToString_MaxValue ()
140 Assert.AreEqual (byte.MaxValue.ToString (CultureInfo.InvariantCulture),
141 converter.ConvertToString (null, CultureInfo.InvariantCulture,
142 byte.MaxValue), "#1");
144 Assert.AreEqual (byte.MaxValue.ToString (CultureInfo.CurrentCulture),
145 converter.ConvertToString (null, byte.MaxValue), "#2");
146 Assert.AreEqual (byte.MaxValue.ToString (CultureInfo.CurrentCulture),
147 converter.ConvertToString (null, CultureInfo.CurrentCulture,
148 byte.MaxValue), "#3");
149 Assert.AreEqual (byte.MaxValue.ToString (CultureInfo.CurrentCulture),
150 converter.ConvertToString (byte.MaxValue), "#4");
154 public void ConvertFrom_InvalidValue ()
157 converter.ConvertFrom ("*1");
159 } catch (AssertionException) {
161 } catch (Exception ex) {
162 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
163 Assert.IsNotNull (ex.InnerException, "#3");
164 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
169 public void ConvertFrom_InvalidValue_Invariant ()
172 converter.ConvertFrom (null, CultureInfo.InvariantCulture, "*1");
174 } catch (AssertionException) {
176 } catch (Exception ex) {
177 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
178 Assert.IsNotNull (ex.InnerException, "#3");
179 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
184 public void ConvertFrom_Base10_MinOverflow ()
186 string minOverflow = ((int) (byte.MinValue - 1)).ToString (
187 CultureInfo.CurrentCulture);
190 converter.ConvertFrom (minOverflow);
192 } catch (AssertionException) {
194 } catch (Exception ex) {
195 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
196 Assert.IsNotNull (ex.InnerException, "#3");
197 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
202 public void ConvertFrom_Base10_MinOverflow_Invariant ()
204 string minOverflow = ((int) (byte.MinValue - 1)).ToString (
205 CultureInfo.InvariantCulture);
208 converter.ConvertFrom (null, CultureInfo.InvariantCulture,
211 } catch (AssertionException) {
213 } catch (Exception ex) {
214 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
215 Assert.IsNotNull (ex.InnerException, "#3");
216 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
221 public void ConvertFrom_Base10_MaxOverflow ()
223 string maxOverflow = ((int) (byte.MaxValue + 1)).ToString (
224 CultureInfo.CurrentCulture);
227 converter.ConvertFrom (maxOverflow);
229 } catch (AssertionException) {
231 } catch (Exception ex) {
232 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
233 Assert.IsNotNull (ex.InnerException, "#3");
234 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
239 public void ConvertFrom_Base10_MaxOverflow_Invariant ()
241 string maxOverflow = ((int) (byte.MaxValue + 1)).ToString (
242 CultureInfo.InvariantCulture);
245 converter.ConvertFrom (null, CultureInfo.InvariantCulture,
248 } catch (AssertionException) {
250 } catch (Exception ex) {
251 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
252 Assert.IsNotNull (ex.InnerException, "#3");
253 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
258 public void ConvertFrom_Base16_MinOverflow ()
260 string minOverflow = ((int) (byte.MinValue - 1)).ToString ("x",
261 CultureInfo.CurrentCulture);
264 converter.ConvertFrom ("#" + minOverflow);
266 } catch (AssertionException) {
268 } catch (Exception ex) {
269 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
270 Assert.IsNotNull (ex.InnerException, "#3");
271 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
276 public void ConvertFrom_Base16_MinOverflow_Invariant ()
278 string minOverflow = ((int) (byte.MinValue - 1)).ToString ("x",
279 CultureInfo.InvariantCulture);
282 converter.ConvertFrom (null, CultureInfo.InvariantCulture,
285 } catch (AssertionException) {
287 } catch (Exception ex) {
288 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
289 Assert.IsNotNull (ex.InnerException, "#3");
290 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
295 public void ConvertFrom_Base16_MaxOverflow ()
297 string maxOverflow = ((int) (byte.MaxValue + 1)).ToString ("x",
298 CultureInfo.CurrentCulture);
301 converter.ConvertFrom ("#" + maxOverflow);
303 } catch (AssertionException) {
305 } catch (Exception ex) {
306 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
307 Assert.IsNotNull (ex.InnerException, "#3");
308 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
313 public void ConvertFrom_Base16_MaxOverflow_Invariant ()
315 string maxOverflow = ((int) (byte.MaxValue + 1)).ToString ("x",
316 CultureInfo.InvariantCulture);
319 converter.ConvertFrom (null, CultureInfo.InvariantCulture,
322 } catch (AssertionException) {
324 } catch (Exception ex) {
325 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
326 Assert.IsNotNull (ex.InnerException, "#3");
327 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
332 public void ConvertFromString_InvalidValue ()
335 converter.ConvertFromString ("*1");
337 } catch (AssertionException) {
339 } catch (Exception ex) {
340 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
341 Assert.IsNotNull (ex.InnerException, "#3");
342 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
347 public void ConvertFromString_InvalidValue_Invariant ()
350 converter.ConvertFromString (null, CultureInfo.InvariantCulture, "*1");
352 } catch (AssertionException) {
354 } catch (Exception ex) {
355 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
356 Assert.IsNotNull (ex.InnerException, "#3");
357 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
362 public void ConvertFromString_Base10_MinOverflow ()
364 string minOverflow = ((int) (byte.MinValue - 1)).ToString (
365 CultureInfo.CurrentCulture);
368 converter.ConvertFromString (minOverflow);
370 } catch (AssertionException) {
372 } catch (Exception ex) {
373 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
374 Assert.IsNotNull (ex.InnerException, "#3");
375 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
380 public void ConvertFromString_Base10_MinOverflow_Invariant ()
382 string minOverflow = ((int) (byte.MinValue - 1)).ToString (
383 CultureInfo.InvariantCulture);
386 converter.ConvertFromString (null, CultureInfo.InvariantCulture,
389 } catch (AssertionException) {
391 } catch (Exception ex) {
392 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
393 Assert.IsNotNull (ex.InnerException, "#3");
394 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
399 public void ConvertFromString_Base10_MaxOverflow ()
401 string maxOverflow = ((int) (byte.MaxValue + 1)).ToString (
402 CultureInfo.CurrentCulture);
405 converter.ConvertFromString (maxOverflow);
407 } catch (AssertionException) {
409 } catch (Exception ex) {
410 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
411 Assert.IsNotNull (ex.InnerException, "#3");
412 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
417 public void ConvertFromString_Base10_MaxOverflow_Invariant ()
419 string maxOverflow = ((int) (byte.MaxValue + 1)).ToString (
420 CultureInfo.InvariantCulture);
423 converter.ConvertFromString (null, CultureInfo.InvariantCulture,
426 } catch (AssertionException) {
428 } catch (Exception ex) {
429 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
430 Assert.IsNotNull (ex.InnerException, "#3");
431 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
436 public void ConvertFromString_Base16_MinOverflow ()
438 string minOverflow = ((int) (byte.MinValue - 1)).ToString ("x",
439 CultureInfo.CurrentCulture);
442 converter.ConvertFromString ("#" + minOverflow);
444 } catch (AssertionException) {
446 } catch (Exception ex) {
447 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
448 Assert.IsNotNull (ex.InnerException, "#3");
449 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
454 public void ConvertFromString_Base16_MinOverflow_Invariant ()
456 string minOverflow = ((int) (byte.MinValue - 1)).ToString ("x",
457 CultureInfo.InvariantCulture);
460 converter.ConvertFromString (null, CultureInfo.InvariantCulture,
463 } catch (AssertionException) {
465 } catch (Exception ex) {
466 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
467 Assert.IsNotNull (ex.InnerException, "#3");
468 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
473 public void ConvertFromString_Base16_MaxOverflow ()
475 string maxOverflow = ((int) (byte.MaxValue + 1)).ToString ("x",
476 CultureInfo.CurrentCulture);
479 converter.ConvertFromString ("#" + maxOverflow);
481 } catch (AssertionException) {
483 } catch (Exception ex) {
484 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
485 Assert.IsNotNull (ex.InnerException, "#3");
486 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
491 public void ConvertFromString_Base16_MaxOverflow_Invariant ()
493 string maxOverflow = ((int) (byte.MaxValue + 1)).ToString ("x",
494 CultureInfo.InvariantCulture);
497 converter.ConvertFromString (null, CultureInfo.InvariantCulture,
500 } catch (AssertionException) {
502 } catch (Exception ex) {
503 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
504 Assert.IsNotNull (ex.InnerException, "#3");
505 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");