StringReaderTest.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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 void TestReadLine() {
  16. string testme = "a\nb\nc\n";
  17. StringReader sr = new StringReader (testme);
  18. string inputLine;
  19. int lines = 0;
  20. while ((inputLine = sr.ReadLine ()) != null)
  21. lines++;
  22. AssertEquals ("Incorrect number of lines", 3, lines);
  23. }
  24. public void TestPeekRead() {
  25. StringReader reader = new StringReader( "Test String" );
  26. char c = (char)reader.Peek();
  27. AssertEquals("A1", 'T', c );
  28. char read = (char)reader.Read();
  29. AssertEquals("A2", 'T', read );
  30. c = (char)reader.Peek();
  31. AssertEquals("A3", 'e', c );
  32. }
  33. public void TestPeekAndReadAtEndOfString() {
  34. StringReader reader = new StringReader("x");
  35. char c = (char)reader.Peek();
  36. AssertEquals("A1", 'x', c );
  37. c = (char)reader.Read();
  38. AssertEquals("A2", 'x', c);
  39. int i = reader.Peek();
  40. AssertEquals("A3", -1, i);
  41. i = reader.Read();
  42. AssertEquals("A4", -1, i);
  43. i = reader.Peek();
  44. AssertEquals("A5", -1, i);
  45. }
  46. public void TestPeekAndReadEmptyString() {
  47. StringReader reader = new StringReader("");
  48. int i = reader.Peek();
  49. AssertEquals("A1", -1, i);
  50. i = reader.Read();
  51. AssertEquals("A2", -1, i);
  52. }
  53. public void TestRead() {
  54. StringReader reader = new StringReader( "Test String" );
  55. /* Read from start of string */
  56. char[] test = new char[5];
  57. int charsRead = reader.Read( test, 0, 5 );
  58. AssertEquals( 5, charsRead );
  59. AssertEquals( "Test ", new String(test) );
  60. /* Read to end of string */
  61. //reader = new StringReader( "Test String" );
  62. test = new char[6];
  63. charsRead = reader.Read( test, 0, 6 );
  64. AssertEquals( 6, charsRead);
  65. AssertEquals( "String", new String( test ) );
  66. /* Read past end of string */
  67. test = new char[6];
  68. reader = new StringReader( "Foo" );
  69. charsRead = reader.Read( test, 0, 6 );
  70. AssertEquals( 3, charsRead );
  71. AssertEquals( "Foo\0\0\0", new String( test ) );
  72. }
  73. public void TestReadEOL() {
  74. StringReader reader = new StringReader( "Line1\rLine2\r\nLine3\nLine4" );
  75. string test = reader.ReadLine();
  76. AssertEquals( "Line1", test );
  77. test = reader.ReadLine();
  78. AssertEquals( "Line2", test );
  79. test = reader.ReadLine();
  80. AssertEquals( "Line3", test );
  81. test = reader.ReadLine();
  82. AssertEquals( "Line4", test );
  83. }
  84. }
  85. }