@@ -9,7 +9,7 @@ namespace Aspire.Hosting.Tests.Dashboard;
99
1010public class ResourcePublisherTests
1111{
12- [ Fact ( Skip = "Passes locally but fails in CI. https://github.com/dotnet/aspire/issues/1410" ) ]
12+ [ Fact ]
1313 public async Task ProducesExpectedSnapshotAndUpdates ( )
1414 {
1515 CancellationTokenSource cts = new ( ) ;
@@ -19,8 +19,8 @@ public async Task ProducesExpectedSnapshotAndUpdates()
1919 var b = CreateResourceSnapshot ( "B" ) ;
2020 var c = CreateResourceSnapshot ( "C" ) ;
2121
22- await publisher . IntegrateAsync ( a , new TestResource ( "A" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
23- await publisher . IntegrateAsync ( b , new TestResource ( "B" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
22+ await publisher . IntegrateAsync ( new TestResource ( "A" ) , a , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
23+ await publisher . IntegrateAsync ( new TestResource ( "B" ) , b , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
2424
2525 Assert . Equal ( 0 , publisher . OutgoingSubscriberCount ) ;
2626
@@ -32,29 +32,32 @@ public async Task ProducesExpectedSnapshotAndUpdates()
3232 Assert . Single ( snapshot . Where ( s => s . Name == "A" ) ) ;
3333 Assert . Single ( snapshot . Where ( s => s . Name == "B" ) ) ;
3434
35- using AutoResetEvent sync = new ( initialState : false ) ;
36- List < IReadOnlyList < ResourceSnapshotChange > > changeBatches = [ ] ;
35+ var tcs = new TaskCompletionSource < IReadOnlyList < ResourceSnapshotChange > > ( TaskCreationOptions . RunContinuationsAsynchronously ) ;
3736
3837 var task = Task . Run ( async ( ) =>
3938 {
4039 await foreach ( var change in subscription )
4140 {
42- changeBatches . Add ( change ) ;
43- sync . Set ( ) ;
41+ tcs . TrySetResult ( change ) ;
4442 }
4543 } ) ;
4644
47- await publisher . IntegrateAsync ( c , new TestResource ( "C" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
48-
49- Assert . True ( sync . WaitOne ( TimeSpan . FromSeconds ( 1 ) ) ) ;
45+ await publisher . IntegrateAsync ( new TestResource ( "C" ) , c , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
5046
51- var change = Assert . Single ( changeBatches . SelectMany ( o => o ) ) ;
47+ var change = Assert . Single ( await tcs . Task ) ;
5248 Assert . Equal ( ResourceSnapshotChangeType . Upsert , change . ChangeType ) ;
5349 Assert . Equal ( "C" , change . Resource . Name ) ;
5450
5551 await cts . CancelAsync ( ) ;
5652
57- await Assert . ThrowsAsync < OperationCanceledException > ( ( ) => task ) ;
53+ try
54+ {
55+ await task ;
56+ }
57+ catch ( OperationCanceledException )
58+ {
59+ // Ignore possible cancellation error.
60+ }
5861
5962 Assert . Equal ( 0 , publisher . OutgoingSubscriberCount ) ;
6063 }
@@ -69,8 +72,8 @@ public async Task SupportsMultipleSubscribers()
6972 var b = CreateResourceSnapshot ( "B" ) ;
7073 var c = CreateResourceSnapshot ( "C" ) ;
7174
72- await publisher . IntegrateAsync ( a , new TestResource ( "A" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
73- await publisher . IntegrateAsync ( b , new TestResource ( "B" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
75+ await publisher . IntegrateAsync ( new TestResource ( "A" ) , a , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
76+ await publisher . IntegrateAsync ( new TestResource ( "B" ) , b , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
7477
7578 Assert . Equal ( 0 , publisher . OutgoingSubscriberCount ) ;
7679
@@ -82,7 +85,7 @@ public async Task SupportsMultipleSubscribers()
8285 Assert . Equal ( 2 , snapshot1 . Length ) ;
8386 Assert . Equal ( 2 , snapshot2 . Length ) ;
8487
85- await publisher . IntegrateAsync ( c , new TestResource ( "C" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
88+ await publisher . IntegrateAsync ( new TestResource ( "C" ) , c , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
8689
8790 var enumerator1 = subscription1 . GetAsyncEnumerator ( cts . Token ) ;
8891 var enumerator2 = subscription2 . GetAsyncEnumerator ( cts . Token ) ;
@@ -116,9 +119,9 @@ public async Task MergesResourcesInSnapshot()
116119 var a2 = CreateResourceSnapshot ( "A" ) ;
117120 var a3 = CreateResourceSnapshot ( "A" ) ;
118121
119- await publisher . IntegrateAsync ( a1 , new TestResource ( "A" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
120- await publisher . IntegrateAsync ( a2 , new TestResource ( "A" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
121- await publisher . IntegrateAsync ( a3 , new TestResource ( "A" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
122+ await publisher . IntegrateAsync ( new TestResource ( "A" ) , a1 , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
123+ await publisher . IntegrateAsync ( new TestResource ( "A" ) , a2 , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
124+ await publisher . IntegrateAsync ( new TestResource ( "A" ) , a3 , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
122125
123126 var ( snapshot , _) = publisher . Subscribe ( ) ;
124127
@@ -136,9 +139,9 @@ public async Task DeletesRemoveFromSnapshot()
136139 var a = CreateResourceSnapshot ( "A" ) ;
137140 var b = CreateResourceSnapshot ( "B" ) ;
138141
139- await publisher . IntegrateAsync ( a , new TestResource ( "A" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
140- await publisher . IntegrateAsync ( b , new TestResource ( "B" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
141- await publisher . IntegrateAsync ( a , new TestResource ( "A" ) , ResourceSnapshotChangeType . Delete ) . ConfigureAwait ( false ) ;
142+ await publisher . IntegrateAsync ( new TestResource ( "A" ) , a , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
143+ await publisher . IntegrateAsync ( new TestResource ( "B" ) , b , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
144+ await publisher . IntegrateAsync ( new TestResource ( "A" ) , a , ResourceSnapshotChangeType . Delete ) . ConfigureAwait ( false ) ;
142145
143146 var ( snapshot , _) = publisher . Subscribe ( ) ;
144147
@@ -170,7 +173,7 @@ public async Task CancelledSubscriptionIsCleanedUp()
170173 } ) ;
171174
172175 // Push through an update.
173- await publisher . IntegrateAsync ( CreateResourceSnapshot ( "A" ) , new TestResource ( "A" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
176+ await publisher . IntegrateAsync ( new TestResource ( "A" ) , CreateResourceSnapshot ( "A" ) , ResourceSnapshotChangeType . Upsert ) . ConfigureAwait ( false ) ;
174177
175178 // Let the subscriber exit.
176179 await task ;
0 commit comments