Example #1
0
        public void TestGetUncommittedBlockHandle()
        {
            var uncommitedBlockId = TestOpenBlock();

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

            var getHandle = new GetUncommittedBlockHandle(1, 5, uncommitedBlockId);

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

            _inbox.TryWrite(messageAllocation);

            _controller.DoWork();

            _outbox.Next(); // because we did the TestOpenBlock in the beginning
            var result = _outbox.Peek();

            Assert.Equal(MessageType.BlockHandle, ClientServerMessage.GetMessageType(result));
            var response = MessageSerializers.ClientDeserializeBlockHandleResponse(result);

            Assert.Equal(1U, response.RequestId);
            Assert.Equal(5U, response.ClientId);
            Assert.Equal(_9, response.BlockHandle);
        }
Example #2
0
        public void SerializeDeserializeGetUBlockHandle()
        {
            var getUBlockHandle = new GetUncommittedBlockHandle(3, 4, new TempBlockId(new Hash128(987654321, 123456789)));

            MessageSerializers.ClientSerializeGetUncommittedBlockHandle(getUBlockHandle, _buffer);
            var newGetUBlockHandle = MessageSerializers.DeserializeGetUncommittedBlockHandle(_buffer);

            Assert.True(getUBlockHandle.ClientId == newGetUBlockHandle.ClientId &&
                        getUBlockHandle.RequestId == newGetUBlockHandle.RequestId &&
                        getUBlockHandle.RequestType == newGetUBlockHandle.RequestType &&
                        getUBlockHandle.UncommittedBlockId.Equals(newGetUBlockHandle.UncommittedBlockId));
        }
Example #3
0
        public static void ClientSerializeGetUncommittedBlockHandle(GetUncommittedBlockHandle getUncommittedBlockHandle,
                                                                    Span <byte> toWrite)
        {
            var editor = new SpanBinaryEditor(toWrite);

            var messageHeader = new MessageHeader(GetUncommittedBlockHandle.SizeInBytes,
                                                  getUncommittedBlockHandle.RequestId, getUncommittedBlockHandle.ClientId,
                                                  MessageInfo.FromType(getUncommittedBlockHandle.RequestType));

            WriteMessageHeader(ref messageHeader, ref editor);

            getUncommittedBlockHandle.UncommittedBlockId.WriteTo(ref editor);
        }
Example #4
0
        public void terab_utxo_get_uncommitted_block()
        {
            var blockUcid = terab_utxo_open_block();

            _socket.ExpectConnected(() => true);
            _socket.ExpectConnected(() => true);
            _socket.ExpectConnected(() => true);
            _socket.ExpectAvailable(() => GetUncommittedBlockHandle.SizeInBytes);

            _socket.ExpectReceive(data =>
            {
                data.Clear();
                Assert.True(data.Length >= GetUncommittedBlockHandle.SizeInBytes);

                var getUHandle = new GetUncommittedBlockHandle(1, 0, blockUcid);
                // Serialize message to put it into the inbox
                MessageSerializers.ClientSerializeGetUncommittedBlockHandle(getUHandle, data);

                return(GetUncommittedBlockHandle.SizeInBytes);
            });

            _socket.ExpectConnected(() => true);
            _socket.ExpectAvailable(() => 0);

            _socket.ExpectConnected(() => true);
            _socket.ExpectSend(data =>
            {
                Assert.Equal(BlockHandleResponse.SizeInBytes, data.Length);
                BlockHandleResponse response = MessageSerializers.ClientDeserializeBlockHandleResponse(data);
                Assert.Equal(BlockAlias.Genesis, response.BlockHandle);
                return(BlockHandleResponse.SizeInBytes);
            });

            _dispatcher.ListenToConnections();

            _controllerThread.DoWork();

            _dispatcher.SendResponses();

            _socket.ExpectAllDone();
        }