ArrayConverterTests.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. //
  2. // System.ComponentModel.ArrayConverter test cases
  3. //
  4. // Authors:
  5. // Gert Driesen ([email protected])
  6. //
  7. // (c) 2006 Gert Driesen
  8. //
  9. using System;
  10. using System.ComponentModel;
  11. using System.Globalization;
  12. using NUnit.Framework;
  13. namespace MonoTests.System.ComponentModel
  14. {
  15. [TestFixture]
  16. public class ArrayConverterTests
  17. {
  18. private ArrayConverter converter;
  19. [SetUp]
  20. public void SetUp ()
  21. {
  22. converter = new ArrayConverter ();
  23. }
  24. [Test]
  25. public void ConvertTo ()
  26. {
  27. int [] numbers = new int [] { 5, 7 };
  28. string text = (string) converter.ConvertTo (null, CultureInfo.InvariantCulture,
  29. numbers, typeof (string));
  30. Assert.AreEqual ("Int32[] Array", text);
  31. }
  32. [Test]
  33. public void ConvertTo_DestinationType_Null ()
  34. {
  35. int[] numbers = new int[] { 5, 7 };
  36. try {
  37. converter.ConvertTo (null, CultureInfo.InvariantCulture,
  38. numbers, (Type) null);
  39. Assert.Fail ("#1");
  40. } catch (ArgumentNullException ex) {
  41. Assert.AreEqual ("destinationType", ex.ParamName, "#2");
  42. }
  43. }
  44. [Test]
  45. public void GetProperties ()
  46. {
  47. int [] numbers = new int [] { 5, 7 };
  48. PropertyDescriptorCollection pds = converter.GetProperties (null,
  49. numbers, null);
  50. Assert.IsNotNull (pds, "#A1");
  51. Assert.AreEqual (2, pds.Count, "#A2");
  52. PropertyDescriptor pd = pds [0];
  53. Assert.AreEqual (numbers.GetType (), pd.ComponentType, "#B1");
  54. Assert.AreEqual (false, pd.IsReadOnly, "#B2");
  55. Assert.AreEqual ("[0]", pd.Name, "#B3");
  56. Assert.AreEqual (typeof (int), pd.PropertyType, "#B4");
  57. Assert.IsFalse (pd.CanResetValue (numbers), "#B5");
  58. Assert.AreEqual (5, pd.GetValue (numbers), "#B6");
  59. pd.SetValue (numbers, 9);
  60. Assert.AreEqual (9, pd.GetValue (numbers), "#B7");
  61. pd.ResetValue (numbers);
  62. Assert.AreEqual (9, pd.GetValue (numbers), "#B8");
  63. Assert.IsFalse (pd.ShouldSerializeValue (numbers), "#B9");
  64. pd = pds [1];
  65. Assert.AreEqual (numbers.GetType (), pd.ComponentType, "#C1");
  66. Assert.AreEqual (false, pd.IsReadOnly, "#C2");
  67. Assert.AreEqual ("[1]", pd.Name, "#C3");
  68. Assert.AreEqual (typeof (int), pd.PropertyType, "#C4");
  69. Assert.IsFalse (pd.CanResetValue (numbers), "#C5");
  70. Assert.AreEqual (7, pd.GetValue (numbers), "#C6");
  71. pd.SetValue (numbers, 3);
  72. Assert.AreEqual (3, pd.GetValue (numbers), "#C7");
  73. pd.ResetValue (numbers);
  74. Assert.AreEqual (3, pd.GetValue (numbers), "#C8");
  75. Assert.IsFalse (pd.ShouldSerializeValue (numbers), "#C9");
  76. }
  77. [Test]
  78. [ExpectedException (typeof (NullReferenceException))]
  79. public void GetProperties_Value_Null ()
  80. {
  81. converter.GetProperties (null, null, null);
  82. }
  83. [Test]
  84. public void GetPropertiesSupported ()
  85. {
  86. Assert.IsTrue (converter.GetPropertiesSupported (null));
  87. }
  88. }
  89. }