2 // System.IO.StringWriter
4 // Author: Marcin Szczepanski (marcins@zipworld.com.au)
6 // TODO: Add some testing for exceptions
8 // TODO: Some of the tests could be a bit more thorough
11 using NUnit.Framework;
15 namespace MonoTests.System.IO {
17 public class StringReaderTest : TestCase {
19 public static ITest Suite {
21 return new TestSuite(typeof(StringReaderTest));
25 public StringReaderTest() : base ("MonoTests.System.IO.StringReaderTest testcase") { }
26 public StringReaderTest( string name ): base(name) { }
28 public void TestPeekRead() {
29 StringReader reader = new StringReader( "Test String" );
31 char c = (char)reader.Peek();
32 AssertEquals("A1", 'T', c );
34 char read = (char)reader.Read();
36 AssertEquals("A2", 'T', read );
38 c = (char)reader.Peek();
40 AssertEquals("A3", 'e', c );
43 public void TestPeekAndReadAtEndOfString() {
44 StringReader reader = new StringReader("x");
46 char c = (char)reader.Peek();
47 AssertEquals("A1", 'x', c );
49 c = (char)reader.Read();
50 AssertEquals("A2", 'x', c);
52 int i = reader.Peek();
53 AssertEquals("A3", -1, i);
56 AssertEquals("A4", -1, i);
59 AssertEquals("A5", -1, i);
62 public void TestPeekAndReadEmptyString() {
63 StringReader reader = new StringReader("");
65 int i = reader.Peek();
66 AssertEquals("A1", -1, i);
69 AssertEquals("A2", -1, i);
72 public void TestRead() {
73 StringReader reader = new StringReader( "Test String" );
75 /* Read from start of string */
76 char[] test = new char[5];
78 int charsRead = reader.Read( test, 0, 5 );
80 AssertEquals( 5, charsRead );
81 AssertEquals( "Test ", new String(test) );
83 /* Read to end of string */
84 //reader = new StringReader( "Test String" );
87 charsRead = reader.Read( test, 0, 6 );
88 AssertEquals( 6, charsRead);
89 AssertEquals( "String", new String( test ) );
91 /* Read past end of string */
94 reader = new StringReader( "Foo" );
95 charsRead = reader.Read( test, 0, 6 );
96 AssertEquals( 3, charsRead );
97 AssertEquals( "Foo\0\0\0", new String( test ) );
101 public void TestReadEOL() {
102 StringReader reader = new StringReader( "Line1\rLine2\r\nLine3\nLine4" );
104 string test = reader.ReadLine();
106 AssertEquals( "Line1", test );
108 test = reader.ReadLine();
110 AssertEquals( "Line2", test );
112 test = reader.ReadLine();
114 AssertEquals( "Line3", test );
116 test = reader.ReadLine();
118 AssertEquals( "Line4", test );