Added hex color conversion (#1432)

* Added hex color conversion

---------

Co-authored-by: Frank Ray <52075808+FrankRay78@users.noreply.github.com>
Co-authored-by: Nils Andresen <nils@nils-andresen.de>
This commit is contained in:
Jonathan Sheely
2024-11-13 07:35:26 -05:00
committed by GitHub
parent a87277e859
commit 574ead6d46
2 changed files with 108 additions and 0 deletions

View File

@ -1,9 +1,73 @@
using System.Drawing;
namespace Spectre.Console.Tests.Unit;
public sealed class ColorTests
{
public sealed class TheEqualsMethod
{
[Theory]
[InlineData("800080")]
[InlineData("#800080")]
public void Should_Consider_Color_And_Color_From_Hex_Equal(string color)
{
// Given
var color1 = new Color(128, 0, 128);
// When
var color2 = Color.FromHex(color);
// Then
color2.ShouldBe(color1);
}
[Theory]
[InlineData("800080")]
[InlineData("#800080")]
public void Should_Consider_Color_And_Color_Try_From_Hex_Equal(string color)
{
// Given
var color1 = new Color(128, 0, 128);
// When
var result = Color.TryFromHex(color, out var color2);
// Then
result.ShouldBeTrue();
color2.ShouldBe(color1);
}
[Theory]
[InlineData(null)]
[InlineData("")]
[InlineData("#")]
[InlineData("#80")]
[InlineData("FOO")]
public void Should_Not_Parse_Non_Color_From_Hex(string noncolor)
{
// Given, When
var result = Record.Exception(() => Color.FromHex(noncolor));
// Then
result.ShouldBeAssignableTo<Exception>();
}
[Theory]
[InlineData(null)]
[InlineData("")]
[InlineData("#")]
[InlineData("#80")]
[InlineData("FOO")]
public void Should_Not_Parse_Non_Color_Try_From_Hex(string noncolor)
{
// Given, When
var result = Color.TryFromHex(noncolor, out var color);
// Then
result.ShouldBeFalse();
color.ShouldBe(Color.Default);
}
[Fact]
public void Should_Consider_Color_And_Non_Color_Equal()
{