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 ());