Example #1
0
        public void SerializeDeserializeIsAncestor()
        {
            var isAncestor = new IsAncestor(9947832, 89478310, new BlockAlias(702349), new BlockAlias(679));

            MessageSerializers.ClientSerializeIsAncestor(isAncestor, _buffer);
            var newIsAncestor = MessageSerializers.DeserializeIsAncestor(_buffer);

            Assert.True(isAncestor.ClientId == newIsAncestor.ClientId &&
                        isAncestor.RequestId == newIsAncestor.RequestId &&
                        isAncestor.RequestType == newIsAncestor.RequestType &&
                        isAncestor.BlockHandle == newIsAncestor.BlockHandle &&
                        isAncestor.MaybeAncestorHandle == newIsAncestor.MaybeAncestorHandle);
        }
Example #2
0
        public void TestIsAncestor()
        {
            Setup();

            var messageAllocation = new Span <byte>(new byte[IsAncestor.SizeInBytes]);

            var isAncestorReq = new IsAncestor(1, 5, _3, _1);

            // Serialize message to put it into the inbox
            MessageSerializers.ClientSerializeIsAncestor(isAncestorReq, messageAllocation);

            _inbox.TryWrite(messageAllocation);

            _controller.DoWork();

            var result = _outbox.Peek();

            Assert.Equal(MessageType.AncestorResponse, ClientServerMessage.GetMessageType(result));
            Assert.True(ClientServerMessage.TryGetLength(result, out int responseSize));
            Assert.Equal(AncestorResponse.SizeInBytes, responseSize);

            var response = MessageSerializers.ClientDeserializeAncestorResponse(result);

            Assert.Equal(1U, response.RequestId);
            Assert.Equal(5U, response.ClientId);
            Assert.True(response.Answer);

            // get a wrong ancestor
            isAncestorReq = new IsAncestor(1, 5, _3, _5);
            // Serialize message to put it into the inbox
            MessageSerializers.ClientSerializeIsAncestor(isAncestorReq, messageAllocation);

            _inbox.TryWrite(messageAllocation);

            _controller.DoWork();

            _outbox.Next();
            result = _outbox.Peek();
            var response2 = MessageSerializers.ClientDeserializeAncestorResponse(result);

            Assert.Equal(1U, response2.RequestId);
            Assert.Equal(5U, response2.ClientId);
            Assert.Equal(MessageType.AncestorResponse, response2.ResponseType);

            Assert.False(response2.Answer);
        }