using Shouldly; using Xunit; namespace Spectre.Console.Tests.Unit { public sealed class RecorderTests { [Fact] public void Should_Export_Text_As_Expected() { // Given var console = new PlainConsole(); var recorder = new Recorder(console); recorder.Render(new Table() .AddColumns("Foo", "Bar", "Qux") .AddRow("Corgi", "Waldo", "Zap") .AddRow(new Panel("Hello World").RoundedBorder())); // When var result = recorder.ExportText().Split(new[] { '\n' }); // Then result.Length.ShouldBe(8); result[0].ShouldBe("┌─────────────────┬───────┬─────┐"); result[1].ShouldBe("│ Foo │ Bar │ Qux │"); result[2].ShouldBe("├─────────────────┼───────┼─────┤"); result[3].ShouldBe("│ Corgi │ Waldo │ Zap │"); result[4].ShouldBe("│ ╭─────────────╮ │ │ │"); result[5].ShouldBe("│ │ Hello World │ │ │ │"); result[6].ShouldBe("│ ╰─────────────╯ │ │ │"); result[7].ShouldBe("└─────────────────┴───────┴─────┘"); } [Fact] public void Should_Export_Html_As_Expected() { // Given var console = new PlainConsole(); var recorder = new Recorder(console); recorder.Render(new Table() .AddColumns("[red on black]Foo[/]", "[green bold]Bar[/]", "[blue italic]Qux[/]") .AddRow("[invert underline]Corgi[/]", "[bold strikethrough]Waldo[/]", "[dim]Zap[/]") .AddRow(new Panel("[blue]Hello World[/]") .BorderColor(Color.Red).RoundedBorder())); // When var html = recorder.ExportHtml(); var result = html.Split(new[] { '\n' }); // Then result.Length.ShouldBe(10); result[0].ShouldBe("
"); result[1].ShouldBe("┌─────────────────┬───────┬─────┐"); result[2].ShouldBe("│ Foo │ Bar │ Qux │"); result[3].ShouldBe("├─────────────────┼───────┼─────┤"); result[4].ShouldBe("│ Corgi │ Waldo │ Zap │"); result[5].ShouldBe("│ ╭─────────────╮ │ │ │"); result[6].ShouldBe("│ │ Hello World │ │ │ │"); result[7].ShouldBe("│ ╰─────────────╯ │ │ │"); result[8].ShouldBe("└─────────────────┴───────┴─────┘"); result[9].ShouldBe(""); } } }