public void TestBlockValidity_UsesRuleContextToValidateBlock() { var newOptions = new PowConsensusOptions() { MaxBlockWeight = 1500 }; this.ExecuteWithConsensusOptions(newOptions, () => { var chain = GenerateChainWithHeight(5, this.network, new Key()); this.consensusLoop.Setup(c => c.Tip).Returns(chain.GetBlock(5)); var powBlockAssembler = new PowTestBlockAssembler(this.consensusLoop.Object, this.dateTimeProvider.Object, this.LoggerFactory.Object, this.txMempool.Object, new MempoolSchedulerLock(), this.network); var block = powBlockAssembler.OnTestBlockValidity(); Assert.NotNull(this.callbackRuleContext); Assert.False(this.callbackRuleContext.CheckMerkleRoot); Assert.False(this.callbackRuleContext.CheckPow); Assert.Equal(block.GetHash(), this.callbackRuleContext.BlockValidationContext.Block.GetHash()); Assert.Equal(chain.GetBlock(5).HashBlock, this.callbackRuleContext.ConsensusTip.HashBlock); Assert.Equal(1500, this.callbackRuleContext.Consensus.Option <PowConsensusOptions>().MaxBlockWeight); this.consensusLoop.Verify(); }); }