2 // CharEnumeratorTest.cs - NUnit Test Cases for the System.CharEnumerator class
5 // Duco Fijma (duco@lorentz.xs4all.nl)
10 using NUnit.Framework;
13 namespace MonoTests.System
17 public class CharEnumeratorTest
19 public CharEnumeratorTest () {}
24 protected void SetUp ()
26 _s = "Emma en Sophie";
29 private string GetFromEnumerator (CharEnumerator ce)
36 cont = ce.MoveNext ();
43 public void TestBasic ()
45 CharEnumerator ce = _s.GetEnumerator ();
49 Assert.AreEqual (_s, GetFromEnumerator (ce), "A1");
53 public void TestClone ()
55 CharEnumerator ce1, ce2=null;
58 ce1 = _s.GetEnumerator ();
59 cont = ce1.MoveNext ();
61 if (ce1.Current == 'S') {
62 ce2 = (CharEnumerator) (ce1.Clone ());
64 cont = ce1.MoveNext ();
67 Assert.AreEqual ("Sophie", GetFromEnumerator(ce2), "A1");
71 public void TestReadOutOfBounds ()
75 CharEnumerator ce = _s.GetEnumerator ();
81 catch (InvalidOperationException) {
84 Assert.IsTrue (exception, "A1");
86 Assert.AreEqual(true, ce.MoveNext (), "A2");
88 Assert.AreEqual (_s, GetFromEnumerator (ce), "A3");
93 catch (InvalidOperationException) {
96 Assert.IsTrue (exception, "A4");
98 Assert.AreEqual(false, ce.MoveNext() , "A5");
99 Assert.AreEqual(false, ce.MoveNext() , "A6");
106 catch (InvalidOperationException) {
109 Assert.IsTrue (exception, "A7");
111 Assert.AreEqual (true, ce.MoveNext (), "A8");
113 Assert.AreEqual (_s, GetFromEnumerator (ce), "A9");
115 Assert.AreEqual (false, ce.MoveNext (), "A10");
116 Assert.AreEqual (false, ce.MoveNext (), "A11");