Add ToYesNo tests

This commit is contained in:
Matt Nadareski
2024-12-01 21:20:47 -05:00
parent f03cd40181
commit 071571870e
2 changed files with 29 additions and 5 deletions

View File

@@ -2082,8 +2082,32 @@ namespace SabreTools.RedumpLib.Test.Data
Assert.NotNull(actual);
}
// TODO: Add ToYesNo(bool) test
// TODO: Add ToYesNo(string) test
[Theory]
[InlineData(true, YesNo.Yes)]
[InlineData(false, YesNo.No)]
[InlineData(null, YesNo.NULL)]
public void YesNo_ToYesNo_Boolean(bool? value, YesNo? expected)
{
YesNo? actual = value.ToYesNo();
Assert.Equal(expected, actual);
}
[Theory]
[InlineData("True", YesNo.Yes)]
[InlineData("true", YesNo.Yes)]
[InlineData("Yes", YesNo.Yes)]
[InlineData("yes", YesNo.Yes)]
[InlineData("False", YesNo.No)]
[InlineData("false", YesNo.No)]
[InlineData("No", YesNo.No)]
[InlineData("no", YesNo.No)]
[InlineData("INVALID", YesNo.NULL)]
[InlineData(null, YesNo.NULL)]
public void YesNo_ToYesNo_String(string? value, YesNo? expected)
{
YesNo? actual = value.ToYesNo();
Assert.Equal(expected, actual);
}
/// <summary>
/// Generate a test set of YesNo values

View File

@@ -1738,12 +1738,12 @@ namespace SabreTools.RedumpLib.Data
/// </summary>
/// <param name="yesno">String value to convert</param>
/// <returns>YesNo represented by the string, if possible</returns>
public static YesNo? ToYesNo(string yesno)
public static YesNo? ToYesNo(this string? yesno)
{
return (yesno?.ToLowerInvariant()) switch
{
"no" => YesNo.No,
"yes" => YesNo.Yes,
"no" or "false" => YesNo.No,
"yes" or "true" => YesNo.Yes,
_ => YesNo.NULL,
};
}