ArrayConverterTests.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. #if !TARGET_JVM
  42. Assert.AreEqual ("destinationType", ex.ParamName, "#2");
  43. #endif
  44. }
  45. }
  46. [Test]
  47. public void GetProperties ()
  48. {
  49. int [] numbers = new int [] { 5, 7 };
  50. PropertyDescriptorCollection pds = converter.GetProperties (null,
  51. numbers, null);
  52. Assert.IsNotNull (pds, "#A1");
  53. Assert.AreEqual (2, pds.Count, "#A2");
  54. PropertyDescriptor pd = pds [0];
  55. Assert.AreEqual (numbers.GetType (), pd.ComponentType, "#B1");
  56. Assert.AreEqual (false, pd.IsReadOnly, "#B2");
  57. Assert.AreEqual ("[0]", pd.Name, "#B3");
  58. Assert.AreEqual (typeof (int), pd.PropertyType, "#B4");
  59. Assert.IsFalse (pd.CanResetValue (numbers), "#B5");
  60. Assert.AreEqual (5, pd.GetValue (numbers), "#B6");
  61. pd.SetValue (numbers, 9);
  62. Assert.AreEqual (9, pd.GetValue (numbers), "#B7");
  63. pd.ResetValue (numbers);
  64. Assert.AreEqual (9, pd.GetValue (numbers), "#B8");
  65. Assert.IsFalse (pd.ShouldSerializeValue (numbers), "#B9");
  66. pd = pds [1];
  67. Assert.AreEqual (numbers.GetType (), pd.ComponentType, "#C1");
  68. Assert.AreEqual (false, pd.IsReadOnly, "#C2");
  69. Assert.AreEqual ("[1]", pd.Name, "#C3");
  70. Assert.AreEqual (typeof (int), pd.PropertyType, "#C4");
  71. Assert.IsFalse (pd.CanResetValue (numbers), "#C5");
  72. Assert.AreEqual (7, pd.GetValue (numbers), "#C6");
  73. pd.SetValue (numbers, 3);
  74. Assert.AreEqual (3, pd.GetValue (numbers), "#C7");
  75. pd.ResetValue (numbers);
  76. Assert.AreEqual (3, pd.GetValue (numbers), "#C8");
  77. Assert.IsFalse (pd.ShouldSerializeValue (numbers), "#C9");
  78. }
  79. [Test]
  80. [ExpectedException (typeof (NullReferenceException))]
  81. public void GetProperties_Value_Null ()
  82. {
  83. converter.GetProperties (null, null, null);
  84. }
  85. [Test]
  86. public void GetPropertiesSupported ()
  87. {
  88. Assert.IsTrue (converter.GetPropertiesSupported (null));
  89. }
  90. }
  91. }