2 // System.IO.StringWriter
\r
4 // Author: Marcin Szczepanski (marcins@zipworld.com.au)
\r
6 // TODO: Add some testing for exceptions
\r
8 // TODO: Some of the tests could be a bit more thorough
\r
11 using NUnit.Framework;
\r
15 namespace MonoTests.System.IO {
\r
17 public class StringReaderTest : TestCase {
\r
19 public static ITest Suite {
\r
21 return new TestSuite(typeof(StringReaderTest));
\r
25 public StringReaderTest( string name ): base(name) { }
\r
27 public void TestPeekRead() {
\r
28 StringReader reader = new StringReader( "Test String" );
\r
30 int c = reader.Peek();
\r
31 AssertEquals( c, 'T' );
\r
33 int read = reader.Read();
\r
35 AssertEquals( read, 'T' );
\r
39 AssertEquals( c, 'e' );
\r
42 public void TestRead() {
\r
43 StringReader reader = new StringReader( "Test String" );
\r
45 /* Read from start of string */
\r
46 char[] test = new char[5];
\r
48 int charsRead = reader.Read( test, 0, 5 );
\r
50 AssertEquals( 5, charsRead );
\r
51 AssertEquals( "Test ", new String(test) );
\r
53 /* Read to end of string */
\r
54 //reader = new StringReader( "Test String" );
\r
57 charsRead = reader.Read( test, 0, 6 );
\r
58 AssertEquals( 6, charsRead);
\r
59 AssertEquals( "String", new String( test ) );
\r
61 /* Read past end of string */
\r
64 reader = new StringReader( "Foo" );
\r
65 charsRead = reader.Read( test, 0, 6 );
\r
66 AssertEquals( 3, charsRead );
\r
67 AssertEquals( "Foo\0\0\0", new String( test ) );
\r
71 public void TestReadEOL() {
\r
72 StringReader reader = new StringReader( "Line1\rLine2\r\nLine3\nLine4" );
\r
74 string test = reader.ReadLine();
\r
76 AssertEquals( "Line1", test );
\r
78 test = reader.ReadLine();
\r
80 AssertEquals( "Line2", test );
\r
82 test = reader.ReadLine();
\r
84 AssertEquals( "Line3", test );
\r
86 test = reader.ReadLine();
\r
88 AssertEquals( "Line4", test );
\r