Skip to content

Commit ca9fc8d

Browse files
committed
Fixed failing route unit tests because of the Endpoint routing (#326)
1 parent b24bb41 commit ca9fc8d

File tree

3 files changed

+39
-3
lines changed

3 files changed

+39
-3
lines changed

src/MyTested.AspNetCore.Mvc.Abstractions/Internal/Application/ApplicationBuilderMock.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@
99
using Microsoft.AspNetCore.Http;
1010
using Microsoft.AspNetCore.Http.Features;
1111
using Microsoft.AspNetCore.Mvc;
12+
using Microsoft.AspNetCore.Mvc.Routing;
1213
using Microsoft.AspNetCore.Routing;
1314
using Microsoft.Extensions.DependencyInjection;
1415
using Microsoft.Extensions.Options;
16+
using Utilities;
1517
using Utilities.Extensions;
1618

1719
/// <summary>
@@ -162,6 +164,8 @@ private void ExtractEndpointRoutes(Func<RequestDelegate, RequestDelegate> middle
162164
var allRouteEndpoints = endpointDataSource
163165
.Endpoints
164166
.OfType<RouteEndpoint>()
167+
.Where(route => route.Metadata.All(m =>
168+
Reflection.AreNotAssignable(typeof(IRouteTemplateProvider), m.GetType())))
165169
.OrderBy(route => route.Order)
166170
.ForEach(route =>
167171
{

src/MyTested.AspNetCore.Mvc.Abstractions/Internal/Application/TestApplicationRouter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ private static void PrepareApplicationAndRouting()
5252

5353
var attributeRoutingType = WebFramework.Internals.AttributeRouting;
5454

55-
if (routeBuilderRoutes[0].GetType() != attributeRoutingType)
55+
if (!routeBuilderRoutes[0].GetType().Name.StartsWith(nameof(Attribute)))
5656
{
5757
var createAttributeMegaRouteMethod = attributeRoutingType.GetMethod("CreateAttributeMegaRoute");
5858
var router = (IRouter)createAttributeMegaRouteMethod.Invoke(null, new[] { serviceProvider });

test/MyTested.AspNetCore.Mvc.Abstractions.Test/ServicesTests.cs

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ public void DefaultConfigAndAdditionalRoutesShouldSetOnlyThem()
301301
var setRoutes = TestApplication.Router as RouteCollection;
302302

303303
Assert.NotNull(setRoutes);
304-
Assert.Equal(1, setRoutes.Count);
304+
Assert.Equal(3, setRoutes.Count);
305305
}
306306

307307
[Fact]
@@ -406,7 +406,7 @@ public void WithCustomStartupAndAdditionalRoutesShouldWorkCorrectly()
406406
var routesCollection = TestApplication.Router as RouteCollection;
407407

408408
Assert.NotNull(routesCollection);
409-
Assert.Equal(1, routesCollection.Count);
409+
Assert.Equal(3, routesCollection.Count);
410410

411411
MyApplication.StartsFrom<DefaultStartup>();
412412
}
@@ -737,5 +737,37 @@ public void RegisteringServerServicesTwiceShouldResolveThemCorrectly()
737737

738738
MyApplication.StartsFrom<DefaultStartup>();
739739
}
740+
741+
[Fact]
742+
public void LegacyRoutesShouldHaveAttributeRouteRegistered()
743+
{
744+
MyApplication.StartsFrom<NoEndpointsStartup>();
745+
746+
var routes = TestApplication.Router as RouteCollection;
747+
748+
Assert.NotNull(routes);
749+
750+
var attributeRoute = routes[0];
751+
752+
Assert.NotNull(attributeRoute);
753+
Assert.Contains(nameof(Attribute), attributeRoute.GetType().Name);
754+
755+
MyApplication.StartsFrom<DefaultStartup>();
756+
}
757+
758+
[Fact]
759+
public void EndpointRoutesShouldHaveAttributeRouteRegistered()
760+
{
761+
MyApplication.StartsFrom<DefaultStartup>();
762+
763+
var routes = TestApplication.Router as RouteCollection;
764+
765+
Assert.NotNull(routes);
766+
767+
var attributeRoute = routes[0];
768+
769+
Assert.NotNull(attributeRoute);
770+
Assert.Contains(nameof(Attribute), attributeRoute.GetType().Name);
771+
}
740772
}
741773
}

0 commit comments

Comments
 (0)