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("FooBarQux");
            result[3].ShouldBe("├─────────────────┼───────┼─────┤");
            result[4].ShouldBe("CorgiWaldoZap");
            result[5].ShouldBe("╭─────────────╮ │       │     │");
            result[6].ShouldBe(" Hello World  │       │     │");
            result[7].ShouldBe("╰─────────────╯ │       │     │");
            result[8].ShouldBe("└─────────────────┴───────┴─────┘");
            result[9].ShouldBe("
"); } } }