public void TestNavigateTowardsEmpty()
{
// create chain
var fakeHeaders = new FakeHeaders();
var header0 = fakeHeaders.GenesisChained();
var header1 = fakeHeaders.NextChained();
var header2 = fakeHeaders.NextChained();
var chainEmpty = new ChainBuilder().ToImmutable();
var chain = new ChainBuilder(new[] { header0, header1, header2 }).ToImmutable();
// verify chaining to empty does nothing
Assert.AreEqual(0, chainEmpty.NavigateTowards(chainEmpty).Count());
Assert.AreEqual(0, chain.NavigateTowards(chainEmpty).Count());
// verify path from empty chain to chain
CollectionAssert.AreEqual(
new[]
{
Tuple.Create(+1, header0),
Tuple.Create(+1, header1),
Tuple.Create(+1, header2)
}
, chainEmpty.NavigateTowards(chain).ToList());
}