2 // System.ComponentModel.ArrayConverter test cases
5 // Gert Driesen (drieseng@users.sourceforge.net)
7 // (c) 2006 Gert Driesen
11 using System.ComponentModel;
12 using System.Globalization;
14 using NUnit.Framework;
16 namespace MonoTests.System.ComponentModel
19 public class ArrayConverterTests
21 private ArrayConverter converter;
26 converter = new ArrayConverter ();
30 public void ConvertTo ()
32 int [] numbers = new int [] { 5, 7 };
33 string text = (string) converter.ConvertTo (null, CultureInfo.InvariantCulture,
34 numbers, typeof (string));
35 Assert.AreEqual ("Int32[] Array", text);
39 public void ConvertTo_DestinationType_Null ()
41 int[] numbers = new int[] { 5, 7 };
44 converter.ConvertTo (null, CultureInfo.InvariantCulture,
45 numbers, (Type) null);
47 } catch (ArgumentNullException ex) {
48 Assert.AreEqual ("destinationType", ex.ParamName, "#2");
53 public void GetProperties ()
55 int [] numbers = new int [] { 5, 7 };
56 PropertyDescriptorCollection pds = converter.GetProperties (null,
58 Assert.IsNotNull (pds, "#A1");
59 Assert.AreEqual (2, pds.Count, "#A2");
61 PropertyDescriptor pd = pds [0];
62 Assert.AreEqual (numbers.GetType (), pd.ComponentType, "#B1");
63 Assert.AreEqual (false, pd.IsReadOnly, "#B2");
64 Assert.AreEqual ("[0]", pd.Name, "#B3");
65 Assert.AreEqual (typeof (int), pd.PropertyType, "#B4");
66 Assert.IsFalse (pd.CanResetValue (numbers), "#B5");
67 Assert.AreEqual (5, pd.GetValue (numbers), "#B6");
68 pd.SetValue (numbers, 9);
69 Assert.AreEqual (9, pd.GetValue (numbers), "#B7");
70 pd.ResetValue (numbers);
71 Assert.AreEqual (9, pd.GetValue (numbers), "#B8");
72 Assert.IsFalse (pd.ShouldSerializeValue (numbers), "#B9");
75 Assert.AreEqual (numbers.GetType (), pd.ComponentType, "#C1");
76 Assert.AreEqual (false, pd.IsReadOnly, "#C2");
77 Assert.AreEqual ("[1]", pd.Name, "#C3");
78 Assert.AreEqual (typeof (int), pd.PropertyType, "#C4");
79 Assert.IsFalse (pd.CanResetValue (numbers), "#C5");
80 Assert.AreEqual (7, pd.GetValue (numbers), "#C6");
81 pd.SetValue (numbers, 3);
82 Assert.AreEqual (3, pd.GetValue (numbers), "#C7");
83 pd.ResetValue (numbers);
84 Assert.AreEqual (3, pd.GetValue (numbers), "#C8");
85 Assert.IsFalse (pd.ShouldSerializeValue (numbers), "#C9");
89 [ExpectedException (typeof (NullReferenceException))]
90 public void GetProperties_Value_Null ()
92 converter.GetProperties (null, null, null);
96 public void GetPropertiesSupported ()
98 Assert.IsTrue (converter.GetPropertiesSupported (null));