mirror of
https://github.com/SabreTools/SabreTools.RedumpLib.git
synced 2026-02-04 05:36:11 +00:00
Add ToYesNo tests
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user