diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStreamableHttpTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStreamableHttpTests.cs index 19b8b86c7..2c6d3e127 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStreamableHttpTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStreamableHttpTests.cs @@ -462,11 +462,7 @@ public async Task DisposeAsync_DoesNotHang_WhenOwnsSessionIsFalse() // This should not hang. The issue reports that DisposeAsync hangs indefinitely // when OwnsSession is false. Use a timeout to detect the hang. - var disposeTask = client.DisposeAsync().AsTask(); - var completedTask = await Task.WhenAny(disposeTask, Task.Delay(TimeSpan.FromSeconds(10), TestContext.Current.CancellationToken)); - - Assert.True(disposeTask == completedTask, "DisposeAsync hung when OwnsSession was false."); - await disposeTask; // Observe any exceptions + await client.DisposeAsync().AsTask().WaitAsync(TimeSpan.FromSeconds(10), TestContext.Current.CancellationToken); } [Fact] @@ -530,10 +526,6 @@ public async Task DisposeAsync_DoesNotHang_WhenOwnsSessionIsFalse_WithUnsolicite await Task.Delay(100, TestContext.Current.CancellationToken); // Dispose should still not hang - var disposeTask = client.DisposeAsync().AsTask(); - var completedTask = await Task.WhenAny(disposeTask, Task.Delay(TimeSpan.FromSeconds(10), TestContext.Current.CancellationToken)); - - Assert.True(disposeTask == completedTask, "DisposeAsync hung when OwnsSession was false after receiving unsolicited messages."); - await disposeTask; + await client.DisposeAsync().AsTask().WaitAsync(TimeSpan.FromSeconds(10), TestContext.Current.CancellationToken); } } diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs index a490ff002..296af1c95 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs @@ -366,11 +366,7 @@ public async Task DisposeAsync_DoesNotHang_WhenOwnsSessionIsFalse_WithActiveGetS await getRequestReceived.Task.WaitAsync(TestConstants.DefaultTimeout, TestContext.Current.CancellationToken); // Dispose should not hang even though the GET stream is actively open - var disposeTask = client.DisposeAsync().AsTask(); - var completedTask = await Task.WhenAny(disposeTask, Task.Delay(TimeSpan.FromSeconds(10), TestContext.Current.CancellationToken)); - - Assert.True(disposeTask == completedTask, "DisposeAsync hung with OwnsSession=false and active GET stream."); - await disposeTask; + await client.DisposeAsync().AsTask().WaitAsync(TimeSpan.FromSeconds(10), TestContext.Current.CancellationToken); } }