StringWriterTest.cs 4.2 KB

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