示例#1
0
        public void TryValidate_FieldDisplayNameProviderIsProvided_FailuresContainFieldNamesProvidedByFieldDisplayNameProvider()
        {
            var requiredStringFieldDisplayName = "RequiredStringField_Test";
            var rangedIntFieldDisplayName      = "RangedIntField_Test";

            var record = new MockRecord()
            {
                RequiredStringField = null,
                RangedIntField      = 0
            };

            var fieldDisplayNameProvider = MockRepository.GenerateMock <IFieldDisplayNameProvider>();

            fieldDisplayNameProvider.Stub(x => x.GetFieldDisplayName(
                                              Arg <PropertyInfo> .Matches(y => y.Name.Equals(nameof(MockRecord.RequiredStringField)))))
            .Return(requiredStringFieldDisplayName);
            fieldDisplayNameProvider.Stub(x => x.GetFieldDisplayName(
                                              Arg <PropertyInfo> .Matches(y => y.Name.Equals(nameof(MockRecord.RangedIntField)))))
            .Return(rangedIntFieldDisplayName);

            var dataAnnotatedRecordValidator = new DataAnnotatedRecordValidator(fieldDisplayNameProvider);

            var couldValidate = dataAnnotatedRecordValidator.TryValidate(record, out var failures);

            Assert.IsFalse(couldValidate);
            Assert.AreEqual(2, failures.Count());
            Assert.IsNotNull(failures.SingleOrDefault(x => x.FieldName.Equals(requiredStringFieldDisplayName)));
            Assert.IsNotNull(failures.SingleOrDefault(x => x.FieldName.Equals(rangedIntFieldDisplayName)));
        }
示例#2
0
        public void TryValidate_ObjectWithNoValidationAttributes_ValidationSucceedsWithZeroFailures()
        {
            var record = new MockRecordWithNoValidationAttributes();

            var dataAnnotatedRecordValidator = new DataAnnotatedRecordValidator();

            var couldValidate = dataAnnotatedRecordValidator.TryValidate(record, out var failures);

            Assert.IsTrue(couldValidate);
            Assert.AreEqual(0, failures.Count());
        }
示例#3
0
        public void TryValidate_ObjectWithValidationAttributesAndValidValues_ValidationSucceedsWithZeroFailures()
        {
            var record = new MockRecord()
            {
                RequiredStringField = "Text",
                RangedIntField      = 1
            };

            var dataAnnotatedRecordValidator = new DataAnnotatedRecordValidator();

            var couldValidate = dataAnnotatedRecordValidator.TryValidate(record, out var failures);

            Assert.IsTrue(couldValidate);
            Assert.AreEqual(0, failures.Count());
        }
示例#4
0
        public void TryValidate_FieldDisplayNameProviderThrowsException_ExceptionIsPropogated()
        {
            var record = new MockRecord()
            {
                RequiredStringField = null,
                RangedIntField      = 0
            };

            var fieldDisplayNameProvider = MockRepository.GenerateMock <IFieldDisplayNameProvider>();

            fieldDisplayNameProvider.Stub(x => x.GetFieldDisplayName(Arg <PropertyInfo> .Is.Anything)).Throw(new InternalTestFailureException());

            var dataAnnotatedRecordValidator = new DataAnnotatedRecordValidator(fieldDisplayNameProvider);

            dataAnnotatedRecordValidator.TryValidate(record, out var failures);
        }
示例#5
0
        public void TryValidate_ObjectWithValidationAttributesAndInvalidValues_ValidationFailsWithMultipleFailures()
        {
            var record = new MockRecord()
            {
                RequiredStringField = null,
                RangedIntField      = 0
            };

            var dataAnnotatedRecordValidator = new DataAnnotatedRecordValidator();

            var couldValidate = dataAnnotatedRecordValidator.TryValidate(record, out var failures);

            Assert.IsFalse(couldValidate);
            Assert.AreEqual(2, failures.Count());
            Assert.IsNotNull(failures.SingleOrDefault(x => x.FieldName.Equals(nameof(MockRecord.RequiredStringField))));
            Assert.IsNotNull(failures.SingleOrDefault(x => x.FieldName.Equals(nameof(MockRecord.RangedIntField))));
        }
示例#6
0
        public void TryValidate_NullObjectProvided_ExceptionIsThrown()
        {
            var dataAnnotatedRecordValidator = new DataAnnotatedRecordValidator();

            dataAnnotatedRecordValidator.TryValidate(null, out var failures);
        }