2 // System.ComponentModel.Int16Converter 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 Int16ConverterTests
22 private Int16Converter converter;
27 converter = new Int16Converter ();
31 public void CanConvertFrom ()
33 Assert.IsTrue (converter.CanConvertFrom (typeof (string)), "#1");
34 Assert.IsFalse (converter.CanConvertFrom (typeof (short)), "#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 (short.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#8000"), "#1");
50 Assert.AreEqual (short.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0x8000"), "#2");
51 Assert.AreEqual (short.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0X8000"), "#3");
52 Assert.AreEqual (short.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0x8000"), "#4");
53 Assert.AreEqual (short.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0X8000"), "#5");
57 public void ConvertFrom_MaxValue ()
59 Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#7fff"), "#1");
60 Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#7FFF"), "#2");
61 Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0x7fff"), "#3");
62 Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0X7FFF"), "#4");
63 Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0x7fff"), "#5");
64 Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0X7FFF"), "#6");
68 [ExpectedException (typeof (NotSupportedException))]
69 public void ConvertFrom_Object ()
71 converter.ConvertFrom (new object ());
75 [ExpectedException (typeof (NotSupportedException))]
76 public void ConvertFrom_Int16 ()
78 converter.ConvertFrom ((short) 10);
82 [ExpectedException (typeof (NotSupportedException))]
83 public void ConvertFrom_Int32 ()
85 converter.ConvertFrom (10);
89 public void ConvertTo_MinValue ()
91 Assert.AreEqual (short.MinValue.ToString (CultureInfo.InvariantCulture),
92 converter.ConvertTo (null, CultureInfo.InvariantCulture, short.MinValue,
93 typeof (string)), "#1");
94 Assert.AreEqual (short.MinValue.ToString (CultureInfo.CurrentCulture),
95 converter.ConvertTo (null, CultureInfo.CurrentCulture, short.MinValue,
96 typeof (string)), "#2");
97 Assert.AreEqual (short.MinValue.ToString (CultureInfo.CurrentCulture),
98 converter.ConvertTo (short.MinValue, typeof (string)), "#3");
102 public void ConvertTo_MaxValue ()
104 Assert.AreEqual (short.MaxValue.ToString (CultureInfo.InvariantCulture),
105 converter.ConvertTo (null, CultureInfo.InvariantCulture, short.MaxValue,
106 typeof (string)), "#1");
107 Assert.AreEqual (short.MaxValue.ToString (CultureInfo.CurrentCulture),
108 converter.ConvertTo (null, CultureInfo.CurrentCulture, short.MaxValue,
109 typeof (string)), "#2");
110 Assert.AreEqual (short.MaxValue.ToString (CultureInfo.CurrentCulture),
111 converter.ConvertTo (short.MaxValue, typeof (string)), "#3");
115 public void ConvertToString_MinValue ()
117 Assert.AreEqual (short.MinValue.ToString (CultureInfo.InvariantCulture),
118 converter.ConvertToString (null, CultureInfo.InvariantCulture,
119 short.MinValue), "#1");
121 Assert.AreEqual (short.MinValue.ToString (CultureInfo.CurrentCulture),
122 converter.ConvertToString (null, short.MinValue), "#2");
123 Assert.AreEqual (short.MinValue.ToString (CultureInfo.CurrentCulture),
124 converter.ConvertToString (null, CultureInfo.CurrentCulture,
125 short.MinValue), "#3");
126 Assert.AreEqual (short.MinValue.ToString (CultureInfo.CurrentCulture),
127 converter.ConvertToString (short.MinValue), "#4");
131 public void ConvertToString_MaxValue ()
133 Assert.AreEqual (short.MaxValue.ToString (CultureInfo.InvariantCulture),
134 converter.ConvertToString (null, CultureInfo.InvariantCulture,
135 short.MaxValue), "#1");
137 Assert.AreEqual (short.MaxValue.ToString (CultureInfo.CurrentCulture),
138 converter.ConvertToString (null, short.MaxValue), "#2");
139 Assert.AreEqual (short.MaxValue.ToString (CultureInfo.CurrentCulture),
140 converter.ConvertToString (null, CultureInfo.CurrentCulture,
141 short.MaxValue), "#3");
142 Assert.AreEqual (short.MaxValue.ToString (CultureInfo.CurrentCulture),
143 converter.ConvertToString (short.MaxValue), "#4");
147 public void ConvertFrom_InvalidValue ()
150 converter.ConvertFrom ("*1");
152 } catch (AssertionException) {
154 } catch (Exception ex) {
155 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
156 Assert.IsNotNull (ex.InnerException, "#3");
157 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
162 public void ConvertFrom_InvalidValue_Invariant ()
165 converter.ConvertFrom (null, CultureInfo.InvariantCulture, "*1");
167 } catch (AssertionException) {
169 } catch (Exception ex) {
170 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
171 Assert.IsNotNull (ex.InnerException, "#3");
172 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
177 public void ConvertFrom_Base10_MinOverflow ()
179 string minOverflow = ((int) (short.MinValue - 1)).ToString (
180 CultureInfo.CurrentCulture);
183 converter.ConvertFrom (minOverflow);
185 } catch (AssertionException) {
187 } catch (Exception ex) {
188 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
189 Assert.IsNotNull (ex.InnerException, "#3");
190 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
195 public void ConvertFrom_Base10_MinOverflow_Invariant ()
197 string minOverflow = ((int) (short.MinValue - 1)).ToString (
198 CultureInfo.InvariantCulture);
201 converter.ConvertFrom (null, CultureInfo.InvariantCulture,
204 } catch (AssertionException) {
206 } catch (Exception ex) {
207 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
208 Assert.IsNotNull (ex.InnerException, "#3");
209 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
214 public void ConvertFrom_Base10_MaxOverflow ()
216 string maxOverflow = ((int) (short.MaxValue + 1)).ToString (
217 CultureInfo.CurrentCulture);
220 converter.ConvertFrom (maxOverflow);
222 } catch (AssertionException) {
224 } catch (Exception ex) {
225 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
226 Assert.IsNotNull (ex.InnerException, "#3");
227 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
232 public void ConvertFrom_Base10_MaxOverflow_Invariant ()
234 string maxOverflow = ((int) (short.MaxValue + 1)).ToString (
235 CultureInfo.InvariantCulture);
238 converter.ConvertFrom (null, CultureInfo.InvariantCulture,
241 } catch (AssertionException) {
243 } catch (Exception ex) {
244 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
245 Assert.IsNotNull (ex.InnerException, "#3");
246 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
251 public void ConvertFrom_Base16_MinOverflow ()
253 string minOverflow = ((int) (short.MinValue - 1)).ToString ("x",
254 CultureInfo.CurrentCulture);
257 converter.ConvertFrom ("#" + minOverflow);
259 } catch (AssertionException) {
261 } catch (Exception ex) {
262 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
263 Assert.IsNotNull (ex.InnerException, "#3");
264 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
269 public void ConvertFrom_Base16_MinOverflow_Invariant ()
271 string minOverflow = ((int) (short.MinValue - 1)).ToString ("x",
272 CultureInfo.InvariantCulture);
275 converter.ConvertFrom (null, CultureInfo.InvariantCulture,
278 } catch (AssertionException) {
280 } catch (Exception ex) {
281 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
282 Assert.IsNotNull (ex.InnerException, "#3");
283 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#4");
288 public void ConvertFrom_Base16_MaxOverflow ()
290 string maxOverflow = ((int) (short.MaxValue + 1)).ToString ("x",
291 CultureInfo.CurrentCulture);
292 Assert.AreEqual (-32768, converter.ConvertFrom (null, CultureInfo.CurrentCulture,
293 "#" + maxOverflow), "#1");
295 maxOverflow = ((int) (ushort.MaxValue)).ToString ("x",
296 CultureInfo.CurrentCulture);
297 Assert.AreEqual (-1, converter.ConvertFrom (null, CultureInfo.CurrentCulture,
298 "#" + maxOverflow), "#2");
300 maxOverflow = (ushort.MaxValue + 1).ToString ("x",
301 CultureInfo.CurrentCulture);
304 converter.ConvertFrom (null, CultureInfo.CurrentCulture,
307 } catch (AssertionException) {
309 } catch (Exception ex) {
310 Assert.AreEqual (typeof (Exception), ex.GetType (), "#4");
311 Assert.IsNotNull (ex.InnerException, "#5");
312 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#6");
317 public void ConvertFrom_Base16_MaxOverflow_Invariant ()
319 string maxOverflow = ((int) (short.MaxValue + 1)).ToString ("x",
320 CultureInfo.InvariantCulture);
321 Assert.AreEqual (-32768, converter.ConvertFrom (null, CultureInfo.InvariantCulture,
322 "#" + maxOverflow), "#1");
324 maxOverflow = ((int) (ushort.MaxValue)).ToString ("x",
325 CultureInfo.InvariantCulture);
326 Assert.AreEqual (-1, converter.ConvertFrom (null, CultureInfo.InvariantCulture,
327 "#" + maxOverflow), "#2");
329 maxOverflow = (ushort.MaxValue + 1).ToString ("x",
330 CultureInfo.InvariantCulture);
333 converter.ConvertFrom (null, CultureInfo.InvariantCulture,
336 } catch (AssertionException) {
338 } catch (Exception ex) {
339 Assert.AreEqual (typeof (Exception), ex.GetType (), "#4");
340 Assert.IsNotNull (ex.InnerException, "#5");
341 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#6");
346 public void ConvertFromString_InvalidValue ()
349 converter.ConvertFromString ("*1");
351 } catch (AssertionException) {
353 } catch (Exception ex) {
354 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
355 Assert.IsNotNull (ex.InnerException, "#3");
356 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
361 public void ConvertFromString_InvalidValue_Invariant ()
364 converter.ConvertFromString (null, CultureInfo.InvariantCulture, "*1");
366 } catch (AssertionException) {
368 } catch (Exception ex) {
369 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
370 Assert.IsNotNull (ex.InnerException, "#3");
371 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
376 public void ConvertFromString_Base10_MinOverflow ()
378 string minOverflow = ((int) (short.MinValue - 1)).ToString (
379 CultureInfo.CurrentCulture);
382 converter.ConvertFromString (minOverflow);
384 } catch (AssertionException) {
386 } catch (Exception ex) {
387 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
388 Assert.IsNotNull (ex.InnerException, "#3");
389 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
394 public void ConvertFromString_Base10_MinOverflow_Invariant ()
396 string minOverflow = ((int) (short.MinValue - 1)).ToString (
397 CultureInfo.InvariantCulture);
400 converter.ConvertFromString (null, CultureInfo.InvariantCulture,
403 } catch (AssertionException) {
405 } catch (Exception ex) {
406 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
407 Assert.IsNotNull (ex.InnerException, "#3");
408 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
413 public void ConvertFromString_Base10_MaxOverflow ()
415 string maxOverflow = ((int) (short.MaxValue + 1)).ToString (
416 CultureInfo.CurrentCulture);
419 converter.ConvertFromString (maxOverflow);
421 } catch (AssertionException) {
423 } catch (Exception ex) {
424 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
425 Assert.IsNotNull (ex.InnerException, "#3");
426 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
431 public void ConvertFromString_Base10_MaxOverflow_Invariant ()
433 string maxOverflow = ((int) (short.MaxValue + 1)).ToString (
434 CultureInfo.InvariantCulture);
437 converter.ConvertFromString (null, CultureInfo.InvariantCulture,
440 } catch (AssertionException) {
442 } catch (Exception ex) {
443 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
444 Assert.IsNotNull (ex.InnerException, "#3");
445 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
450 public void ConvertFromString_Base16_MinOverflow ()
452 string minOverflow = ((int) (short.MinValue - 1)).ToString ("x",
453 CultureInfo.CurrentCulture);
456 converter.ConvertFromString ("#" + minOverflow);
458 } catch (AssertionException) {
460 } catch (Exception ex) {
461 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
462 Assert.IsNotNull (ex.InnerException, "#3");
463 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
468 public void ConvertFromString_Base16_MinOverflow_Invariant ()
470 string minOverflow = ((int) (short.MinValue - 1)).ToString ("x",
471 CultureInfo.InvariantCulture);
474 converter.ConvertFromString (null, CultureInfo.InvariantCulture,
477 } catch (AssertionException) {
479 } catch (Exception ex) {
480 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
481 Assert.IsNotNull (ex.InnerException, "#3");
482 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
487 public void ConvertFromString_Base16_MaxOverflow ()
489 string maxOverflow = ((int) (short.MaxValue + 1)).ToString ("x",
490 CultureInfo.CurrentCulture);
491 Assert.AreEqual (-32768, converter.ConvertFromString ("#" + maxOverflow), "#1");
493 maxOverflow = (ushort.MaxValue).ToString ("x",
494 CultureInfo.CurrentCulture);
495 Assert.AreEqual (-1, converter.ConvertFromString ("#" + maxOverflow), "#2");
497 maxOverflow = (ushort.MaxValue + 1).ToString ("x",
498 CultureInfo.CurrentCulture);
501 converter.ConvertFromString ("#" + maxOverflow);
503 } catch (AssertionException) {
505 } catch (Exception ex) {
506 Assert.AreEqual (typeof (Exception), ex.GetType (), "#4");
507 Assert.IsNotNull (ex.InnerException, "#5");
508 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#6");
513 public void ConvertFromString_Base16_MaxOverflow_Invariant ()
515 string maxOverflow = ((int) (short.MaxValue + 1)).ToString ("x",
516 CultureInfo.CurrentCulture);
517 Assert.AreEqual (-32768, converter.ConvertFromString ("#" + maxOverflow), "#1");
519 maxOverflow = (ushort.MaxValue + 1).ToString ("x",
520 CultureInfo.CurrentCulture);
523 converter.ConvertFromString (null, CultureInfo.InvariantCulture,
526 } catch (AssertionException) {
528 } catch (Exception ex) {
529 Assert.AreEqual (typeof (Exception), ex.GetType (), "#3");
530 Assert.IsNotNull (ex.InnerException, "#4");
531 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#5");