Skip to content

Commit 59604ea

Browse files
Add unit test and fix failing new test
1 parent 3b93811 commit 59604ea

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Knowncolors.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -810,6 +810,8 @@ internal static KnownColor ColorStringToKnownColor(string colorString)
810810
#if !PBTCOMPILER
811811
internal static KnownColor ArgbStringToKnownColor(string argbString)
812812
{
813+
ArgumentNullException.ThrowIfNull(argbString);
814+
813815
ReadOnlySpan<char> argbSpan = argbString.AsSpan().Trim();
814816

815817
// Use NumberStyles.AllowHexSpecifier instead of NumberStyles.HexNumber because NumberStyles.HexNumber
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
namespace System.Windows.Media;
2+
3+
public class KnownColorsTests
4+
{
5+
[Theory]
6+
// Supported values.
7+
[InlineData(KnownColor.AliceBlue, "#FFF0F8FF")]
8+
[InlineData(KnownColor.AliceBlue, " #FFF0F8FF")]
9+
[InlineData(KnownColor.AliceBlue, " #FFF0F8FF ")]
10+
[InlineData(KnownColor.AliceBlue, "#FFF0F8FF ")]
11+
// Unsupported values.
12+
[InlineData(KnownColor.UnknownColor, "")]
13+
[InlineData(KnownColor.UnknownColor, " ")]
14+
[InlineData(KnownColor.UnknownColor, "#020B37EF")] // Random ARGB that is not a known color.
15+
[InlineData(KnownColor.UnknownColor, "# FFF0F8FF")]
16+
public void ArgbStringToKnownColor_ReturnsExpected(object expected, string? argbString)
17+
{
18+
Assert.Equal((KnownColor)expected, KnownColors.ArgbStringToKnownColor(argbString));
19+
}
20+
21+
[Fact]
22+
public void ArgbStringToKnownColor_NullValue_ThrowsArgumentNullException()
23+
{
24+
Assert.Throws<ArgumentNullException>(() => KnownColors.ArgbStringToKnownColor(argbString: null));
25+
}
26+
}

0 commit comments

Comments
 (0)