public void TestAddBlock()
{
var fakeHeaders = new FakeHeaders();
var header0 = fakeHeaders.GenesisChained();
var header1 = fakeHeaders.NextChained();
var chainBuilder = new ChainBuilder();
// add header 0 and verify
chainBuilder.AddBlock(header0);
CollectionAssert.AreEqual(new[] { header0 }, chainBuilder.Blocks);
CollectionAssert.AreEquivalent(new Dictionary<UInt256, ChainedHeader> { { header0.Hash, header0 } }, chainBuilder.BlocksByHash);
// add header 1 and verify
chainBuilder.AddBlock(header1);
CollectionAssert.AreEqual(new[] { header0, header1 }, chainBuilder.Blocks);
CollectionAssert.AreEquivalent(new Dictionary<UInt256, ChainedHeader> { { header0.Hash, header0 }, { header1.Hash, header1 } }, chainBuilder.BlocksByHash);
}