public bool NoDownloadRequested(ConnectedHeaders connectedHeaders) { Assert.NotNull(connectedHeaders); return((connectedHeaders.DownloadTo == null) && (connectedHeaders.DownloadFrom == null)); }
public void ConnectHeaders_HeadersFromTwoPeers_ShouldCreateTwoPeerTips() { var testContext = new TestContext(); ChainedHeaderTree chainedHeaderTree = testContext.CreateChainedHeaderTree(); ChainedHeader chainTip = testContext.ExtendAChain(10); chainedHeaderTree.Initialize(chainTip); List <BlockHeader> listOfExistingHeaders = testContext.ChainedHeaderToList(chainTip, 4); ConnectedHeaders connectedHeaders1 = chainedHeaderTree.ConnectNewHeaders(1, listOfExistingHeaders); ConnectedHeaders connectedHeaders2 = chainedHeaderTree.ConnectNewHeaders(2, listOfExistingHeaders); Assert.Single(chainedHeaderTree.GetPeerIdsByTipHash()); Assert.Equal(11, chainedHeaderTree.GetChainedHeadersByHash().Count); Assert.Equal(3, chainedHeaderTree.GetPeerIdsByTipHash().First().Value.Count); Assert.Equal(ChainedHeaderTree.LocalPeerId, chainedHeaderTree.GetPeerIdsByTipHash().First().Value.ElementAt(0)); Assert.Equal(1, chainedHeaderTree.GetPeerIdsByTipHash().First().Value.ElementAt(1)); Assert.Equal(2, chainedHeaderTree.GetPeerIdsByTipHash().First().Value.ElementAt(2)); Assert.True(testContext.NoDownloadRequested(connectedHeaders1)); Assert.True(testContext.NoDownloadRequested(connectedHeaders2)); }
public void ConnectHeaders_NoNewHeadersToConnect_ShouldReturnNothingToDownload() { var testContext = new TestContext(); ChainedHeaderTree chainedHeaderTree = testContext.CreateChainedHeaderTree(); ChainedHeader chainTip = testContext.ExtendAChain(10); chainedHeaderTree.Initialize(chainTip); List <BlockHeader> listOfExistingHeaders = testContext.ChainedHeaderToList(chainTip, 4); ConnectedHeaders connectedHeaders = chainedHeaderTree.ConnectNewHeaders(1, listOfExistingHeaders); Assert.True(testContext.NoDownloadRequested(connectedHeaders)); Assert.Equal(11, chainedHeaderTree.GetChainedHeadersByHash().Count); }