Fix color system mapping bug

Closes #342
This commit is contained in:
Patrik Svensson 2021-04-08 00:46:39 +02:00 committed by Phil Scott
parent ca036f6543
commit 13ac38ed04
6 changed files with 52 additions and 10 deletions

View File

@ -21,7 +21,7 @@ namespace Spectre.Console.Testing
IAnsiConsoleInput IAnsiConsole.Input => Input;
public FakeAnsiConsole(
ColorSystem system,
ColorSystem colors,
AnsiSupport ansi = AnsiSupport.Yes,
int width = 80)
{
@ -32,7 +32,7 @@ namespace Spectre.Console.Testing
_console = factory.Create(new AnsiConsoleSettings
{
Ansi = ansi,
ColorSystem = (ColorSystemSupport)system,
ColorSystem = (ColorSystemSupport)colors,
Out = _writer,
Enrichment = new ProfileEnrichment
{

View File

@ -1,3 +1,4 @@
using System.IO;
using Shouldly;
using Spectre.Console.Testing;
using Xunit;
@ -6,6 +7,25 @@ namespace Spectre.Console.Tests.Unit
{
public partial class AnsiConsoleTests
{
[Theory]
[InlineData(ColorSystemSupport.NoColors, ColorSystem.NoColors)]
[InlineData(ColorSystemSupport.Legacy, ColorSystem.Legacy)]
[InlineData(ColorSystemSupport.Standard, ColorSystem.Standard)]
[InlineData(ColorSystemSupport.EightBit, ColorSystem.EightBit)]
[InlineData(ColorSystemSupport.TrueColor, ColorSystem.TrueColor)]
public void Should_Create_Console_With_Requested_ColorSystem(ColorSystemSupport requested, ColorSystem expected)
{
// Given, When
var console = AnsiConsole.Create(new AnsiConsoleSettings
{
ColorSystem = requested,
Out = new StringWriter(),
});
// Then
console.Profile.ColorSystem.ShouldBe(expected);
}
public sealed class TrueColor
{
[Theory]

View File

@ -0,0 +1,23 @@
using Shouldly;
using Xunit;
namespace Spectre.Console.Tests.Unit
{
public sealed class ColorSystemTests
{
[Theory]
[InlineData(ColorSystem.NoColors, ColorSystemSupport.NoColors)]
[InlineData(ColorSystem.Legacy, ColorSystemSupport.Legacy)]
[InlineData(ColorSystem.Standard, ColorSystemSupport.Standard)]
[InlineData(ColorSystem.EightBit, ColorSystemSupport.EightBit)]
[InlineData(ColorSystem.TrueColor, ColorSystemSupport.TrueColor)]
public void Should_Be_Analog_To_ColorSystemSupport(ColorSystem colors, ColorSystemSupport support)
{
// Given, When
var result = (int)colors;
// Then
result.ShouldBe((int)support);
}
}
}

View File

@ -1,6 +1,5 @@
using System;
using System.Runtime.InteropServices;
using System.Text;
using Spectre.Console.Enrichment;
using Spectre.Console.Internal;

View File

@ -17,7 +17,7 @@ namespace Spectre.Console
/// <summary>
/// Gets or sets the color system to use.
/// </summary>
public ColorSystemSupport ColorSystem { get; set; }
public ColorSystemSupport ColorSystem { get; set; } = ColorSystemSupport.Detect;
/// <summary>
/// Gets or sets the out buffer.

View File

@ -8,31 +8,31 @@ namespace Spectre.Console
/// <summary>
/// Try to detect the color system.
/// </summary>
Detect = 0,
Detect = -1,
/// <summary>
/// No colors.
/// </summary>
NoColors = 1,
NoColors = 0,
/// <summary>
/// Legacy, 3-bit mode.
/// </summary>
Legacy = 2,
Legacy = 1,
/// <summary>
/// Standard, 4-bit mode.
/// </summary>
Standard = 3,
Standard = 2,
/// <summary>
/// 8-bit mode.
/// </summary>
EightBit = 4,
EightBit = 3,
/// <summary>
/// 24-bit mode.
/// </summary>
TrueColor = 5,
TrueColor = 4,
}
}