Beispiel #1
0
        public void ShouldPrintAllReportsInTheSameOrderTheyWereReceived()
        {
            //GIVEN
            var ruleReportFactory = Substitute.For <IRuleReportFactory>();
            var resultBuilder     = Substitute.For <IResultBuilder>();
            var ruleDescription1  = Any.Instance <RuleDescription>();
            var ruleDescription2  = Any.Instance <RuleDescription>();
            var ruleDescription3  = Any.Instance <RuleDescription>();
            var report            = new AnalysisReportInProgress(ruleReportFactory);
            var ruleReport1       = Substitute.For <ISingleRuleReport>();
            var ruleReport2       = Substitute.For <ISingleRuleReport>();
            var ruleReport3       = Substitute.For <ISingleRuleReport>();

            ruleReportFactory.EmptyReportFor(ruleDescription1).Returns(ruleReport1);
            ruleReportFactory.EmptyReportFor(ruleDescription2).Returns(ruleReport2);
            ruleReportFactory.EmptyReportFor(ruleDescription3).Returns(ruleReport3);

            report.FinishedEvaluatingRule(ruleDescription1);
            report.FinishedEvaluatingRule(ruleDescription2);
            report.FinishedEvaluatingRule(ruleDescription3);

            //WHEN
            report.PutContentInto(resultBuilder);

            //THEN
            Received.InOrder(() =>
            {
                ruleReport1.AppendTo(resultBuilder);
                resultBuilder.AppendRuleSeparator();
                ruleReport2.AppendTo(resultBuilder);
                resultBuilder.AppendRuleSeparator();
                ruleReport3.AppendTo(resultBuilder);
            });
        }
Beispiel #2
0
        public void ShouldReportSuccessWhenAllSingleRuleReportsReportSuccess()
        {
            //GIVEN
            var ruleFactory       = Substitute.For <IRuleReportFactory>();
            var report            = new AnalysisReportInProgress(ruleFactory);
            var ruleDescription1  = Any.Instance <RuleDescription>();
            var ruleDescription2  = Any.Instance <RuleDescription>();
            var ruleDescription3  = Any.Instance <RuleDescription>();
            var singleRuleReport1 = SuccessfulRuleReport();
            var singleRuleReport2 = SuccessfulRuleReport();
            var singleRuleReport3 = SuccessfulRuleReport();

            ruleFactory.EmptyReportFor(ruleDescription1).Returns(singleRuleReport1);
            ruleFactory.EmptyReportFor(ruleDescription2).Returns(singleRuleReport2);
            ruleFactory.EmptyReportFor(ruleDescription3).Returns(singleRuleReport3);

            report.FinishedEvaluatingRule(ruleDescription1);
            report.FinishedEvaluatingRule(ruleDescription2);
            report.FinishedEvaluatingRule(ruleDescription3);

            //WHEN
            var isFailure = report.IsFailure();

            //THEN
            isFailure.Should().BeFalse();
        }
Beispiel #3
0
        public void ShouldAddViolationsForEachNewRuleToReportCreatedForThatRule()
        {
            //GIVEN
            var ruleFactory      = Substitute.For <IRuleReportFactory>();
            var report           = new AnalysisReportInProgress(ruleFactory);
            var ruleReport1      = Substitute.For <ISingleRuleReport>();
            var ruleReport2      = Substitute.For <ISingleRuleReport>();
            var ruleReport3      = Substitute.For <ISingleRuleReport>();
            var rule1Description = Any.Instance <RuleDescription>();
            var rule2Description = Any.Instance <RuleDescription>();
            var rule3Description = Any.Instance <RuleDescription>();
            var rule1Violation1  = Any.Instance <RuleViolation>() with {
                RuleDescription = rule1Description
            };
            var rule1Violation2 = Any.Instance <RuleViolation>() with {
                RuleDescription = rule1Description
            };
            var rule2Violation1 = Any.Instance <RuleViolation>() with {
                RuleDescription = rule2Description
            };
            var rule2Violation2 = Any.Instance <RuleViolation>() with {
                RuleDescription = rule2Description
            };
            var rule3Violation1 = Any.Instance <RuleViolation>() with {
                RuleDescription = rule3Description
            };
            var rule3Violation2 = Any.Instance <RuleViolation>() with {
                RuleDescription = rule3Description
            };

            ruleFactory.EmptyReportFor(rule1Description).Returns(ruleReport1);
            ruleFactory.EmptyReportFor(rule2Description).Returns(ruleReport2);
            ruleFactory.EmptyReportFor(rule3Description).Returns(ruleReport3);

            //WHEN
            report.Add(rule1Violation1);
            report.Add(rule1Violation2);
            report.Add(rule2Violation1);
            report.Add(rule2Violation2);
            report.Add(rule3Violation1);
            report.Add(rule3Violation2);

            //THEN
            ruleReport1.Received(1).Add(rule1Violation1);
            ruleReport1.Received(1).Add(rule1Violation2);
            ruleReport2.Received(1).Add(rule2Violation1);
            ruleReport2.Received(1).Add(rule2Violation2);
            ruleReport3.Received(1).Add(rule3Violation1);
            ruleReport3.Received(1).Add(rule3Violation2);
        }