StringReaderTest.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. //
  2. // System.IO.StringWriter
  3. //
  4. // Author: Marcin Szczepanski ([email protected])
  5. //
  6. // TODO: Add some testing for exceptions
  7. //
  8. // TODO: Some of the tests could be a bit more thorough
  9. //
  10. using NUnit.Framework;
  11. using System.IO;
  12. using System;
  13. namespace MonoTests.System.IO {
  14. public class StringReaderTest : TestCase {
  15. public static ITest Suite {
  16. get {
  17. return new TestSuite(typeof(StringReaderTest));
  18. }
  19. }
  20. public StringReaderTest() : base ("MonoTests.System.IO.StringReaderTest testcase") { }
  21. public StringReaderTest( string name ): base(name) { }
  22. public void TestPeekRead() {
  23. StringReader reader = new StringReader( "Test String" );
  24. char c = (char)reader.Peek();
  25. AssertEquals("A1", 'T', c );
  26. char read = (char)reader.Read();
  27. AssertEquals("A2", 'T', read );
  28. c = (char)reader.Peek();
  29. AssertEquals("A3", 'e', c );
  30. }
  31. public void TestPeekAndReadAtEndOfString() {
  32. StringReader reader = new StringReader("x");
  33. char c = (char)reader.Peek();
  34. AssertEquals("A1", 'x', c );
  35. c = (char)reader.Read();
  36. AssertEquals("A2", 'x', c);
  37. int i = reader.Peek();
  38. AssertEquals("A3", -1, i);
  39. i = reader.Read();
  40. AssertEquals("A4", -1, i);
  41. i = reader.Peek();
  42. AssertEquals("A5", -1, i);
  43. }
  44. public void TestPeekAndReadEmptyString() {
  45. StringReader reader = new StringReader("");
  46. int i = reader.Peek();
  47. AssertEquals("A1", -1, i);
  48. i = reader.Read();
  49. AssertEquals("A2", -1, i);
  50. }
  51. public void TestRead() {
  52. StringReader reader = new StringReader( "Test String" );
  53. /* Read from start of string */
  54. char[] test = new char[5];
  55. int charsRead = reader.Read( test, 0, 5 );
  56. AssertEquals( 5, charsRead );
  57. AssertEquals( "Test ", new String(test) );
  58. /* Read to end of string */
  59. //reader = new StringReader( "Test String" );
  60. test = new char[6];
  61. charsRead = reader.Read( test, 0, 6 );
  62. AssertEquals( 6, charsRead);
  63. AssertEquals( "String", new String( test ) );
  64. /* Read past end of string */
  65. test = new char[6];
  66. reader = new StringReader( "Foo" );
  67. charsRead = reader.Read( test, 0, 6 );
  68. AssertEquals( 3, charsRead );
  69. AssertEquals( "Foo\0\0\0", new String( test ) );
  70. }
  71. public void TestReadEOL() {
  72. StringReader reader = new StringReader( "Line1\rLine2\r\nLine3\nLine4" );
  73. string test = reader.ReadLine();
  74. AssertEquals( "Line1", test );
  75. test = reader.ReadLine();
  76. AssertEquals( "Line2", test );
  77. test = reader.ReadLine();
  78. AssertEquals( "Line3", test );
  79. test = reader.ReadLine();
  80. AssertEquals( "Line4", test );
  81. }
  82. }
  83. }