using System; using System.IO; using Developpez.Dotnet.IO; using NUnit.Framework; namespace Developpez.Dotnet.Tests.IO { [TestFixture] class TextWriterExtensionsTests { [Test] public void Test_Tee_ArgumentValidation() { var nullWriter = default(TextWriter); var actions = new TestDelegate[] { () => nullWriter.Tee(TextWriter.Null, TextWriter.Null), () => TextWriter.Null.Tee(null, TextWriter.Null), () => TextWriter.Null.Tee(TextWriter.Null, null), }; foreach (var action in actions) { Assert.Throws(action); } } [Test] public void Test_Tee() { using (var w1 = new StringWriter()) using (var w2 = new StringWriter()) { using (var tee = w1.Tee(w2)) { tee.Write("hello"); Assert.AreEqual("hello", w1.ToString()); Assert.AreEqual(w1.ToString(), w2.ToString()); } Assert.Throws(w1.WriteLine); Assert.Throws(w2.WriteLine); } } } }