public async Task SendMessageEvent_WhenMessageIsReceived() { await client.Start(ip, port); IAdminMessage msg = new AdminServerPongMessage(32u); IAdminMessage received = null; client.MessageReceived += (_, r) => received = r; receiverMock.Raise(x => x.MessageReceived += null, this, msg); Assert.Equal(msg, received); }
public async Task ErrorOut_WhenPongMsgArgumentIsNotMatchingPing() { var dog = new ConnectionWatchdog(TimeSpan.FromSeconds(0.1)); Exception e = null; dog.Errored += (_, ex) => e = ex; tcpClientMock.Setup(x => x.SendMessage(It.IsAny <IAdminMessage>())) .Callback((IAdminMessage msg) => { var pingMsg = (AdminPingMessage)msg; var pongMsg = new AdminServerPongMessage(pingMsg.Argument + 1); tcpClientMock.Object.SimulateMessageReceived(pongMsg); }); dog.Start(tcpClientMock.Object); await Task.Delay(TimeSpan.FromSeconds(1)); Assert.NotNull(e); Assert.False(dog.Enabled); }
public async Task BeAbleToStartAgain_AndWorkCorrect() { var dog = new ConnectionWatchdog(TimeSpan.FromSeconds(0.1)); Exception e = null; dog.Errored += (_, ex) => e = ex; dog.Start(tcpClientMock.Object); dog.Stop(); dog.Start(tcpClientMock.Object); tcpClientMock.Setup(x => x.SendMessage(It.IsAny <IAdminMessage>())) .Callback((IAdminMessage msg) => { var pingMsg = (AdminPingMessage)msg; var pongMsg = new AdminServerPongMessage(pingMsg.Argument); tcpClientMock.Object.SimulateMessageReceived(pongMsg); }); await Task.Delay(TimeSpan.FromSeconds(1)); Assert.Null(e); Assert.True(dog.Enabled); }