public void Constructor_WhenRuleIsSpecified_ShouldThrowExceptionWithSpecifiedRuleMessage() { IRule rule = new MockRule(false); Action action = () => throw new RuleValidationException(rule); action.Should().Throw <RuleValidationException>().WithMessage($"{rule.GetType().FullName}: {rule.Message}"); }
public void RuleRef_WithRule_WrapsTargetRule() { var mockRule = new MockRule(nameof(MockRule)); var ruleRef = new RuleRef <string>(mockRule); ruleRef.IsResolved.Should().BeTrue(); ruleRef.Name.Should().Be(nameof(MockRule)); ruleRef.Rule.Should().Be(mockRule); ruleRef.ToDisplayText().Should().Be(nameof(MockRule)); }
public void RuleRef_GrabWithRule_GrabsTargetRule() { var mockRule = new MockRule(nameof(MockRule)); var ruleRef = new RuleRef <string>(mockRule); var index = new TokenStreamIndex(new TokenStream(StaticLexer.FromWords()), 0); index.OperationsMock().Evaluate(ruleRef); mockRule.DidGrab.Should().BeTrue(); }
public void RuleRef_ResolveWithRule_PointsToTargetRule() { var ruleName = "TEST"; var mockRule = new MockRule(ruleName); var ruleRef = new RuleRef <string>(); ruleRef.Name.Should().BeNull(); ruleRef.Resolve(new RuleRef <string>(mockRule)); ruleRef.Name.Should().Be(ruleName); ruleRef.Rule.Should().Be(mockRule); ruleRef.ToDisplayText().Should().Be(ruleName); }
public void ValidateMethod_ShouldReturnTrue_IfItsValid() { MockRule <string> mokRule = new MockRule <string> { IsValid = true }; _validatableObject.Validations.Add(mokRule); var answer = _validatableObject.Validate(); Assert.IsTrue(answer); }
public void BaseRuleConstructorShouldSetProperties() { MockRule rule; rule = new MockRule(null); Assert.IsNull(rule.config); MockRuleElement configuration = new MockRuleElement(); rule = new MockRule(configuration); Assert.IsNotNull(rule.config); Assert.AreSame(configuration, rule.config); }
public void ValidateMethod_ShouldClearErrorList_BeforeSearchForNewError() { MockRule <string> mokRule = new MockRule <string> { IsValid = true }; _validatableObject.Validations.Add(mokRule); _validatableObject.Errors.Add("test"); _validatableObject.Validate(); Assert.IsFalse(_validatableObject.Errors.Any()); }
public void ValidateMethod_ShouldInitializeErrorMessage_IfItsNotValid() { const string VALUE = "this is a test"; MockRule <string> mokRule = new MockRule <string> { IsValid = false, ValidateMessage = VALUE }; _validatableObject.Validations.Add(mokRule); _validatableObject.Validate(); Assert.AreEqual(VALUE, _validatableObject.Errors.FirstOrDefault()); }
public void EvaluatingGrammar_WithMockRule_RunsMockRule() { var mockRule = new MockRule("mock", MockRuleBehavior.Success); var grammar = new AdHocGrammar(); grammar.DefineRule("start", mockRule); grammar.StartWith("start"); var lexer = StaticLexer.FromWords(); var opsMock = new RuleOperationsMock(new TokenStream(lexer).Start()); var ruleRef = grammar.Start(); var result = opsMock.Evaluate(ruleRef).Result; result.IsSuccess.Should().BeTrue(); mockRule.DidGrab.Should().BeTrue(); result.Index.Index.Should().Be(0); }
public void RuleRef_CloneWithRule_PointsToSameTargetRuleAndReducer() { var ruleName = "TEST"; var mockRule = new MockRule(ruleName); var ruleRef = new RuleRef <string>(mockRule); Reducer <string> reducer = (IRule rule, INodeContext <string> page) => EnumSequence.Of(String.Empty); ruleRef .As(nameof(RuleRef_CloneWithRule_PointsToSameTargetRuleAndReducer)) .ReduceWith(reducer); var clone = (RuleRef <string>)ruleRef.CloneRule(); clone.RefName.Should().BeNull(); clone.Name.Should().Be(ruleName); clone.Rule.Should().Be(mockRule); clone.Reducer.Should().Be(reducer); }