示例#1
0
        public void RunRuleByID_ReturnsExecutionErrorForUnknownRuleID()
        {
            var providerMock = new Mock <IRuleProvider>(MockBehavior.Strict);

            providerMock.Setup(m => m.GetRule(It.IsAny <RuleId>())).Returns(() => null).Verifiable();

            var e = new MockA11yElement();

            var runner = new RuleRunner(providerMock.Object);
            var result = runner.RunRuleByID(default(RuleId), e);

            Assert.AreEqual(EvaluationCode.RuleExecutionError, result.EvaluationCode);
            Assert.AreEqual(e, result.element);
            Assert.IsNull(result.RuleInfo);

            providerMock.VerifyAll();
        }
示例#2
0
        public void RunRuleByID_CallsPassesTestWhenConditionIsNull()
        {
            var e = new MockA11yElement();

            var ruleMock = CreateRuleMock(null, EvaluationCode.Pass, e);

            var providerMock = new Mock <IRuleProvider>(MockBehavior.Strict);

            providerMock.Setup(m => m.GetRule(It.IsAny <RuleId>())).Returns(() => ruleMock.Object).Verifiable();

            var runner = new RuleRunner(providerMock.Object);
            var result = runner.RunRuleByID(default(RuleId), e);

            Assert.AreEqual(EvaluationCode.Pass, result.EvaluationCode);
            Assert.AreEqual(e, result.element);
            Assert.AreEqual(ruleMock.Object.Info, result.RuleInfo);

            ruleMock.VerifyAll();
            providerMock.VerifyAll();
        }
示例#3
0
        public void RunAll_ReturnsExpectedResults()
        {
            var e = new MockA11yElement();

            var ruleMocks = new List <Mock <IRule> >();
            var codes     = Enum.GetValues(typeof(EvaluationCode)) as IEnumerable <EvaluationCode>;

            foreach (var code in codes)
            {
                ruleMocks.Add(CreateRuleMock(Condition.True, code, e));
            }

            var rules = from m in ruleMocks select(m.Object);

            var providerMock = new Mock <IRuleProvider>(MockBehavior.Strict);

            providerMock.Setup(m => m.All).Returns(() => rules).Verifiable();

            var runner  = new RuleRunner(providerMock.Object);
            var results = runner.RunAll(e);

            Assert.AreEqual(codes.Count(), results.Count());

            for (var i = 0; i < results.Count(); ++i)
            {
                var result       = results.ElementAt(i);
                var expectedCode = codes.ElementAt(i);
                var ruleMock     = ruleMocks[i];

                Assert.AreEqual(expectedCode, result.EvaluationCode);
                Assert.AreEqual(e, result.element);
                Assert.AreEqual(ruleMock.Object.Info, result.RuleInfo);

                ruleMock.VerifyAll();
            }

            providerMock.VerifyAll();
        }