@@ -42,57 +42,34 @@ public async Task CanRunOnNavigateAsync()
4242 {
4343 // Arrange
4444 var called = false ;
45- async Task OnNavigateAsync ( NavigationContext args )
45+ Action < NavigationContext > OnNavigateAsync = async ( NavigationContext args ) =>
4646 {
4747 await Task . CompletedTask ;
4848 called = true ;
49- }
50- _router . OnNavigateAsync = OnNavigateAsync ;
51-
52- // Act
53- await _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateWithRefreshAsync ( "http://example.com/jan" , false ) ) ;
54-
55- // Assert
56- Assert . True ( called ) ;
57- }
58-
59- [ Fact ]
60- public async Task CanHandleSingleFailedOnNavigateAsync ( )
61- {
62- // Arrange
63- var called = false ;
64- async Task OnNavigateAsync ( NavigationContext args )
65- {
66- called = true ;
67- await Task . CompletedTask ;
68- throw new Exception ( "This is an uncaught exception." ) ;
69- }
70- _router . OnNavigateAsync = OnNavigateAsync ;
49+ } ;
50+ _router . OnNavigateAsync = new EventCallback < NavigationContext > ( null , OnNavigateAsync ) ;
7151
7252 // Act
73- await _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateWithRefreshAsync ( "http://example.com/jan" , false ) ) ;
53+ await _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateAsync ( "http://example.com/jan" , false ) ) ;
7454
7555 // Assert
7656 Assert . True ( called ) ;
77- Assert . Single ( _renderer . HandledExceptions ) ;
78- var unhandledException = _renderer . HandledExceptions [ 0 ] ;
79- Assert . Equal ( "This is an uncaught exception." , unhandledException . Message ) ;
8057 }
8158
8259 [ Fact ]
8360 public async Task CanceledFailedOnNavigateAsyncDoesNothing ( )
8461 {
8562 // Arrange
8663 var onNavigateInvoked = 0 ;
87- async Task OnNavigateAsync ( NavigationContext args )
64+ Action < NavigationContext > OnNavigateAsync = async ( NavigationContext args ) =>
8865 {
8966 onNavigateInvoked += 1 ;
9067 if ( args . Path . EndsWith ( "jan" ) )
9168 {
9269 await Task . Delay ( Timeout . Infinite , args . CancellationToken ) ;
9370 throw new Exception ( "This is an uncaught exception." ) ;
9471 }
95- }
72+ } ;
9673 var refreshCalled = false ;
9774 _renderer . OnUpdateDisplay = ( renderBatch ) =>
9875 {
@@ -103,11 +80,11 @@ async Task OnNavigateAsync(NavigationContext args)
10380 }
10481 Assert . True ( false , "OnUpdateDisplay called more than once." ) ;
10582 } ;
106- _router . OnNavigateAsync = OnNavigateAsync ;
83+ _router . OnNavigateAsync = new EventCallback < NavigationContext > ( null , OnNavigateAsync ) ;
10784
10885 // Act
109- var janTask = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateWithRefreshAsync ( "http://example.com/jan" , false ) ) ;
110- var febTask = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateWithRefreshAsync ( "http://example.com/feb" , false ) ) ;
86+ var janTask = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateAsync ( "http://example.com/jan" , false ) ) ;
87+ var febTask = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateAsync ( "http://example.com/feb" , false ) ) ;
11188
11289 await janTask ;
11390 await febTask ;
@@ -117,34 +94,12 @@ async Task OnNavigateAsync(NavigationContext args)
11794 Assert . Equal ( 2 , onNavigateInvoked ) ;
11895 }
11996
120- [ Fact ]
121- public async Task CanHandleSingleCancelledOnNavigateAsync ( )
122- {
123- // Arrange
124- async Task OnNavigateAsync ( NavigationContext args )
125- {
126- var tcs = new TaskCompletionSource < int > ( ) ;
127- tcs . TrySetCanceled ( ) ;
128- await tcs . Task ;
129- }
130- _renderer . OnUpdateDisplay = ( renderBatch ) => Assert . True ( false , "OnUpdateDisplay called more than once." ) ;
131- _router . OnNavigateAsync = OnNavigateAsync ;
132-
133- // Act
134- await _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateWithRefreshAsync ( "http://example.com/jan" , false ) ) ;
135-
136- // Assert
137- Assert . Single ( _renderer . HandledExceptions ) ;
138- var unhandledException = _renderer . HandledExceptions [ 0 ] ;
139- Assert . Equal ( "OnNavigateAsync can only be cancelled via NavigateContext.CancellationToken." , unhandledException . Message ) ;
140- }
141-
14297 [ Fact ]
14398 public async Task AlreadyCanceledOnNavigateAsyncDoesNothing ( )
14499 {
145100 // Arrange
146101 var triggerCancel = new TaskCompletionSource ( ) ;
147- async Task OnNavigateAsync ( NavigationContext args )
102+ Action < NavigationContext > OnNavigateAsync = async ( NavigationContext args ) =>
148103 {
149104 if ( args . Path . EndsWith ( "jan" ) )
150105 {
@@ -153,7 +108,7 @@ async Task OnNavigateAsync(NavigationContext args)
153108 tcs . TrySetCanceled ( ) ;
154109 await tcs . Task ;
155110 }
156- }
111+ } ;
157112 var refreshCalled = false ;
158113 _renderer . OnUpdateDisplay = ( renderBatch ) =>
159114 {
@@ -164,11 +119,11 @@ async Task OnNavigateAsync(NavigationContext args)
164119 }
165120 Assert . True ( false , "OnUpdateDisplay called more than once." ) ;
166121 } ;
167- _router . OnNavigateAsync = OnNavigateAsync ;
122+ _router . OnNavigateAsync = new EventCallback < NavigationContext > ( null , OnNavigateAsync ) ;
168123
169124 // Act (start the operations then await them)
170- var jan = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateWithRefreshAsync ( "http://example.com/jan" , false ) ) ;
171- var feb = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateWithRefreshAsync ( "http://example.com/feb" , false ) ) ;
125+ var jan = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateAsync ( "http://example.com/jan" , false ) ) ;
126+ var feb = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateAsync ( "http://example.com/feb" , false ) ) ;
172127 triggerCancel . TrySetResult ( ) ;
173128
174129 await jan ;
@@ -180,16 +135,16 @@ public void CanCancelPreviousOnNavigateAsync()
180135 {
181136 // Arrange
182137 var cancelled = "" ;
183- async Task OnNavigateAsync ( NavigationContext args )
138+ Action < NavigationContext > OnNavigateAsync = async ( NavigationContext args ) =>
184139 {
185140 await Task . CompletedTask ;
186141 args . CancellationToken . Register ( ( ) => cancelled = args . Path ) ;
187142 } ;
188- _router . OnNavigateAsync = OnNavigateAsync ;
143+ _router . OnNavigateAsync = new EventCallback < NavigationContext > ( null , OnNavigateAsync ) ;
189144
190145 // Act
191- _ = _router . RunOnNavigateWithRefreshAsync ( "jan" , false ) ;
192- _ = _router . RunOnNavigateWithRefreshAsync ( "feb" , false ) ;
146+ _ = _router . RunOnNavigateAsync ( "jan" , false ) ;
147+ _ = _router . RunOnNavigateAsync ( "feb" , false ) ;
193148
194149 // Assert
195150 var expected = "jan" ;
@@ -200,7 +155,7 @@ async Task OnNavigateAsync(NavigationContext args)
200155 public async Task RefreshesOnceOnCancelledOnNavigateAsync ( )
201156 {
202157 // Arrange
203- async Task OnNavigateAsync ( NavigationContext args )
158+ Action < NavigationContext > OnNavigateAsync = async ( NavigationContext args ) =>
204159 {
205160 if ( args . Path . EndsWith ( "jan" ) )
206161 {
@@ -217,11 +172,11 @@ async Task OnNavigateAsync(NavigationContext args)
217172 }
218173 Assert . True ( false , "OnUpdateDisplay called more than once." ) ;
219174 } ;
220- _router . OnNavigateAsync = OnNavigateAsync ;
175+ _router . OnNavigateAsync = new EventCallback < NavigationContext > ( null , OnNavigateAsync ) ;
221176
222177 // Act
223- var jan = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateWithRefreshAsync ( "http://example.com/jan" , false ) ) ;
224- var feb = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateWithRefreshAsync ( "http://example.com/feb" , false ) ) ;
178+ var jan = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateAsync ( "http://example.com/jan" , false ) ) ;
179+ var feb = _renderer . Dispatcher . InvokeAsync ( ( ) => _router . RunOnNavigateAsync ( "http://example.com/feb" , false ) ) ;
225180
226181 await jan ;
227182 await feb ;
0 commit comments