예제 #1
0
        public void ValidData(
            EvaluationEngine engine,
            IMyValidationResult answer)
        {
            "establish an evaluation engine with custom validation"._(() =>
            {
                engine = new EvaluationEngine();

                engine.Solve <IsDataValid, IMyValidationResult, Data>()
                .AggregateWithValidationAggregator(new MyValidationResultFactory())
                .ByEvaluating(q => new NameSetRule());
            });

            "when validating valid data with extended validation result"._(() =>
            {
                answer = engine.Answer(
                    new IsDataValid(),
                    new Data
                {
                    Name = "Tester"
                });
            });

            "it should return valid validation result"._(() =>
            {
                answer.Valid.Should().BeTrue();
            });

            "it should return validation result without violations"._(() =>
            {
                answer.Violations.Should().BeEmpty();
            });
        }
예제 #2
0
        public void InvalidData(
            EvaluationEngine engine,
            IMyValidationResult answer)
        {
            "establish an evaluation engine with custom validation"._(() =>
            {
                engine = new EvaluationEngine();

                engine.Solve <IsDataValid, IMyValidationResult, Data>()
                .AggregateWithValidationAggregator(new MyValidationResultFactory())
                .ByEvaluating(q => new NameSetRule());
            });

            "when validating invalid data with extended validation result"._(() =>
            {
                answer = engine.Answer(
                    new IsDataValid(),
                    new Data
                {
                    Name = null
                });
            });

            "it should return invalid validation result"._(() =>
            {
                answer.Valid.Should().BeFalse();
            });

            "it should return validation result with violations"._(() =>
            {
                answer.Violations.Should().HaveCount(1);

                answer.Violations.Single().Reason.Should().Be(NameIsEmptyReason);
                answer.Violations.Single().ViolationHint.Should().Be(Hint);
            });

            "it should return violations with reason set by failing rule"._(() =>
            {
                answer.Violations.Single().Reason.Should().Be(NameIsEmptyReason);
            });

            "it should return violations with extended data"._(() =>
            {
                answer.Violations.Single().ViolationHint.Should().Be(Hint);
            });
        }