| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- //
- // System.IO.StringWriter
- //
- // Authors:
- // Marcin Szczepanski ([email protected])
- // Ben Maurer <[email protected]>
- // Sebastien Pouliot <[email protected]>
- //
- // Copyright (C) 2004 Novell (http://www.novell.com)
- //
- using NUnit.Framework;
- using System.IO;
- using System;
- using System.Globalization;
- using System.Text;
- namespace MonoTests.System.IO {
- [TestFixture]
- public class StringWriterTest : Assertion {
- public void TestConstructors() {
- StringBuilder sb = new StringBuilder("Test String");
- StringWriter writer = new StringWriter( sb );
- AssertEquals( sb, writer.GetStringBuilder() );
- }
- public void TestCultureInfoConstructor() {
- StringWriter writer = new StringWriter(CultureInfo.InvariantCulture);
- AssertNotNull( writer.GetStringBuilder() );
-
- AssertEquals( String.Empty, writer.ToString() );
-
- writer.Write( 'A' );
- AssertEquals( "A", writer.ToString() );
-
- writer.Write( " foo" );
- AssertEquals( "A foo", writer.ToString() );
-
-
- char[] testBuffer = "Test String".ToCharArray();
-
- writer.Write( testBuffer, 0, 4 );
- AssertEquals( "A fooTest", writer.ToString() );
-
- writer.Write( testBuffer, 5, 6 );
- AssertEquals( "A fooTestString", writer.ToString() );
-
- writer = new StringWriter(CultureInfo.InvariantCulture);
- writer.Write(null as string);
- AssertEquals( "", writer.ToString() );
- }
- public void TestWrite() {
- StringWriter writer = new StringWriter();
- AssertEquals( String.Empty, writer.ToString() );
-
- writer.Write( 'A' );
- AssertEquals( "A", writer.ToString() );
- writer.Write( " foo" );
- AssertEquals( "A foo", writer.ToString() );
-
- char[] testBuffer = "Test String".ToCharArray();
- writer.Write( testBuffer, 0, 4 );
- AssertEquals( "A fooTest", writer.ToString() );
- writer.Write( testBuffer, 5, 6 );
- AssertEquals( "A fooTestString", writer.ToString() );
- writer = new StringWriter ();
- writer.Write(null as string);
- AssertEquals( "", writer.ToString() );
- }
- public void TestNewLine() {
-
- StringWriter writer = new StringWriter();
-
- writer.NewLine = "\n\r";
- AssertEquals ("NewLine 1", "\n\r", writer.NewLine);
-
- writer.WriteLine ("first");
- AssertEquals ("NewLine 2", "first\n\r", writer.ToString());
-
- writer.NewLine = "\n";
- AssertEquals ("NewLine 3", "first\n\r", writer.ToString());
-
- writer.WriteLine ("second");
- AssertEquals ("NewLine 4", "first\n\rsecond\n", writer.ToString());
-
- }
-
- public void TestWriteLine() {
-
- StringWriter writer = new StringWriter();
- writer.NewLine = "\n";
-
- writer.WriteLine ("first line");
- writer.WriteLine ("second line");
-
- AssertEquals ("WriteLine 1", "first line\nsecond line\n", writer.ToString ());
- writer.Close ();
- }
-
- public void TestGetStringBuilder() {
-
- StringWriter writer = new StringWriter ();
- writer.Write ("line");
- StringBuilder builder = writer.GetStringBuilder ();
- builder.Append (12);
- AssertEquals ("GetStringBuilder 1", "line12", writer.ToString ());
- writer.Write ("test");
- AssertEquals ("GetStringBuilder 2", "line12test", builder.ToString ());
- }
-
- public void TestClose() {
-
- StringWriter writer = new StringWriter ();
- writer.Write ("mono");
- writer.Close ();
-
- try {
- writer.Write ("kicks ass");
- Fail ("Close 1");
- } catch (Exception e) {
- AssertEquals ("Close 2", typeof (ObjectDisposedException), e.GetType ());
- }
- AssertEquals ("Close 3", "mono", writer.ToString ());
- writer.Flush ();
- StringBuilder builder = writer.GetStringBuilder ();
- AssertEquals ("Close 4", "mono", builder.ToString ());
-
- builder.Append (" kicks ass");
- AssertEquals ("Close 5", "mono kicks ass", writer.ToString ());
- }
- public void TestExceptions () {
-
- try {
- StringWriter writer = new StringWriter (null as StringBuilder);
- Fail();
- } catch (Exception e) {
- AssertEquals ("Exceptions 1", typeof (ArgumentNullException), e.GetType ());
- }
- {
- StringWriter writer = new StringWriter (null as IFormatProvider);
- }
- try {
- StringWriter writer = new StringWriter (null as StringBuilder, null as IFormatProvider);
- Fail ();
- } catch (Exception e) {
- AssertEquals ("Exceptions 2", typeof (ArgumentNullException), e.GetType ());
- }
- }
- [Test]
- // strangely this is accepted [ExpectedException (typeof (ArgumentNullException))]
- public void WriteString_Null ()
- {
- StringWriter writer = new StringWriter ();
- writer.Write (null as String);
- }
- [Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void WriteChars_Null ()
- {
- StringWriter writer = new StringWriter ();
- writer.Write (null, 0, 0);
- }
- [Test]
- [ExpectedException (typeof (ArgumentOutOfRangeException))]
- public void WriteChars_IndexNegative ()
- {
- char[] c = new char [2] { 'a', 'b' };
- StringWriter writer = new StringWriter ();
- writer.Write (c, -1, 0);
- }
- [Test]
- [ExpectedException (typeof (ArgumentOutOfRangeException))]
- public void WriteChars_CountNegative ()
- {
- char[] c = new char [2] { 'a', 'b' };
- StringWriter writer = new StringWriter ();
- writer.Write (c, 0, -1);
- }
- [Test]
- [ExpectedException (typeof (ArgumentException))]
- public void WriteChars_IndexOverflow ()
- {
- char[] c = new char [2] { 'a', 'b' };
- StringWriter writer = new StringWriter ();
- writer.Write (c, Int32.MaxValue, 0);
- }
- [Test]
- [ExpectedException (typeof (ArgumentException))]
- public void WriteChars_CountOverflow ()
- {
- char[] c = new char [2] { 'a', 'b' };
- StringWriter writer = new StringWriter ();
- writer.Write (c, 0, Int32.MaxValue);
- }
- [Test]
- public void Disposed_Encoding ()
- {
- StringWriter writer = new StringWriter ();
- writer.Close ();
- AssertNotNull ("Disposed-Encoding", writer.Encoding);
- }
- [Test]
- public void Disposed_DoubleClose ()
- {
- StringWriter writer = new StringWriter ();
- writer.Close ();
- writer.Close ();
- }
- [Test]
- public void Disposed_GetStringBuilder ()
- {
- StringWriter writer = new StringWriter ();
- writer.Write ("Mono");
- writer.Close ();
- AssertNotNull ("Disposed-GetStringBuilder", writer.GetStringBuilder ());
- }
- [Test]
- public void Disposed_ToString ()
- {
- StringWriter writer = new StringWriter ();
- writer.Write ("Mono");
- writer.Close ();
- AssertEquals ("Disposed-ToString", "Mono", writer.ToString ());
- }
- [Test]
- [ExpectedException (typeof (ObjectDisposedException))]
- public void Disposed_WriteChar ()
- {
- StringWriter writer = new StringWriter ();
- writer.Close ();
- writer.Write ('c');
- }
- [Test]
- [ExpectedException (typeof (ObjectDisposedException))]
- public void Disposed_WriteString ()
- {
- StringWriter writer = new StringWriter ();
- writer.Close ();
- writer.Write ("mono");
- }
- [Test]
- [ExpectedException (typeof (ObjectDisposedException))]
- public void Disposed_WriteChars ()
- {
- char[] c = new char [2] { 'a', 'b' };
- StringWriter writer = new StringWriter ();
- writer.Close ();
- writer.Write (c, 0, 2);
- }
- }
- }
|