17
17
using Microsoft . AspNetCore . Hosting . Server . Features ;
18
18
using Microsoft . AspNetCore . Http ;
19
19
using Microsoft . AspNetCore . Http . Features ;
20
+ using Microsoft . AspNetCore . Http . Metadata ;
20
21
using Microsoft . AspNetCore . Routing ;
21
22
using Microsoft . AspNetCore . Routing . Constraints ;
22
23
using Microsoft . AspNetCore . TestHost ;
@@ -2536,7 +2537,7 @@ private sealed class TestDebugger : IDebugger
2536
2537
}
2537
2538
2538
2539
[ Fact ]
2539
- public void UseMiddleware_DebugView_HasMiddleware ( )
2540
+ public void DebugView_UseMiddleware_HasMiddleware ( )
2540
2541
{
2541
2542
var builder = WebApplication . CreateBuilder ( ) ;
2542
2543
builder . Services . AddSingleton < IDebugger > ( new TestDebugger ( true ) ) ;
@@ -2561,13 +2562,13 @@ public void UseMiddleware_DebugView_HasMiddleware()
2561
2562
m => Assert . Equal ( "Microsoft.AspNetCore.Authentication.AuthenticationMiddleware" , m ) ,
2562
2563
m =>
2563
2564
{
2564
- Assert . Contains ( nameof ( UseMiddleware_DebugView_HasMiddleware ) , m ) ;
2565
+ Assert . Contains ( nameof ( DebugView_UseMiddleware_HasMiddleware ) , m ) ;
2565
2566
Assert . DoesNotContain ( nameof ( RequestDelegate ) , m ) ;
2566
2567
} ) ;
2567
2568
}
2568
2569
2569
2570
[ Fact ]
2570
- public void NoDebugger_DebugView_NoMiddleware ( )
2571
+ public void DebugView_NoDebugger_NoMiddleware ( )
2571
2572
{
2572
2573
var builder = WebApplication . CreateBuilder ( ) ;
2573
2574
builder . Services . AddSingleton < IDebugger > ( new TestDebugger ( false ) ) ;
@@ -2587,7 +2588,7 @@ public void NoDebugger_DebugView_NoMiddleware()
2587
2588
}
2588
2589
2589
2590
[ Fact ]
2590
- public async Task UseMiddleware_HasEndpointsAndAuth_Run_DebugView_HasAutomaticMiddleware ( )
2591
+ public async Task DebugView_UseMiddleware_HasEndpointsAndAuth_Run_HasAutomaticMiddleware ( )
2591
2592
{
2592
2593
var builder = WebApplication . CreateBuilder ( ) ;
2593
2594
builder . WebHost . UseTestServer ( ) ;
@@ -2615,7 +2616,7 @@ public async Task UseMiddleware_HasEndpointsAndAuth_Run_DebugView_HasAutomaticMi
2615
2616
}
2616
2617
2617
2618
[ Fact ]
2618
- public async Task NoMiddleware_Run_DebugView_HasAutomaticMiddleware ( )
2619
+ public async Task DebugView_NoMiddleware_Run_HasAutomaticMiddleware ( )
2619
2620
{
2620
2621
var builder = WebApplication . CreateBuilder ( ) ;
2621
2622
builder . WebHost . UseTestServer ( ) ;
@@ -2633,7 +2634,7 @@ public async Task NoMiddleware_Run_DebugView_HasAutomaticMiddleware()
2633
2634
}
2634
2635
2635
2636
[ Fact ]
2636
- public void NestedMiddleware_DebugView_OnlyContainsTopLevelMiddleware ( )
2637
+ public void DebugView_NestedMiddleware_OnlyContainsTopLevelMiddleware ( )
2637
2638
{
2638
2639
var builder = WebApplication . CreateBuilder ( ) ;
2639
2640
builder . Services . AddSingleton < IDebugger > ( new TestDebugger ( true ) ) ;
@@ -2655,6 +2656,50 @@ public void NestedMiddleware_DebugView_OnlyContainsTopLevelMiddleware()
2655
2656
Assert . Equal ( 3 , debugView . Middleware . Count ) ;
2656
2657
}
2657
2658
2659
+ [ Fact ]
2660
+ public async Task DebugView_Endpoints_AvailableBeforeAndAfterStart ( )
2661
+ {
2662
+ var builder = WebApplication . CreateBuilder ( ) ;
2663
+
2664
+ await using var app = builder . Build ( ) ;
2665
+ app . MapGet ( "/hello" , ( ) => "hello world" ) ;
2666
+
2667
+ var debugView = new WebApplication . WebApplicationDebugView ( app ) ;
2668
+
2669
+ Assert . Collection ( debugView . Endpoints ,
2670
+ ep => Assert . Equal ( "/hello" , ep . Metadata . GetRequiredMetadata < IRouteDiagnosticsMetadata > ( ) . Route ) ) ;
2671
+
2672
+ // Starting the app registers endpoint data sources with routing.
2673
+ _ = app . RunAsync ( ) ;
2674
+
2675
+ Assert . Collection ( debugView . Endpoints ,
2676
+ ep => Assert . Equal ( "/hello" , ep . Metadata . GetRequiredMetadata < IRouteDiagnosticsMetadata > ( ) . Route ) ) ;
2677
+ }
2678
+
2679
+ [ Fact ]
2680
+ public async Task DebugView_Endpoints_UseEndpoints_AvailableBeforeAndAfterStart ( )
2681
+ {
2682
+ var builder = WebApplication . CreateBuilder ( ) ;
2683
+
2684
+ await using var app = builder . Build ( ) ;
2685
+ app . UseRouting ( ) ;
2686
+ app . UseEndpoints ( endpoints =>
2687
+ {
2688
+ endpoints . MapGet ( "/hello" , ( ) => "hello world" ) ;
2689
+ } ) ;
2690
+
2691
+ var debugView = new WebApplication . WebApplicationDebugView ( app ) ;
2692
+
2693
+ Assert . Collection ( debugView . Endpoints ,
2694
+ ep => Assert . Equal ( "/hello" , ep . Metadata . GetRequiredMetadata < IRouteDiagnosticsMetadata > ( ) . Route ) ) ;
2695
+
2696
+ // Starting the app registers endpoint data sources with routing.
2697
+ _ = app . RunAsync ( ) ;
2698
+
2699
+ Assert . Collection ( debugView . Endpoints ,
2700
+ ep => Assert . Equal ( "/hello" , ep . Metadata . GetRequiredMetadata < IRouteDiagnosticsMetadata > ( ) . Route ) ) ;
2701
+ }
2702
+
2658
2703
private class MiddlewareWithInterface : IMiddleware
2659
2704
{
2660
2705
public Task InvokeAsync ( HttpContext context , RequestDelegate next )
0 commit comments