Skip to content

Commit f8a52b8

Browse files
committed
Added tests related to new "Invoke" SignalR feature
1 parent 61c3a41 commit f8a52b8

File tree

8 files changed

+145
-4
lines changed

8 files changed

+145
-4
lines changed

TestsWithIHubContextSupport/TestsForIHubContextForGenericHub.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Threading.Tasks;
1+
using System.Threading;
2+
using System.Threading.Tasks;
23
using ExampleSignalRCoreProject.Hubs;
34
using ExampleSignalRCoreProject.Hubs.Interfaces;
45
using ExampleSignalRCoreProject.Services;
@@ -103,5 +104,19 @@ public async Task NotifyUsersAboutSomething_UsersNotifiedAboutSomethingAsync()
103104
.ClientsUsersMock
104105
.Verify(x => x.NotifyAboutSomethingElse(), Times.Once());
105106
}
107+
108+
[Test]
109+
public async Task GetMessageFromClient_MessageReceived()
110+
{
111+
var expectedMessage = "Pizza!";
112+
_unitTestingSupport
113+
.ClientsClientMock
114+
.Setup(x => x.GetMessage())
115+
.Returns(Task.FromResult(expectedMessage));
116+
117+
var message = await _service.GetMessageFromClient();
118+
119+
Assert.AreEqual(expectedMessage, message);
120+
}
106121
}
107122
}

TestsWithIHubContextSupport/TestsForIHubContextForNonGenericHub.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,23 @@ public async Task NotifyUsersAboutSomething_UsersNotifiedAboutSomething()
141141
It.IsAny<CancellationToken>()
142142
), Times.Once());
143143
}
144+
145+
[Test]
146+
public async Task GetMessageFromClient_MessageReceived()
147+
{
148+
var expectedMessage = "Pizza!";
149+
_unitTestingSupport
150+
.ClientsClientMock
151+
.Setup(x => x.InvokeCoreAsync<string>(
152+
ExampleNonGenericHub.GetMessageInvoke,
153+
Array.Empty<object>(),
154+
It.IsAny<CancellationToken>()))
155+
.Returns(Task.FromResult(expectedMessage));
156+
157+
var message = await _service.GetMessageFromClient();
158+
159+
Assert.AreEqual(expectedMessage, message);
160+
}
144161
}
145162
}
146163
#pragma warning restore SA1111 // Closing parenthesis should be on line of last parameter

TestsWithUnitTestingSupport/Hubs/ExampleHubTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,5 +250,21 @@ public async Task AddNoteWithLoremIpsumAsContentToDb_dbProviderIsInMemory_NoteAd
250250
var noteFromDb = DbInMemory.Note.FirstOrDefault();
251251
Assert.NotNull(noteFromDb);
252252
}
253+
254+
[Test]
255+
public async Task GetMessageFromClient_MessageReceived()
256+
{
257+
_exampleHub = new ExampleHub(DbInMemory);
258+
AssignToHubRequiredProperties(_exampleHub);
259+
260+
var expectedMessage = "Pizza!";
261+
ClientsClientMock
262+
.Setup(x => x.GetMessage())
263+
.Returns(Task.FromResult(expectedMessage));
264+
265+
var message = await _exampleHub.GetMessageFromClient();
266+
267+
Assert.AreEqual(expectedMessage, message);
268+
}
253269
}
254270
}

TestsWithUnitTestingSupport/Hubs/ExampleNonGenericHubTests.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Linq;
1+
using System;
2+
using System.Linq;
23
using System.Threading;
34
using System.Threading.Tasks;
45
using ExampleSignalRCoreProject.Databases;
@@ -205,5 +206,24 @@ public async Task NotifyUsersAboutSomething_UsersNotifiedAboutSomething()
205206
ClientsUsersMock
206207
.Verify(x => x.SendCoreAsync("NotifyUserAboutSomething", new object[] { }, It.IsAny<CancellationToken>()));
207208
}
209+
210+
[Test]
211+
public async Task GetMessageFromClient_MessageReceived()
212+
{
213+
_exampleHub = new ExampleNonGenericHub();
214+
AssignToHubRequiredProperties(_exampleHub);
215+
216+
var expectedMessage = "Pizza!";
217+
ClientsClientMock
218+
.Setup(x => x.InvokeCoreAsync<string>(
219+
ExampleNonGenericHub.GetMessageInvoke,
220+
Array.Empty<object>(),
221+
It.IsAny<CancellationToken>()))
222+
.Returns(Task.FromResult(expectedMessage));
223+
224+
var message = await _exampleHub.GetMessageFromClient();
225+
226+
Assert.AreEqual(expectedMessage, message);
227+
}
208228
}
209229
}

