public async Task OnDisconnectedAsync_ShouldInvokeBackplane_OnClientDisconnectedAsync() { var sut = new HubWebSocketHandler <DefaultHub>(Mocker.ServiceProviderMock.Object, Mocker.LoggerFactoryMock.Object); var connectionId = Guid.NewGuid().ToString(); var connection = new SocketConnection(connectionId, Mocker.ChannelMock.Object); await sut.OnDisconnectedAsync(connection, null); Mocker.BackplaneMock.Verify(m => m.OnClientDisconnectedAsync(connectionId), Times.Once); }
private async Task <Connection> CreateHubConnectionFromSocket(HubWebSocketHandler <TestHub> actualHub, LinkedFakeSocket webSocket) { var connection = await actualHub.OnConnected(webSocket, new DefaultHttpContext()); // Receive the connection message var connectMessage = await ReadMessageFromSocketAsync(webSocket); Assert.NotNull(connectMessage); Assert.NotNull(connectMessage.Data); Assert.NotNull(Guid.Parse(connectMessage.Data)); return(connection); }
public async Task OnDisconnectedAsync_ShouldInvokeHubCreateAndRelease() { var sut = new HubWebSocketHandler <DefaultHub>(Mocker.ServiceProviderMock.Object, Mocker.LoggerFactoryMock.Object); var connection = new SocketConnection(Guid.NewGuid().ToString(), Mocker.ChannelMock.Object); await sut.OnDisconnectedAsync(connection, null); var defaultHubActivatorMock = Mocker.GetHubActivator <DefaultHub>(); defaultHubActivatorMock.Verify(m => m.Create(), Times.Once); defaultHubActivatorMock.Verify(m => m.Release(It.IsAny <DefaultHub>()), Times.Once); }
public async Task OnDisconnectedAsync_Throws_ShouldInvokeBackplane_OnClientDisconnectedAsync() { var sut = new HubWebSocketHandler <FailHub>(Mocker.ServiceProviderMock.Object, Mocker.LoggerFactoryMock.Object); var connectionId = Guid.NewGuid().ToString(); var connection = new SocketConnection(connectionId, Mocker.ChannelMock.Object); await Assert.ThrowsAsync <NotSupportedException>(async() => { await sut.OnDisconnectedAsync(connection, null); }); Mocker.BackplaneMock.Verify(m => m.OnClientDisconnectedAsync(connectionId), Times.Once); }
public async Task OnConnectedAsync_ReleaseShouldBeInvoked_IfHubOnConnectedAsyncThrows() { var sut = new HubWebSocketHandler <FailHub>(Mocker.ServiceProviderMock.Object, Mocker.LoggerFactoryMock.Object); var connection = new SocketConnection(Guid.NewGuid().ToString(), Mocker.ChannelMock.Object); await Assert.ThrowsAsync <NotSupportedException>(async() => { await sut.OnConnectedAsync(connection); }); var failHubActivatorMock = Mocker.GetHubActivator <FailHub>(); failHubActivatorMock.Verify(m => m.Release(It.IsAny <FailHub>()), Times.Once); }
public void Construction_ShouldNotThrow() { var sut = new HubWebSocketHandler <DefaultHub>(Mocker.ServiceProviderMock.Object, Mocker.LoggerFactoryMock.Object); }