Browse Source

Add more coverage for TryParse

pull/3975/head
Dariusz Komosinski 6 years ago
parent
commit
9c4bcbdea9
  1. 90
      tests/Avalonia.Visuals.UnitTests/Media/ColorTests.cs

90
tests/Avalonia.Visuals.UnitTests/Media/ColorTests.cs

@ -17,6 +17,18 @@ namespace Avalonia.Visuals.UnitTests.Media
Assert.Equal(0xff, result.A); Assert.Equal(0xff, result.A);
} }
[Fact]
public void Try_Parse_Parses_RGB_Hash_Color()
{
var success = Color.TryParse("#ff8844", out Color result);
Assert.True(success);
Assert.Equal(0xff, result.R);
Assert.Equal(0x88, result.G);
Assert.Equal(0x44, result.B);
Assert.Equal(0xff, result.A);
}
[Fact] [Fact]
public void Parse_Parses_RGB_Hash_Shorthand_Color() public void Parse_Parses_RGB_Hash_Shorthand_Color()
{ {
@ -28,6 +40,18 @@ namespace Avalonia.Visuals.UnitTests.Media
Assert.Equal(0xff, result.A); Assert.Equal(0xff, result.A);
} }
[Fact]
public void Try_Parse_Parses_RGB_Hash_Shorthand_Color()
{
var success = Color.TryParse("#f84", out Color result);
Assert.True(success);
Assert.Equal(0xff, result.R);
Assert.Equal(0x88, result.G);
Assert.Equal(0x44, result.B);
Assert.Equal(0xff, result.A);
}
[Fact] [Fact]
public void Parse_Parses_ARGB_Hash_Color() public void Parse_Parses_ARGB_Hash_Color()
{ {
@ -39,6 +63,18 @@ namespace Avalonia.Visuals.UnitTests.Media
Assert.Equal(0x40, result.A); Assert.Equal(0x40, result.A);
} }
[Fact]
public void Try_Parse_Parses_ARGB_Hash_Color()
{
var success = Color.TryParse("#40ff8844", out Color result);
Assert.True(success);
Assert.Equal(0xff, result.R);
Assert.Equal(0x88, result.G);
Assert.Equal(0x44, result.B);
Assert.Equal(0x40, result.A);
}
[Fact] [Fact]
public void Parse_Parses_ARGB_Hash_Shorthand_Color() public void Parse_Parses_ARGB_Hash_Shorthand_Color()
{ {
@ -50,6 +86,18 @@ namespace Avalonia.Visuals.UnitTests.Media
Assert.Equal(0x44, result.A); Assert.Equal(0x44, result.A);
} }
[Fact]
public void Try_Parse_Parses_ARGB_Hash_Shorthand_Color()
{
var success = Color.TryParse("#4f84", out Color result);
Assert.True(success);
Assert.Equal(0xff, result.R);
Assert.Equal(0x88, result.G);
Assert.Equal(0x44, result.B);
Assert.Equal(0x44, result.A);
}
[Fact] [Fact]
public void Parse_Parses_Named_Color_Lowercase() public void Parse_Parses_Named_Color_Lowercase()
{ {
@ -61,6 +109,18 @@ namespace Avalonia.Visuals.UnitTests.Media
Assert.Equal(0xff, result.A); Assert.Equal(0xff, result.A);
} }
[Fact]
public void TryParse_Parses_Named_Color_Lowercase()
{
var success = Color.TryParse("red", out Color result);
Assert.True(success);
Assert.Equal(0xff, result.R);
Assert.Equal(0x00, result.G);
Assert.Equal(0x00, result.B);
Assert.Equal(0xff, result.A);
}
[Fact] [Fact]
public void Parse_Parses_Named_Color_Uppercase() public void Parse_Parses_Named_Color_Uppercase()
{ {
@ -72,22 +132,52 @@ namespace Avalonia.Visuals.UnitTests.Media
Assert.Equal(0xff, result.A); Assert.Equal(0xff, result.A);
} }
[Fact]
public void TryParse_Parses_Named_Color_Uppercase()
{
var success = Color.TryParse("RED", out Color result);
Assert.True(success);
Assert.Equal(0xff, result.R);
Assert.Equal(0x00, result.G);
Assert.Equal(0x00, result.B);
Assert.Equal(0xff, result.A);
}
[Fact] [Fact]
public void Parse_Hex_Value_Doesnt_Accept_Too_Few_Chars() public void Parse_Hex_Value_Doesnt_Accept_Too_Few_Chars()
{ {
Assert.Throws<FormatException>(() => Color.Parse("#ff")); Assert.Throws<FormatException>(() => Color.Parse("#ff"));
} }
[Fact]
public void TryParse_Hex_Value_Doesnt_Accept_Too_Few_Chars()
{
Assert.False(Color.TryParse("#ff", out _));
}
[Fact] [Fact]
public void Parse_Hex_Value_Doesnt_Accept_Too_Many_Chars() public void Parse_Hex_Value_Doesnt_Accept_Too_Many_Chars()
{ {
Assert.Throws<FormatException>(() => Color.Parse("#ff5555555")); Assert.Throws<FormatException>(() => Color.Parse("#ff5555555"));
} }
[Fact]
public void TryParse_Hex_Value_Doesnt_Accept_Too_Many_Chars()
{
Assert.False(Color.TryParse("#ff5555555", out _));
}
[Fact] [Fact]
public void Parse_Hex_Value_Doesnt_Accept_Invalid_Number() public void Parse_Hex_Value_Doesnt_Accept_Invalid_Number()
{ {
Assert.Throws<FormatException>(() => Color.Parse("#ff808g80")); Assert.Throws<FormatException>(() => Color.Parse("#ff808g80"));
} }
[Fact]
public void TryParse_Hex_Value_Doesnt_Accept_Invalid_Number()
{
Assert.False(Color.TryParse("#ff808g80", out _));
}
} }
} }

Loading…
Cancel
Save