Skip to content

Commit cdf9eb0

Browse files
committed
Add regression test for client return from IHubContext<THub, T>.Clients
1 parent 528088d commit cdf9eb0

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

src/SignalR/server/SignalR/test/HubConnectionHandlerTestUtils/Hubs.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ public Task SendToCaller(string message)
440440
}
441441
}
442442

443-
public class HubT : Hub<Test>
443+
public class HubT : Hub<ITest>
444444
{
445445
public override Task OnConnectedAsync()
446446
{
@@ -526,7 +526,7 @@ public Task SendToCaller(string message)
526526
}
527527
}
528528

529-
public interface Test
529+
public interface ITest
530530
{
531531
Task Send(string message);
532532
Task Broadcast(string message);

src/SignalR/server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -145,26 +145,32 @@ public async Task CanUseClientResultsWithIHubContextT()
145145
var connectionHandler = serviceProvider.GetService<HubConnectionHandler<HubT>>();
146146

147147
using var client = new TestClient();
148+
var connectionId = client.Connection.ConnectionId;
148149

149150
var connectionHandlerTask = await client.ConnectAsync(connectionHandler);
150151

151152
// Wait for a connection, or for the endpoint to fail.
152153
await client.Connected.OrThrowIfOtherFails(connectionHandlerTask).DefaultTimeout();
153154

154-
var context = serviceProvider.GetRequiredService<IHubContext<HubT, Test>>();
155-
var resultTask = context.Clients.Single(client.Connection.ConnectionId).GetClientResult(1);
155+
var context = serviceProvider.GetRequiredService<IHubContext<HubT, ITest>>();
156156

157-
var message = await client.ReadAsync().DefaultTimeout();
158-
var invocation = Assert.IsType<InvocationMessage>(message);
157+
async Task AssertClientResult(Task<int> resultTask)
158+
{
159+
var message = await client.ReadAsync().DefaultTimeout();
160+
var invocation = Assert.IsType<InvocationMessage>(message);
159161

160-
Assert.Single(invocation.Arguments);
161-
Assert.Equal(1L, invocation.Arguments[0]);
162-
Assert.Equal("GetClientResult", invocation.Target);
162+
Assert.Single(invocation.Arguments);
163+
Assert.Equal(1L, invocation.Arguments[0]);
164+
Assert.Equal("GetClientResult", invocation.Target);
163165

164-
await client.SendHubMessageAsync(CompletionMessage.WithResult(invocation.InvocationId, 2)).DefaultTimeout();
166+
await client.SendHubMessageAsync(CompletionMessage.WithResult(invocation.InvocationId, 2)).DefaultTimeout();
165167

166-
var result = await resultTask.DefaultTimeout();
167-
Assert.Equal(2, result);
168+
var result = await resultTask.DefaultTimeout();
169+
Assert.Equal(2, result);
170+
}
171+
172+
await AssertClientResult(context.Clients.Single(connectionId).GetClientResult(1));
173+
await AssertClientResult(context.Clients.Client(connectionId).GetClientResult(1));
168174
}
169175
}
170176
}

0 commit comments

Comments
 (0)