diff options
author | Safia Abdalla <safia@microsoft.com> | 2022-09-16 02:14:20 +0300 |
---|---|---|
committer | Safia Abdalla <safia@microsoft.com> | 2022-09-16 02:14:20 +0300 |
commit | ac3daddc911a094a110c1ad89d46561a2671f5bb (patch) | |
tree | fd24e5c9aeea758e4b8d922e8a0113105e83a40c | |
parent | 5b84d4cdd4a292acca5ed1b92440bb9f19100f5f (diff) |
Only add MethodInfo to route handler endpointssafia/44005
-rw-r--r-- | src/Http/Routing/src/RouteEndpointDataSource.cs | 6 | ||||
-rw-r--r-- | src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs | 16 |
2 files changed, 12 insertions, 10 deletions
diff --git a/src/Http/Routing/src/RouteEndpointDataSource.cs b/src/Http/Routing/src/RouteEndpointDataSource.cs index 7e38da886c..2e39cd81ef 100644 --- a/src/Http/Routing/src/RouteEndpointDataSource.cs +++ b/src/Http/Routing/src/RouteEndpointDataSource.cs @@ -168,9 +168,13 @@ internal sealed class RouteEndpointDataSource : EndpointDataSource { DisplayName = displayName, ApplicationServices = _applicationServices, - Metadata = { handler.Method }, }; + if (isRouteHandler) + { + builder.Metadata.Add(handler.Method); + } + if (entry.HttpMethods is not null) { builder.Metadata.Add(new HttpMethodMetadata(entry.HttpMethods)); diff --git a/src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs b/src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs index c58a14ed42..0c693a01a2 100644 --- a/src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs +++ b/src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs @@ -190,10 +190,9 @@ public class RequestDelegateEndpointRouteBuilderExtensionsTest // Assert var endpointBuilder1 = GetRouteEndpointBuilder(builder); Assert.Equal("/", endpointBuilder1.RoutePattern.RawText); - Assert.Equal(3, endpointBuilder1.Metadata.Count); - Assert.Equal(((RequestDelegate)Handle).Method, endpointBuilder1.Metadata[0]); - Assert.IsType<Attribute1>(endpointBuilder1.Metadata[1]); - Assert.IsType<Attribute2>(endpointBuilder1.Metadata[2]); + Assert.Equal(2, endpointBuilder1.Metadata.Count); + Assert.IsType<Attribute1>(endpointBuilder1.Metadata[0]); + Assert.IsType<Attribute2>(endpointBuilder1.Metadata[1]); } [Fact] @@ -228,11 +227,10 @@ public class RequestDelegateEndpointRouteBuilderExtensionsTest // As with the Delegate Map method overloads for route handlers, the attributes on the RequestDelegate // can override the HttpMethodMetadata. Extension methods could already do this. - Assert.Equal(4, endpoint.Metadata.Count); - Assert.Equal(((RequestDelegate)HandleHttpMetdata).Method, endpoint.Metadata[0]); - Assert.Equal("METHOD", GetMethod(endpoint.Metadata[1])); - Assert.Equal("ATTRIBUTE", GetMethod(endpoint.Metadata[2])); - Assert.Equal("BUILDER", GetMethod(endpoint.Metadata[3])); + Assert.Equal(3, endpoint.Metadata.Count); + Assert.Equal("METHOD", GetMethod(endpoint.Metadata[0])); + Assert.Equal("ATTRIBUTE", GetMethod(endpoint.Metadata[1])); + Assert.Equal("BUILDER", GetMethod(endpoint.Metadata[2])); Assert.Equal("BUILDER", endpoint.Metadata.GetMetadata<IHttpMethodMetadata>()?.HttpMethods.Single()); |