Files
spectre.console/test/Spectre.Console.Tests/Unit/AnsiConsoleTests.Advanced.cs
2021-12-22 08:51:17 -05:00

1.8 KiB

using Shouldly;
using Spectre.Console.Advanced;
using Spectre.Console.Testing;
using Xunit;
 
namespace Spectre.Console.Tests.Unit
{
public sealed partial class AnsiConsoleTests
{
public sealed class Advanced
{
[Fact]
public void Should_Write_Ansi_Codes_To_Console_If_Supported()
{
// Given
var console = new TestConsole()
.SupportsAnsi(true)
.Colors(ColorSystem.Standard)
.EmitAnsiSequences();
 
// When
console.WriteAnsi("Hello");
 
// Then
console.Output.NormalizeLineEndings()
.ShouldBe("Hello");
}
 
[Fact]
public void Should_Not_Write_Ansi_Codes_To_Console_If_Not_Supported()
{
// Given
var console = new TestConsole()
.SupportsAnsi(false)
.Colors(ColorSystem.Standard)
.EmitAnsiSequences();
 
// When
console.WriteAnsi("Hello");
 
// Then
console.Output.NormalizeLineEndings()
.ShouldBeEmpty();
}
 
[Fact]
public void Should_Return_Ansi_For_Renderable()
{
// Given
var console = new TestConsole().Colors(ColorSystem.TrueColor);
var markup = new Console.Markup("[yellow]Hello [blue]World[/]![/]");
 
// When
var result = console.ToAnsi(markup);
 
// Then
result.ShouldBe("Hello World!");
}
}
}
}