TestsWithUnitTestingSupportMSTest/Hubs/ExampleHubTests.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using ExampleSignalRCoreProject.Hubs;
55
using ExampleSignalRCoreProject.Hubs.Interfaces;
66
using ExampleSignalRCoreProject.Models;
7+
using Microsoft.AspNetCore.Routing;
78
using Microsoft.VisualStudio.TestTools.UnitTesting;
89
using Moq;
910
using SignalR_UnitTestingSupportMSTest.Hubs;
@@ -252,5 +253,21 @@ public async Task AddNoteWithLoremIpsumAsContentToDb_dbProviderIsInMemory_NoteAd
252253
var noteFromDb = DbInMemory.Note.FirstOrDefault();
253254
Assert.IsNotNull(noteFromDb);
254255
}
256+
257+
[TestMethod]
258+
public async Task GetMessageFromClient_MessageReceived()
259+
{
260+
_exampleHub = new ExampleHub(DbInMemory);
261+
AssignToHubRequiredProperties(_exampleHub);
262+
263+
var expectedMessage = "Pizza!";
264+
ClientsClientMock
265+
.Setup(x => x.GetMessage())
266+
.Returns(Task.FromResult(expectedMessage));
267+
268+
var message = await _exampleHub.GetMessageFromClient();
269+
270+
Assert.AreEqual(expectedMessage, message);
271+
}
255272
}
256273
}

TestsWithUnitTestingSupportMSTest/Hubs/ExampleNonGenericHubTests.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Linq;
1+
using System;
2+
using System.Linq;
23
using System.Threading;
34
using System.Threading.Tasks;
45
using ExampleSignalRCoreProject.Databases;
@@ -205,5 +206,24 @@ public async Task NotifyUsersAboutSomething_UsersNotifiedAboutSomething()
205206
ClientsUsersMock
206207
.Verify(x => x.SendCoreAsync("NotifyUserAboutSomething", System.Array.Empty<object>(), It.IsAny<CancellationToken>()));
207208
}
209+
210+
[TestMethod]
211+
public async Task GetMessageFromClient_MessageReceived()
212+
{
213+
_exampleHub = new ExampleNonGenericHub();
214+
AssignToHubRequiredProperties(_exampleHub);
215+
216+
var expectedMessage = "Pizza!";
217+
ClientsClientMock
218+
.Setup(x => x.InvokeCoreAsync<string>(
219+
ExampleNonGenericHub.GetMessageInvoke,
220+
Array.Empty<object>(),
221+
It.IsAny<CancellationToken>()))
222+
.Returns(Task.FromResult(expectedMessage));
223+
224+
var message = await _exampleHub.GetMessageFromClient();
225+
226+
Assert.AreEqual(expectedMessage, message);
227+
}
208228
}
209229
}

TestsWithUnitTestingSupportXUnit/Hubs/ExampleHubTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,5 +254,21 @@ public async Task AddNoteWithLoremIpsumAsContentToDb_dbProviderIsInMemory_NoteAd
254254
var noteFromDb = DbInMemory.Note.FirstOrDefault();
255255
Assert.NotNull(noteFromDb);
256256
}
257+
258+
[Fact]
259+
public async Task GetMessageFromClient_MessageReceived()
260+
{
261+
_exampleHub = new ExampleHub(DbInMemory);
262+
AssignToHubRequiredProperties(_exampleHub);
263+
264+
var expectedMessage = "Pizza!";
265+
ClientsClientMock
266+
.Setup(x => x.GetMessage())
267+
.Returns(Task.FromResult(expectedMessage));
268+
269+
var message = await _exampleHub.GetMessageFromClient();
270+
271+
Assert.Equal(expectedMessage, message);
272+
}
257273
}
258274
}

TestsWithUnitTestingSupportXUnit/Hubs/ExampleNonGenericHubTests.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Linq;
1+
using System;
2+
using System.Linq;
23
using System.Threading;
34
using System.Threading.Tasks;
45
using ExampleSignalRCoreProject.Databases;
@@ -209,5 +210,24 @@ public async Task NotifyUsersAboutSomething_UsersNotifiedAboutSomething()
209210
ClientsUsersMock
210211
.Verify(x => x.SendCoreAsync("NotifyUserAboutSomething", System.Array.Empty<object>(), It.IsAny<CancellationToken>()));
211212
}
213+
214+
[Fact]
215+
public async Task GetMessageFromClient_MessageReceived()
216+
{
217+
_exampleHub = new ExampleNonGenericHub();
218+
AssignToHubRequiredProperties(_exampleHub);
219+
220+
var expectedMessage = "Pizza!";
221+
ClientsClientMock
222+
.Setup(x => x.InvokeCoreAsync<string>(
223+
ExampleNonGenericHub.GetMessageInvoke,
224+
Array.Empty<object>(),
225+
It.IsAny<CancellationToken>()))
226+
.Returns(Task.FromResult(expectedMessage));
227+
228+
var message = await _exampleHub.GetMessageFromClient();
229+
230+
Assert.Equal(expectedMessage, message);
231+
}
212232
}
213233
}

0 commit comments

Comments
 (0)