public void TestUnconnectedBlocks()
{
var b1 = _unitTestParams.GenesisBlock.CreateNextBlock(_coinbaseTo);
var b2 = b1.CreateNextBlock(_coinbaseTo);
var b3 = b2.CreateNextBlock(_coinbaseTo);
// Connected.
Assert.IsTrue(_chain.Add(b1));
// Unconnected but stored. The head of the chain is still b1.
Assert.IsFalse(_chain.Add(b3));
Assert.AreEqual(_chain.ChainHead.Header, b1.CloneAsHeader());
// Add in the middle block.
Assert.IsTrue(_chain.Add(b2));
Assert.AreEqual(_chain.ChainHead.Header, b3.CloneAsHeader());
}