Merge pull request #2024 from BogdanovKirill/webrequesttest
[mono.git] / mcs / class / corlib / Test / System.IO / StreamWriterTest.cs
index ac1b49d543c96c87432c192f8e9d7653e02c8774..661cffc18c61370723ed9b5137ce483534128833 100644 (file)
@@ -1052,18 +1052,52 @@ namespace MonoTests.System.IO
        }
 
 #if NET_4_5
-               [Test]
-               public void FlushAsync ()
-               {
-                       ManualResetEvent mre = new ManualResetEvent (false);
-                       var m = new MockStream(true, false, true);
-                       var w = new StreamWriter (m);
-                       w.Write(1);
-                       Assert.AreEqual (0L, m.Length, "#1");
-                       var t = w.WriteLineAsync ();
-                       Assert.IsTrue (t.Wait (1000), "#2");
+       [Test]
+       public void FlushAsync ()
+       {
+               ManualResetEvent mre = new ManualResetEvent (false);
+               var m = new MockStream(true, false, true);
+               var w = new StreamWriter (m);
+               w.Write(1);
+               Assert.AreEqual (0L, m.Length, "#1");
+               var t = w.WriteLineAsync ();
+               Assert.IsTrue (t.Wait (1000), "#2");
+               Assert.IsTrue (w.FlushAsync ().Wait (1000), "#3");
+       }
+
+       [Test]
+       public void KeepOpenWithDispose ()
+       {
+               var ms = new MemoryStream ();
+               using (StreamWriter writer = new StreamWriter (ms, new UTF8Encoding (false), 4096, true)) {
+                       writer.Write ('X');
                }
 
+               Assert.AreEqual (1, ms.Length);
+       }
+
+       [Test]
+       public void WriteAsync ()
+       {
+               var m = new MockStream(true, false, true);
+               var w = new StreamWriter (m);
+
+               var t = w.WriteAsync ("v");
+               Assert.IsTrue (t.Wait (1000), "#1");
+
+               t = w.WriteAsync ((string) null);
+               Assert.IsTrue (t.Wait (1000), "#2");
+
+               t = w.WriteLineAsync ("line");
+               Assert.IsTrue (t.Wait (1000), "#3");
+
+               t = w.WriteLineAsync ((string) null);
+               Assert.IsTrue (t.Wait (1000), "#4");
+
+               t = w.WriteLineAsync ('c');
+               Assert.IsTrue (t.Wait (1000), "#5");
+       }
+
 #endif
 
        // TODO - Write - test errors, functionality tested in TestFlush.