public void BlockMerkleRootRule_Cannot_Be_Skipped() { var descriptor = new ConsensusRuleDescriptor(new BlockMerkleRootRule()); descriptor.Rule.Should().BeOfType <BlockMerkleRootRule>(); descriptor.RuleAttributes.Should().HaveCount(1); descriptor.CanSkipValidation.Should().BeFalse(); }
public void Constructor_ConsensusRuleWithZeroRuleAttributes_CanSkipValidation() { var descriptor = new ConsensusRuleDescriptor(new RuleWithoutRuleAttributes()); descriptor.Rule.Should().BeOfType <RuleWithoutRuleAttributes>(); descriptor.RuleAttributes.Should().BeEmpty(); descriptor.CanSkipValidation.Should().BeTrue(); }
public void Constructor_ConsensusRuleWithoutValidationAttributeButWithOtherRuleAttribute_CannotSkipValidation() { var descriptor = new ConsensusRuleDescriptor(new RuleWithMempoolAttributeButWithoutValidationAttribute()); descriptor.Rule.Should().BeOfType <RuleWithMempoolAttributeButWithoutValidationAttribute>(); descriptor.RuleAttributes.Should().HaveCount(1); descriptor.CanSkipValidation.Should().BeFalse(); }
public void Constructor_ConsensusRuleWithOptionalValidationAttribute_CanSkipValidation() { var descriptor = new ConsensusRuleDescriptor(new RuleWithOptionalValidationAttribute()); descriptor.Rule.Should().BeOfType <RuleWithOptionalValidationAttribute>(); descriptor.RuleAttributes.Should().HaveCount(1); descriptor.RuleAttributes.Single().Should().BeOfType <ValidationRuleAttribute>(); descriptor.CanSkipValidation.Should().BeTrue(); }
public void Constructor_ConsensusRuleWithMempoolAndExecutionAndValidationAttribute_CannotSkipValidation() { var descriptor = new ConsensusRuleDescriptor(new RuleWithValidationExecutionMempoolAttributes()); descriptor.Rule.Should().BeOfType <RuleWithValidationExecutionMempoolAttributes>(); descriptor.RuleAttributes.Should().HaveCount(3); descriptor.RuleAttributes.Should().Contain(x => x is MempoolRuleAttribute); descriptor.RuleAttributes.Should().Contain(x => x is ExecutionRuleAttribute); descriptor.RuleAttributes.Should().Contain(x => x is ValidationRuleAttribute); descriptor.CanSkipValidation.Should().BeFalse(); }
public void Constructor_ConsensusRuleWithoutValidationAttribute_InitializesClass() { var rule = new TestConsensusRuleWithoutValidationAttribute("myRule"); var descriptor = new ConsensusRuleDescriptor(rule); Assert.True(descriptor.Rule is TestConsensusRuleWithoutValidationAttribute); Assert.Equal("myRule", (descriptor.Rule as TestConsensusRuleWithoutValidationAttribute).RuleName); Assert.Equal(2, descriptor.Attributes.Count); Assert.True(descriptor.Attributes[0] is MempoolRuleAttribute); Assert.True(descriptor.Attributes[1] is ExecutionRuleAttribute); Assert.True(descriptor.CanSkipValidation); }