Esempio n. 1
0
        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}");
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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);
        }
Esempio n. 6
0
        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());
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
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);
        }