2008-09-24 Jb Evain <jbevain@novell.com>
authorJb Evain <jbevain@gmail.com>
Wed, 24 Sep 2008 13:33:27 +0000 (13:33 -0000)
committerJb Evain <jbevain@gmail.com>
Wed, 24 Sep 2008 13:33:27 +0000 (13:33 -0000)
* DictionaryTest.cs: add tests for bug #429530.

svn path=/trunk/mcs/; revision=113953

mcs/class/corlib/Test/System.Collections.Generic/ChangeLog
mcs/class/corlib/Test/System.Collections.Generic/DictionaryTest.cs

index b8f9e657117b447ed8e0066674ca596ccbc0b6d2..26dd9b7bffb0197d755b7e112c3b7c8fb25e431c 100644 (file)
@@ -1,3 +1,7 @@
+2008-09-24  Jb Evain  <jbevain@novell.com>
+
+       * DictionaryTest.cs: add tests for bug #429530.
+
 2008-09-12  Jb Evain  <jbevain@novell.com>
 
        * DictionaryTest.cs: add tests for #425693.
index fc2c94b12ecb78cde8b7029f82cb49b821a10f54..a54b8bf527bf416c8ed17f10939525c1d6de44c9 100644 (file)
@@ -797,6 +797,69 @@ namespace MonoTests.System.Collections.Generic {
                                comp = s;
                        Assert.IsTrue (Object.ReferenceEquals (s1, comp));
                }
+
+               [Test]
+               public void ResetKeysEnumerator ()
+               {
+                       Dictionary<string, string> test = new Dictionary<string, string> ();
+                       test.Add ("monkey", "singe");
+                       test.Add ("singe", "mono");
+                       test.Add ("mono", "monkey");
+
+                       IEnumerator enumerator = test.Keys.GetEnumerator ();
+
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsTrue (enumerator.MoveNext ());
+
+                       enumerator.Reset ();
+
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsFalse (enumerator.MoveNext ());
+               }
+
+               [Test]
+               public void ResetValuesEnumerator ()
+               {
+                       Dictionary<string, string> test = new Dictionary<string, string> ();
+                       test.Add ("monkey", "singe");
+                       test.Add ("singe", "mono");
+                       test.Add ("mono", "monkey");
+
+                       IEnumerator enumerator = test.Values.GetEnumerator ();
+
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsTrue (enumerator.MoveNext ());
+
+                       enumerator.Reset ();
+
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsFalse (enumerator.MoveNext ());
+               }
+
+               [Test]
+               public void ResetShimEnumerator ()
+               {
+                       IDictionary test = new Dictionary<string, string> ();
+                       test.Add ("monkey", "singe");
+                       test.Add ("singe", "mono");
+                       test.Add ("mono", "monkey");
+
+                       IEnumerator enumerator = test.GetEnumerator ();
+
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsTrue (enumerator.MoveNext ());
+
+                       enumerator.Reset ();
+
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsTrue (enumerator.MoveNext ());
+                       Assert.IsFalse (enumerator.MoveNext ());
+               }
        }
 }