public void FromByteArray_Returns_Expected_Data() { var msg = new MessageBuilder() .WriteCode(MessageCode.Distributed.Ping) .Build(); var ex = Record.Exception(() => DistributedPingRequest.FromByteArray(msg)); Assert.Null(ex); }
public void ToByteArray_Constructs_The_Correct_Message() { var msg = new DistributedPingRequest().ToByteArray(); var reader = new MessageReader <MessageCode.Distributed>(msg); var code = reader.ReadCode(); Assert.Equal(MessageCode.Distributed.Ping, code); Assert.Equal(4 + 1, msg.Length); }
public void FromByteArray_Throws_MessageException_On_Code_Mismatch() { var msg = new MessageBuilder() .WriteCode(MessageCode.Distributed.BranchLevel) .WriteInteger(1) .Build(); var ex = Record.Exception(() => DistributedPingRequest.FromByteArray(msg)); Assert.NotNull(ex); Assert.IsType <MessageException>(ex); }
public void HandleChildMessageRead_Responds_To_Ping_From_EventArgs(int token) { var(handler, mocks) = GetFixture(); mocks.Client.Setup(m => m.GetNextToken()) .Returns(token); var conn = new Mock <IMessageConnection>(); var message = new DistributedPingRequest().ToByteArray(); handler.HandleChildMessageRead(conn.Object, new MessageEventArgs(message)); conn.Verify(m => m.WriteAsync(It.Is <IOutgoingMessage>(msg => msg.ToByteArray().Matches(new DistributedPingResponse(token).ToByteArray())), It.IsAny <CancellationToken?>()), Times.Once); }
public void HandleChildMessageRead_Produces_Warning_On_Exception(int token) { var(handler, mocks) = GetFixture(); mocks.Client.Setup(m => m.GetNextToken()) .Returns(token); var conn = new Mock <IMessageConnection>(); conn.Setup(m => m.WriteAsync(It.IsAny <IOutgoingMessage>(), It.IsAny <CancellationToken?>())) .Returns(Task.FromException(new Exception())); var message = new DistributedPingRequest().ToByteArray(); handler.HandleChildMessageRead(conn.Object, message); mocks.Diagnostic.Verify(m => m.Warning(It.Is <string>(s => s.ContainsInsensitive("error handling distributed child message")), It.IsAny <Exception>()), Times.Once); }