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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }