StringReaderTest.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  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. public void TestClose() {
  85. StringReader reader = new StringReader("reader");
  86. reader.Close ();
  87. try {
  88. reader.Read ();
  89. Fail();
  90. } catch (Exception e) {
  91. AssertEquals ("Close 1", typeof (ObjectDisposedException), e.GetType ());
  92. }
  93. try {
  94. reader.Peek ();
  95. Fail ();
  96. } catch (Exception e) {
  97. AssertEquals ("Close 2", typeof (ObjectDisposedException), e.GetType ());
  98. }
  99. }
  100. public void TestExceptions() {
  101. StringReader reader;
  102. try {
  103. reader = new StringReader(null);
  104. Fail ();
  105. } catch (Exception e) {
  106. AssertEquals ("Exception 1", typeof (ArgumentNullException), e.GetType ());
  107. }
  108. reader = new StringReader ("this is a test\nAnd nothing else");
  109. try {
  110. reader.Read (null, 0, 12);
  111. Fail ();
  112. } catch (Exception e) {
  113. AssertEquals ("Exception 2", typeof (ArgumentNullException), e.GetType ());
  114. }
  115. }
  116. }
  117. }