Beispiel #1
0
        public async Task ValidateAsync_RuleWithValidationRuleAttribute_GetsRunAsync()
        {
            var rule = new ConsensusRuleWithValidationAttribute();
            TestConsensusRules consensusRules = InitializeConsensusRules();

            this.network.Consensus.Rules = new List <IConsensusRule> {
                rule
            };
            consensusRules.Register();

            await consensusRules.ValidateAsync(new RuleContext()
            {
                SkipValidation = true
            });

            Assert.True(rule.RunCalled);
        }
        public async Task ValidateAsync_RuleWithValidationRuleAttribute_GetsRunAsync()
        {
            var rule = new ConsensusRuleWithValidationAttribute();

            this.ruleRegistrations = new List <ConsensusRule> {
                rule
            };
            var consensusRules = InitializeConsensusRules();

            consensusRules.Register(this.ruleRegistration.Object);

            await consensusRules.ValidateAsync(new RuleContext()
            {
                SkipValidation = true
            });

            Assert.True(rule.RunCalled);
        }
Beispiel #3
0
        public async Task ExecuteAsync_RuleCannotSkipValidation_ContextCannotSkipValidation_RunsRuleAsync()
        {
            var rule = new ConsensusRuleWithValidationAttribute();
            var blockValidationContext = new ValidationContext()
            {
                RuleContext = new RuleContext()
                {
                    SkipValidation = false
                }
            };
            TestConsensusRules consensusRules = InitializeConsensusRules();

            this.network.Consensus.Rules = new List <IConsensusRule> {
                rule
            };
            consensusRules.Register();

            await consensusRules.AcceptBlockAsync(blockValidationContext, new ChainedHeader(this.network.GetGenesis().Header, this.network.GenesisHash, 0));

            Assert.True(rule.RunCalled);
            Assert.Null(blockValidationContext.Error);
        }
        public async Task ExecuteAsync_RuleCannotSkipValidation_ContextCannotSkipValidation_RunsRuleAsync()
        {
            var rule = new ConsensusRuleWithValidationAttribute();

            this.ruleRegistrations = new List <ConsensusRule> {
                rule
            };
            var blockValidationContext = new BlockValidationContext()
            {
                RuleContext = new RuleContext()
                {
                    SkipValidation = false
                }
            };
            var consensusRules = InitializeConsensusRules();

            consensusRules.Register(this.ruleRegistration.Object);

            await consensusRules.ExecuteAsync(blockValidationContext);

            Assert.True(rule.RunCalled);
            Assert.Null(blockValidationContext.Error);
        }