コード例 #1
0
        public void Get_headers_when_blocks_are_missing_at_the_end()
        {
            var headers = new BlockHeader[5];

            headers[0] = Build.A.BlockHeader.TestObject;
            headers[1] = Build.A.BlockHeader.TestObject;
            headers[2] = Build.A.BlockHeader.TestObject;

            _syncManager.FindHash(100).Returns(TestItem.KeccakA);
            _syncManager.FindHeaders(TestItem.KeccakA, 5, 1, true).Returns(headers);
            _syncManager.Head.Returns(_genesisBlock.Header);
            _syncManager.Genesis.Returns(_genesisBlock.Header);

            var msg = new GetBlockHeadersMessage();

            msg.StartBlockNumber = 100;
            msg.MaxHeaders       = 5;
            msg.Skip             = 1;
            msg.Reverse          = 1;

            HandleIncomingStatusMessage();
            HandleZeroMessage(msg, Eth62MessageCode.GetBlockHeaders);

            _session.Received().DeliverMessage(Arg.Is <BlockHeadersMessage>(bhm => bhm.BlockHeaders.Length == 3));
            _syncManager.Received().FindHash(100);
        }