public void StandardIOComplies()
{
#region In, Out, Error
// Assert.
Assert.Same(Base.In, Facade.In);
Assert.Same(Base.Out, Facade.Out);
Assert.Same(Base.Error, Facade.Error);
#endregion
#region SetIn, SetOut, SetError
// Base/Facade
// Act.
Base.SetIn(TestIn);
Base.SetOut(TestOut);
Base.SetError(TestError);
// Assert.
Assert.Same(Base.In, Facade.In);
Assert.Same(Base.Out, Facade.Out);
Assert.Same(Base.Error, Facade.Error);
// Teardown.
Base.SetIn(BaseIn);
Base.SetOut(BaseOut);
Base.SetError(BaseError);
// Facade/Base
// Act.
Facade.SetIn(TestIn);
Facade.SetOut(TestOut);
Facade.SetError(TestError);
// Assert.
Assert.Same(Facade.In, Base.In);
Assert.Same(Facade.Out, Base.Out);
Assert.Same(Facade.Error, Base.Error);
#endregion
#region WriteLine, ReadLine, Clear
// Base/Facade
// Act.
Base.WriteLine("Hello, world!");
// Assert.
TestStream.Position = 0;
Assert.Equal("Hello, world!", Facade.ReadLine());
// Act.
Base.Clear();
// Assert.
Assert.Equal(string.Empty, Facade.ReadLine());
// Facade/Base
// Act.
Facade.WriteLine("Hello, world!");
// Assert.
TestStream.Position = 0;
Assert.Equal("Hello, world!", Base.ReadLine());
// Act.
Facade.Clear();
// Assert.
Assert.Equal(string.Empty, Base.ReadLine());
#endregion
#region Teardown
// Act.
Base.SetIn(BaseIn);
Base.SetOut(BaseOut);
Base.SetError(BaseError);
// Assert.
Assert.Same(BaseIn, Facade.In);
Assert.Same(BaseOut, Facade.Out);
Assert.Same(BaseError, Facade.Error);
#endregion
}