BitSharp.Core.Test.BlockReplayerTest.TestReplayBlock C# (CSharp) Method

TestReplayBlock() private method

private TestReplayBlock ( ) : void
return void
        public void TestReplayBlock()
        {
            using (var simulator = new MainnetSimulator())
            {
                simulator.AddBlockRange(0, 9999);
                simulator.WaitForUpdate();

                using (var chainState = simulator.CoreDaemon.GetChainState())
                {
                    Assert.AreEqual(9999, chainState.Chain.Height);

                    for (var blockHeight = 0; blockHeight <= chainState.Chain.Height; blockHeight++)
                    {
                        var blockHash = chainState.Chain.Blocks[blockHeight].Hash;

                        var expectedTransactions = simulator.BlockProvider.GetBlock(blockHeight).Transactions;
                        var actualTransactions = BlockReplayer.ReplayBlock(simulator.CoreDaemon.CoreStorage, chainState, blockHash, replayForward: true)
                            .ToEnumerable().ToList();

                        CollectionAssert.AreEqual(
                            expectedTransactions.Select(x => x.Hash).ToList(),
                            actualTransactions.Select(x => x.Transaction.Hash).ToList(),
                            $"Transactions differ at block {blockHeight:N0}");
                    }
                }
            }
        }