1 // Licensed to the .NET Foundation under one or more agreements. 2 // The .NET Foundation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 using System.IO; 6 using Xunit; 7 8 namespace System.Diagnostics.TextWriterTraceListenerTests 9 { 10 public class TextWriterTraceListener_WriteTests : FileCleanupTestBase 11 { 12 private readonly Stream _stream; 13 private readonly string _fileName; 14 private const string TestMessage = "HelloWorld"; 15 TextWriterTraceListener_WriteTests()16 public TextWriterTraceListener_WriteTests() 17 { 18 _fileName = $"{GetTestFilePath()}.xml"; 19 CommonUtilities.DeleteFile(_fileName); 20 _stream = new FileStream(_fileName, FileMode.OpenOrCreate, FileAccess.Write); 21 } 22 23 [Fact] TestWrite()24 public void TestWrite() 25 { 26 using (var target = new TextWriterTraceListener(_stream)) 27 { 28 target.Write(TestMessage); 29 } 30 31 Assert.Contains(TestMessage, File.ReadAllText(_fileName)); 32 } 33 34 [Fact] TestWriteLine()35 public void TestWriteLine() 36 { 37 using (var target = new TextWriterTraceListener(_stream)) 38 { 39 target.WriteLine(TestMessage); 40 } 41 42 string expected = TestMessage + Environment.NewLine; 43 Assert.Contains(expected, File.ReadAllText(_fileName)); 44 } 45 46 [Fact] TestFlush()47 public void TestFlush() 48 { 49 using (var target = new TextWriterTraceListener(_stream)) 50 { 51 target.Write(TestMessage); 52 target.Flush(); 53 } 54 } 55 56 [Fact] TestWriteAfterDisposeShouldNotThrow()57 public void TestWriteAfterDisposeShouldNotThrow() 58 { 59 var target = new TextWriterTraceListener(_stream); 60 target.Dispose(); 61 62 target.WriteLine(TestMessage); 63 target.Write(TestMessage); 64 target.Flush(); 65 } 66 67 [Fact] TestWriterPropery()68 public void TestWriterPropery() 69 { 70 var testWriter = new StreamWriter(_stream); 71 using (var target = new TextWriterTraceListener()) 72 { 73 Assert.Null(target.Writer); 74 target.Writer = testWriter; 75 Assert.NotNull(target.Writer); 76 Assert.Same(testWriter, target.Writer); 77 } 78 } 79 Dispose(bool disposing)80 protected override void Dispose(bool disposing) 81 { 82 _stream.Dispose(); 83 base.Dispose(disposing); 84 } 85 } 86 } 87