From c616e7b6e4a6ed316cf243c141b1fbad67757ea0 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 2 Jun 2021 19:48:06 +0800 Subject: test: Finally find the right way to test signalr. --- .../IntegratedTests/TimelineHubTest.cs | 32 ++++++++++++---------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'BackEnd/Timeline.Tests') diff --git a/BackEnd/Timeline.Tests/IntegratedTests/TimelineHubTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/TimelineHubTest.cs index c9986177..9b28a648 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/TimelineHubTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/TimelineHubTest.cs @@ -34,6 +34,9 @@ namespace Timeline.Tests.IntegratedTests await using var connection = CreateConnection(token); + await connection.StartAsync(); + connection.State.Should().Be(HubConnectionState.Connected); + using SemaphoreSlim semaphore = new SemaphoreSlim(0); var changed = false; @@ -45,27 +48,28 @@ namespace Timeline.Tests.IntegratedTests semaphore.Release(); }); - await connection.StartAsync(); - connection.State.Should().Be(HubConnectionState.Connected); + await Task.Run(async () => + { + using var client = await CreateClientAsUser(); - using var client = await CreateClientAsUser(); + await client.TestPostAsync($"timelines/{generator(1)}/posts", TimelinePostTest.CreateTextPostRequest("aaa")); - await client.TestPostAsync($"timelines/{generator(1)}/posts", TimelinePostTest.CreateTextPostRequest("aaa")); - await semaphore.WaitAsync(); - changed.Should().BeFalse(); + changed.Should().BeFalse(); - await connection.InvokeAsync(nameof(TimelineHub.SubscribeTimelinePostChange), generator(1)); + await connection.InvokeAsync(nameof(TimelineHub.SubscribeTimelinePostChange), generator(1)); - await client.TestPostAsync($"timelines/{generator(1)}/posts", TimelinePostTest.CreateTextPostRequest("bbb")); - await semaphore.WaitAsync(); - changed.Should().BeTrue(); + await client.TestPostAsync($"timelines/{generator(1)}/posts", TimelinePostTest.CreateTextPostRequest("bbb")); + await semaphore.WaitAsync(); + changed.Should().BeTrue(); - changed = false; + changed = false; - await connection.InvokeAsync(nameof(TimelineHub.UnsubscribeTimelinePostChange), generator(1)); + await connection.InvokeAsync(nameof(TimelineHub.UnsubscribeTimelinePostChange), generator(1)); - await client.TestPostAsync($"timelines/{generator(1)}/posts", TimelinePostTest.CreateTextPostRequest("ccc")); - changed.Should().BeFalse(); + await client.TestPostAsync($"timelines/{generator(1)}/posts", TimelinePostTest.CreateTextPostRequest("ccc")); + changed.Should().BeFalse(); + + }); } [Fact] -- cgit v1.2.3