2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / corlib / Test / System.Collections / SortedListTest.cs
index 33ad0ccb311fa9073e3a6d36a977a9601da49b4f..72c0ff74f88cd6ff8181ccb6681c43f52defb81a 100755 (executable)
@@ -21,8 +21,6 @@ using NUnit.Framework;
 \r
 namespace MonoTests.System.Collections {\r
 \r
-\r
-/// <summary>SortedList test.</summary>\r
 [TestFixture]\r
 public class SortedListTest : Assertion {\r
        protected SortedList sl1;\r
@@ -30,16 +28,6 @@ public class SortedListTest : Assertion {
        protected SortedList emptysl;\r
        protected const int icap=16;\r
 \r
-        [SetUp]\r
-       public  void SetUp() \r
-       {\r
-       }\r
-\r
-        [TearDown]\r
-       public void TearDown() \r
-       {\r
-       }\r
-\r
        public void TestConstructor1() {\r
                SortedList temp1 = new SortedList();\r
                AssertNotNull("sl.constructor-1: returns null", temp1);\r
@@ -115,6 +103,24 @@ public class SortedListTest : Assertion {
                } catch (ArgumentOutOfRangeException) {}\r
        }\r
 \r
+       [Test]\r
+       public void Constructor_Capacity () \r
+       {\r
+               SortedList sl = new SortedList (0);\r
+               AssertEquals ("Capacity-Original", 0, sl.Capacity);\r
+               sl.Capacity = 0;\r
+               // doesn't reset to class default (16)\r
+               AssertEquals ("Capacity-Resetted", 0, sl.Capacity);\r
+\r
+               for (int i=1; i <= 16; i++) {\r
+                       sl = new SortedList (i);\r
+                       AssertEquals ("Capacity-Original" + i.ToString (), i, sl.Capacity);\r
+                       sl.Capacity = 0;\r
+                       // reset to class default (16)\r
+                       AssertEquals ("Capacity-Resetted" + i.ToString (), 16, sl.Capacity);\r
+               }\r
+       }\r
+\r
         [Test] \r
        public void TestIsSynchronized() {\r
                SortedList sl1 = new SortedList();\r
@@ -137,9 +143,16 @@ public class SortedListTest : Assertion {
         public void TestCapacity2 ()\r
         {\r
                 SortedList list = new SortedList ();\r
-                list.Capacity = 5;\r
 \r
+                list.Capacity = 5;\r
                 AssertEquals (5, list.Capacity);\r
+\r
+               SortedList sync = SortedList.Synchronized (list);\r
+                AssertEquals (5, sync.Capacity);\r
+\r
+               list.Capacity = 20;\r
+                AssertEquals (20, list.Capacity);\r
+                AssertEquals (20, sync.Capacity);\r
         }\r
 \r
         [Test]\r
@@ -156,9 +169,17 @@ public class SortedListTest : Assertion {
 #endif\r
         }\r
 \r
+       [Test]\r
+       public void Capacity_BackTo0 () \r
+       {\r
+               SortedList list = new SortedList (42);\r
+               AssertEquals ("42", 42, list.Capacity);\r
+               list.Capacity = 0;\r
+               AssertEquals ("0(16)", 16, list.Capacity);\r
+       }\r
+\r
         [Test]\r
         [ExpectedException (typeof (OutOfMemoryException))]\r
-        [Ignore ("This is not implemented in the runtime yet")]\r
         public void TestCapacity4 ()\r
         {\r
                 SortedList list = new SortedList ();\r
@@ -286,6 +307,32 @@ public class SortedListTest : Assertion {
                AssertEquals("sl.Clear: capacity is altered", 16, sl1.Capacity);\r
        }\r
 \r
+       [Test]\r
+       public void Clear_Capacity () \r
+       {\r
+               // strangely Clear change the default capacity (while Capacity doesn't)\r
+               for (int i=0; i <= 16; i++) {\r
+                       SortedList sl = new SortedList (i);\r
+                       AssertEquals ("Capacity-Original" + i.ToString (), i, sl.Capacity);\r
+                       sl.Clear ();\r
+                       // reset to class default (16)\r
+                       AssertEquals ("Capacity-Resetted" + i.ToString (), 16, sl.Capacity);\r
+               }\r
+       }\r
+\r
+       [Test]\r
+       public void Clear_Capacity_Reset () \r
+       {\r
+               SortedList sl = new SortedList (0);\r
+               AssertEquals ("0", 0, sl.Capacity);\r
+               sl.Clear ();\r
+               // reset to class default (16)\r
+               AssertEquals ("Clear", 16, sl.Capacity);\r
+               sl.Capacity = 0;\r
+               AssertEquals ("Capacity", 16, sl.Capacity);\r
+               // note: we didn't return to 0 - so Clear cahnge the default capacity\r
+       }\r
+\r
         [Test]\r
        public void TestClone() {\r
                {\r
@@ -472,12 +519,17 @@ public class SortedListTest : Assertion {
        }\r
 \r
         [Test]\r
-       public void TestGetEnumerator() {\r
+       public void GetEnumerator ()\r
+       {\r
                SortedList sl1 = DefaultSL();\r
                IDictionaryEnumerator e = sl1.GetEnumerator();\r
                AssertNotNull("sl.GetEnumerator: does not return enumerator", e);\r
                AssertEquals("sl.GetEnumerator: enumerator not working(1)",e.MoveNext(),true);\r
                AssertNotNull("sl.GetEnumerator: enumerator not working(2)",e.Current);\r
+\r
+               Assert ("ICloneable", (e is ICloneable));\r
+               Assert ("IDictionaryEnumerator", (e is ICloneable));\r
+               Assert ("IEnumerator", (e is ICloneable));\r
        }\r
 \r
         [Test]\r