StringWriterTest.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. //
  2. // System.IO.StringWriter
  3. //
  4. // Authors:
  5. // Marcin Szczepanski ([email protected])
  6. // Ben Maurer <[email protected]>
  7. //
  8. // TODO: Add some testing for exceptions
  9. //
  10. using NUnit.Framework;
  11. using System.IO;
  12. using System;
  13. using System.Globalization;
  14. using System.Text;
  15. namespace MonoTests.System.IO {
  16. [TestFixture]
  17. public class StringWriterTest : Assertion {
  18. public void TestConstructors() {
  19. StringBuilder sb = new StringBuilder("Test String");
  20. StringWriter writer = new StringWriter( sb );
  21. AssertEquals( sb, writer.GetStringBuilder() );
  22. }
  23. public void TestCultureInfoConstructor() {
  24. StringWriter writer = new StringWriter(CultureInfo.InvariantCulture);
  25. AssertNotNull( writer.GetStringBuilder() );
  26. AssertEquals( String.Empty, writer.ToString() );
  27. writer.Write( 'A' );
  28. AssertEquals( "A", writer.ToString() );
  29. writer.Write( " foo" );
  30. AssertEquals( "A foo", writer.ToString() );
  31. char[] testBuffer = "Test String".ToCharArray();
  32. writer.Write( testBuffer, 0, 4 );
  33. AssertEquals( "A fooTest", writer.ToString() );
  34. writer.Write( testBuffer, 5, 6 );
  35. AssertEquals( "A fooTestString", writer.ToString() );
  36. writer = new StringWriter(CultureInfo.InvariantCulture);
  37. writer.Write(null as string);
  38. AssertEquals( "", writer.ToString() );
  39. }
  40. public void TestWrite() {
  41. StringWriter writer = new StringWriter();
  42. AssertEquals( String.Empty, writer.ToString() );
  43. writer.Write( 'A' );
  44. AssertEquals( "A", writer.ToString() );
  45. writer.Write( " foo" );
  46. AssertEquals( "A foo", writer.ToString() );
  47. char[] testBuffer = "Test String".ToCharArray();
  48. writer.Write( testBuffer, 0, 4 );
  49. AssertEquals( "A fooTest", writer.ToString() );
  50. writer.Write( testBuffer, 5, 6 );
  51. AssertEquals( "A fooTestString", writer.ToString() );
  52. writer = new StringWriter ();
  53. writer.Write(null as string);
  54. AssertEquals( "", writer.ToString() );
  55. }
  56. public void TestNewLine() {
  57. StringWriter writer = new StringWriter();
  58. writer.NewLine = "\n\r";
  59. AssertEquals ("NewLine 1", "\n\r", writer.NewLine);
  60. writer.WriteLine ("first");
  61. AssertEquals ("NewLine 2", "first\n\r", writer.ToString());
  62. writer.NewLine = "\n";
  63. AssertEquals ("NewLine 3", "first\n\r", writer.ToString());
  64. writer.WriteLine ("second");
  65. AssertEquals ("NewLine 4", "first\n\rsecond\n", writer.ToString());
  66. }
  67. public void TestWriteLine() {
  68. StringWriter writer = new StringWriter();
  69. writer.NewLine = "\n";
  70. writer.WriteLine ("first line");
  71. writer.WriteLine ("second line");
  72. AssertEquals ("WriteLine 1", "first line\nsecond line\n", writer.ToString ());
  73. writer.Close ();
  74. }
  75. public void TestGetStringBuilder() {
  76. StringWriter writer = new StringWriter ();
  77. writer.Write ("line");
  78. StringBuilder builder = writer.GetStringBuilder ();
  79. builder.Append (12);
  80. AssertEquals ("GetStringBuilder 1", "line12", writer.ToString ());
  81. writer.Write ("test");
  82. AssertEquals ("GetStringBuilder 2", "line12test", builder.ToString ());
  83. }
  84. public void TestClose() {
  85. StringWriter writer = new StringWriter ();
  86. writer.Write ("mono");
  87. writer.Close ();
  88. try {
  89. writer.Write ("kicks ass");
  90. Fail ("Close 1");
  91. } catch (Exception e) {
  92. AssertEquals ("Close 2", typeof (ObjectDisposedException), e.GetType ());
  93. }
  94. AssertEquals ("Close 3", "mono", writer.ToString ());
  95. writer.Flush ();
  96. StringBuilder builder = writer.GetStringBuilder ();
  97. AssertEquals ("Close 4", "mono", builder.ToString ());
  98. builder.Append (" kicks ass");
  99. AssertEquals ("Close 5", "mono kicks ass", writer.ToString ());
  100. }
  101. public void TestExceptions () {
  102. try {
  103. StringWriter writer = new StringWriter (null as StringBuilder);
  104. Fail();
  105. } catch (Exception e) {
  106. AssertEquals ("Exceptions 1", typeof (ArgumentNullException), e.GetType ());
  107. }
  108. {
  109. StringWriter writer = new StringWriter (null as IFormatProvider);
  110. }
  111. try {
  112. StringWriter writer = new StringWriter (null as StringBuilder, null as IFormatProvider);
  113. Fail ();
  114. } catch (Exception e) {
  115. AssertEquals ("Exceptions 2", typeof (ArgumentNullException), e.GetType ());
  116. }
  117. }
  118. }
  119. }