mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-07-04 11:48:16 +08:00
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:
@ -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()
|
||||
{
|
||||
|
Reference in New Issue
Block a user