Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using Diligent.WebAPI.Host.Hubs;
  2. using Microsoft.AspNetCore.SignalR;
  3. using Moq;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace Tests
  10. {
  11. [TestFixture]
  12. public class ConnectionHubTests
  13. {
  14. private Mock<IHubCallerClients> _mockClients;
  15. private Mock<IClientProxy> _mockClientProxy;
  16. private ConnectionHub _connectionHub;
  17. [SetUp]
  18. public void SetUp()
  19. {
  20. _mockClients = new Mock<IHubCallerClients>();
  21. _mockClientProxy = new Mock<IClientProxy>();
  22. _connectionHub = new ConnectionHub()
  23. {
  24. Clients = _mockClients.Object
  25. };
  26. }
  27. [Test]
  28. public async Task SignalR_OnConnect_ShouldReturnMessage()
  29. {
  30. // Arrange
  31. _mockClients.Setup(clients => clients.Others).Returns(_mockClientProxy.Object);
  32. // Act
  33. await _connectionHub.Unsubscribe(new SenderObj { ConnId = "aaa", Id = "1" });
  34. // Assert
  35. _mockClients.Verify(clients => clients.Others, Times.Once);
  36. _mockClientProxy.Verify(clientProxy =>
  37. clientProxy.SendCoreAsync("Notify", It.Is<object[]>(o => o != null && o.Length == 1 && ((StatusMessage)o[0]).Id == "1" && ((StatusMessage)o[0]).M == "unsubscription"),
  38. default(CancellationToken)),
  39. Times.Once);
  40. }
  41. }
  42. }