Repository: dotnet/aspnetcore
File: src/Http/Http.Extensions/test/RequestDelegateGenerator/RequestDelegateCreationTests.SpecialTypes.cs (C#)

Code before:
                ["float", "float.PositiveInfinity", float.PositiveInfinity, true],
                ["float", "float.NegativeInfinity", float.NegativeInfinity, true],
                ["float", "float.E", float.E, true],
                ["float", "float.Epsilon", float.Epsilon, true],
                ["float", "float.NegativeZero", float.NegativeZero, true],
                ["float", "float.MaxValue", float.MaxValue, true],
                ["float", "float.MinValue", float.MinValue, true],
                ["float", "float.Pi", float.Pi, true],
                ["float", "float.Tau", float.Tau, true],
                ["decimal", "decimal.MaxValue", decimal.MaxValue, true],
                ["decimal", "decimal.MinusOne", decimal.MinusOne, true],
                ["decimal", "decimal.MinValue", decimal.MinValue, true],
                ["decimal", "decimal.One", decimal.One, true],
                ["decimal", "decimal.Zero", decimal.Zero, true],
                ["long", "long.MaxValue", long.MaxValue, true],
                ["long", "long.MinValue", long.MinValue, true],
                ["short", "short.MaxValue", short.MaxValue, true],
                ["short", "short.MinValue", short.MinValue, true],
                ["ulong", "ulong.MaxValue", ulong.MaxValue, true],
                ["ulong", "ulong.MinValue", ulong.MinValue, true],
                ["ushort", "ushort.MaxValue", ushort.MaxValue, true],
                ["ushort", "ushort.MinValue", ushort.MinValue, true],
                ["TodoStatus", "TodoStatus.Done", TodoStatus.Done, true],
                ["TodoStatus", "TodoStatus.InProgress", TodoStatus.InProgress, true],
                ["TodoStatus", "TodoStatus.NotDone", TodoStatus.NotDone, true],
                ["MyEnum", "MyEnum.ValueA", MyEnum.ValueA, true],
                ["MyEnum", "MyEnum.ValueB", MyEnum.ValueB, true],
                // Test nullable enum values
                ["TodoStatus?", "TodoStatus.Done", (TodoStatus?)TodoStatus.Done, false],
                ["TodoStatus?", "default", default(TodoStatus?), false]
            ];
        }
    }

    [Theory]
    [MemberData(nameof(DefaultValues))]
    public async Task RequestDelegatePopulatesParametersWithDefaultValues(string type, string defaultValue, object expectedValue, bool declareConst)
    {
        var source = string.Empty;
        if (declareConst)
        {
            source = $$"""
const {{type}} defaultConst = {{defaultValue}};
static void TestAction(
    HttpContext context,
    {{type}} parameterWithDefault = {{defaultValue}},
    {{type}} parameterWithConst = defaultConst)
{
    context.Items.Add("parameterWithDefault", parameterWithDefault);
    context.Items.Add("parameterWithConst", parameterWithConst);
}

Review comment (suggestion):
```suggestion
                ["TodoStatus", "TodoStatus.NotDone", TodoStatus.NotDone, true],
                ["TodoStatus", "1", 1, true],
```
Enum types don't match

Code after:
                ["float", "float.PositiveInfinity", float.PositiveInfinity, true],
                ["float", "float.NegativeInfinity", float.NegativeInfinity, true],
                ["float", "float.E", float.E, true],
                ["float", "float.Epsilon", float.Epsilon, true],
                ["float", "float.NegativeZero", float.NegativeZero, true],
                ["float", "float.MaxValue", float.MaxValue, true],
                ["float", "float.MinValue", float.MinValue, true],
                ["float", "float.Pi", float.Pi, true],
                ["float", "float.Tau", float.Tau, true],
                ["decimal", "decimal.MaxValue", decimal.MaxValue, true],
                ["decimal", "decimal.MinusOne", decimal.MinusOne, true],
                ["decimal", "decimal.MinValue", decimal.MinValue, true],
                ["decimal", "decimal.One", decimal.One, true],
                ["decimal", "decimal.Zero", decimal.Zero, true],
                ["long", "long.MaxValue", long.MaxValue, true],
                ["long", "long.MinValue", long.MinValue, true],
                ["long", "(long)3.14", (long)3, true],
                ["short", "short.MaxValue", short.MaxValue, true],
                ["short", "short.MinValue", short.MinValue, true],
                ["ulong", "ulong.MaxValue", ulong.MaxValue, true],
                ["ulong", "ulong.MinValue", ulong.MinValue, true],
                ["ushort", "ushort.MaxValue", ushort.MaxValue, true],
                ["ushort", "ushort.MinValue", ushort.MinValue, true],
                ["TodoStatus", "TodoStatus.Done", TodoStatus.Done, true],
                ["TodoStatus", "TodoStatus.InProgress", TodoStatus.InProgress, true],
                ["TodoStatus", "TodoStatus.NotDone", TodoStatus.NotDone, true],
                ["TodoStatus", "(TodoStatus)1", TodoStatus.Done, true],
                ["MyEnum", "MyEnum.ValueA", MyEnum.ValueA, true],
                ["MyEnum", "MyEnum.ValueB", MyEnum.ValueB, true],
                // Test nullable enum values
                ["TodoStatus?", "TodoStatus.Done", (TodoStatus?)TodoStatus.Done, false],
                ["TodoStatus?", "default", default(TodoStatus?), false]
            ];
        }
    }

    [Theory]
    [MemberData(nameof(DefaultValues))]
    public async Task RequestDelegatePopulatesParametersWithDefaultValues(string type, string defaultValue, object expectedValue, bool declareConst)
    {
        var source = string.Empty;
        if (declareConst)
        {
            source = $$"""
const {{type}} defaultConst = {{defaultValue}};
static void TestAction(
    HttpContext context,
    {{type}} parameterWithDefault = {{defaultValue}},
    {{type}} parameterWithConst = defaultConst)
{
    context.Items.Add("parameterWithDefault", parameterWithDefault);