34 lines
803 B
Plaintext
34 lines
803 B
Plaintext
[source,csharp]
|
|
----
|
|
[TestMethod]
|
|
[ExpectedException(typeof(InvalidOperationException))]
|
|
public void UsingTest()
|
|
{
|
|
Console.ForegroundColor = ConsoleColor.Black;
|
|
try
|
|
{
|
|
using var _ = new ConsoleAlert();
|
|
Assert.AreEqual(ConsoleColor.Red, Console.ForegroundColor);
|
|
throw new InvalidOperationException();
|
|
}
|
|
finally
|
|
{
|
|
Assert.AreEqual(ConsoleColor.Black, Console.ForegroundColor); // The exception itself is not relevant for the test.
|
|
}
|
|
}
|
|
|
|
public sealed class ConsoleAlert : IDisposable
|
|
{
|
|
private readonly ConsoleColor previous;
|
|
|
|
public ConsoleAlert()
|
|
{
|
|
previous = Console.ForegroundColor;
|
|
Console.ForegroundColor = ConsoleColor.Red;
|
|
}
|
|
|
|
public void Dispose() =>
|
|
Console.ForegroundColor = previous;
|
|
}
|
|
----
|