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
16 public class CharEnumeratorTest : TestCase
18 public CharEnumeratorTest () {}
22 protected override void SetUp ()
24 _s = "Emma en Sophie";
27 private string GetFromEnumerator (CharEnumerator ce)
34 cont = ce.MoveNext ();
40 public void TestBasic ()
42 CharEnumerator ce = _s.GetEnumerator ();
46 AssertEquals ("A1", _s, GetFromEnumerator (ce));
49 public void TestClone ()
51 CharEnumerator ce1, ce2=null;
54 ce1 = _s.GetEnumerator ();
55 cont = ce1.MoveNext ();
57 if (ce1.Current == 'S') {
58 ce2 = (CharEnumerator) (ce1.Clone ());
60 cont = ce1.MoveNext ();
63 AssertEquals ("A1", "Sophie", GetFromEnumerator(ce2));
66 public void TestReadOutOfBounds ()
70 CharEnumerator ce = _s.GetEnumerator ();
76 catch (InvalidOperationException) {
79 Assert ("A1", exception);
81 AssertEquals("A2", true, ce.MoveNext ());
83 AssertEquals ("A3", _s, GetFromEnumerator (ce));
88 catch (InvalidOperationException) {
91 Assert ("A4", exception);
93 AssertEquals("A5", false, ce.MoveNext() );
94 AssertEquals("A6", false, ce.MoveNext() );
101 catch (InvalidOperationException) {
104 Assert ("A7", exception);
106 AssertEquals ("A8", true, ce.MoveNext ());
108 AssertEquals ("A9", _s, GetFromEnumerator (ce));
110 AssertEquals ("A10", false, ce.MoveNext ());
111 AssertEquals ("A11", false, ce.MoveNext ());