Skip to content

Commit 8517ce4

Browse files
author
StickFun
committed
Added unit test for handling string array from form parameter
1 parent 99407d1 commit 8517ce4

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/Http/Http.Extensions/test/RequestDelegateFactoryTests.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,30 @@ public async Task RequestDelegateHandlesNullableStringValuesFromExplicitQueryStr
684684
Assert.Null(httpContext.Items["form"]);
685685
}
686686

687+
[Fact]
688+
public async Task RequestDelegateHandlesFromFormStringArrayParameter()
689+
{
690+
var httpContext = CreateHttpContext();
691+
httpContext.Request.Form = new FormCollection(null);
692+
693+
var factoryResult = RequestDelegateFactory.Create(
694+
(HttpContext context, [FromForm(Name = "form")] string[] formValues) =>
695+
{
696+
context.Items["form"] = formValues;
697+
});
698+
699+
var requestDelegate = factoryResult.RequestDelegate;
700+
701+
await requestDelegate(httpContext);
702+
703+
var parameterBindingMetadata = factoryResult.EndpointMetadata
704+
.FirstOrDefault(e => e is ParameterBindingMetadata metadata &&
705+
metadata.Name == "formValues") as ParameterBindingMetadata;
706+
707+
Assert.NotNull(parameterBindingMetadata);
708+
Assert.Equal(typeof(string[]), parameterBindingMetadata.ParameterInfo.ParameterType);
709+
}
710+
687711
[Fact]
688712
public async Task RequestDelegateCanAwaitValueTasksThatAreNotImmediatelyCompleted()
689713
{

0 commit comments

Comments
 (0)