public void Flags_enum_invalid_when_using_outofrange_negative_value()
        {
            var inlineValidator = new InlineValidator <FlagsEnumPoco>();

            inlineValidator.RuleFor(x => x.SByteValue).IsInEnum();
            inlineValidator.RuleFor(x => x.ByteValue).IsInEnum();
            inlineValidator.RuleFor(x => x.Int16Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt16Value).IsInEnum();
            inlineValidator.RuleFor(x => x.Int32Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt32Value).IsInEnum();
            inlineValidator.RuleFor(x => x.Int64Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt64Value).IsInEnum();

            var poco = new FlagsEnumPoco();

            poco.PopulateWithInvalidNegativeValues();

            var result = inlineValidator.Validate(poco);

            result.IsValid.ShouldBeFalse();
            result.Errors.SingleOrDefault(x => x.PropertyName == "SByteValue").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "Int16Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "Int32Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "Int64Value").ShouldNotBeNull();
        }
Beispiel #2
0
        public void Flags_enum_validates_correctly_when_using_zero_value()
        {
            var inlineValidator = Create_validator();

            var poco = new FlagsEnumPoco();

            // all default to zero
            var result = inlineValidator.Validate(poco);

            result.Errors.SingleOrDefault(x => x.PropertyName == "EnumWithNegativesValue").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "EnumWithOverlappingFlagsValue").ShouldNotBeNull();
            result.Errors.Count().ShouldEqual(2);
            result.IsValid.ShouldBeFalse();
        }
Beispiel #3
0
        public void Flags_enum_valid_when_using_bitwise_value()
        {
            var inlineValidator = Create_validator();
            var poco            = new FlagsEnumPoco();

            poco.PopulateWithValidValues();

            var result = inlineValidator.Validate(poco);

            result.IsValid.ShouldBeTrue();

            // special case - valid negative value
            poco.EnumWithNegativesValue = EnumWithNegatives.All;
            result = inlineValidator.Validate(poco);
            result.IsValid.ShouldBeTrue();
        }
Beispiel #4
0
        public void Flags_enum_invalid_when_using_outofrange_positive_value()
        {
            var inlineValidator = Create_validator();

            var poco = new FlagsEnumPoco();

            poco.PopulateWithInvalidPositiveValues();

            var result = inlineValidator.Validate(poco);

            result.IsValid.ShouldBeFalse();
            result.Errors.SingleOrDefault(x => x.PropertyName == "ByteValue").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "SByteValue").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "Int16Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "UInt16Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "Int32Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "UInt32Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "Int64Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "UInt64Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "EnumWithNegativesValue").ShouldNotBeNull();
        }
Beispiel #5
0
        public void Flags_enum_with_overlapping_flags_valid_when_using_bitwise_value()
        {
            var inlineValidator = new InlineValidator <FlagsEnumPoco>();

            inlineValidator.RuleFor(x => x.EnumWithOverlappingFlagsValue).IsInEnum();

            var poco = new FlagsEnumPoco();

            // test all combinations
            poco.EnumWithOverlappingFlagsValue = EnumWithOverlappingFlags.A | EnumWithOverlappingFlags.B;
            inlineValidator.Validate(poco).IsValid.ShouldBeTrue();

            poco.EnumWithOverlappingFlagsValue = EnumWithOverlappingFlags.B | EnumWithOverlappingFlags.C;
            inlineValidator.Validate(poco).IsValid.ShouldBeTrue();

            poco.EnumWithOverlappingFlagsValue = EnumWithOverlappingFlags.A | EnumWithOverlappingFlags.C;
            inlineValidator.Validate(poco).IsValid.ShouldBeTrue();

            poco.EnumWithOverlappingFlagsValue = EnumWithOverlappingFlags.A | EnumWithOverlappingFlags.B | EnumWithOverlappingFlags.C;
            inlineValidator.Validate(poco).IsValid.ShouldBeTrue();
        }
        public void Flags_enum_valid_when_using_bitwise_value()
        {
            var inlineValidator = new InlineValidator <FlagsEnumPoco>();

            inlineValidator.RuleFor(x => x.SByteValue).IsInEnum();
            inlineValidator.RuleFor(x => x.ByteValue).IsInEnum();
            inlineValidator.RuleFor(x => x.Int16Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt16Value).IsInEnum();
            inlineValidator.RuleFor(x => x.Int32Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt32Value).IsInEnum();
            inlineValidator.RuleFor(x => x.Int64Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt64Value).IsInEnum();

            var poco = new FlagsEnumPoco();

            poco.PopulateWithValidValues();

            var result = inlineValidator.Validate(poco);

            result.IsValid.ShouldBeTrue();
        }
        public void Flags_enum_valid_when_using_bitwise_value()
        {
            var inlineValidator = new InlineValidator<FlagsEnumPoco>();
            inlineValidator.RuleFor(x => x.SByteValue).IsInEnum();
            inlineValidator.RuleFor(x => x.ByteValue).IsInEnum();
            inlineValidator.RuleFor(x => x.Int16Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt16Value).IsInEnum();
            inlineValidator.RuleFor(x => x.Int32Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt32Value).IsInEnum();
            inlineValidator.RuleFor(x => x.Int64Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt64Value).IsInEnum();

            var poco = new FlagsEnumPoco();
            poco.PopulateWithValidValues();

            var result = inlineValidator.Validate(poco);
            result.IsValid.ShouldBeTrue();
        }
        public void Flags_enum_invalid_when_using_outofrange_positive_value()
        {
            var inlineValidator = new InlineValidator<FlagsEnumPoco>();
            inlineValidator.RuleFor(x => x.SByteValue).IsInEnum();
            inlineValidator.RuleFor(x => x.ByteValue).IsInEnum();
            inlineValidator.RuleFor(x => x.Int16Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt16Value).IsInEnum();
            inlineValidator.RuleFor(x => x.Int32Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt32Value).IsInEnum();
            inlineValidator.RuleFor(x => x.Int64Value).IsInEnum();
            inlineValidator.RuleFor(x => x.UInt64Value).IsInEnum();

            var poco = new FlagsEnumPoco();
            poco.PopulateWithInvalidPositiveValues();

            var result = inlineValidator.Validate(poco);
            result.IsValid.ShouldBeFalse();
            result.Errors.SingleOrDefault(x => x.PropertyName == "ByteValue").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "SByteValue").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "Int16Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "UInt16Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "Int32Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "UInt32Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "Int64Value").ShouldNotBeNull();
            result.Errors.SingleOrDefault(x => x.PropertyName == "UInt64Value").ShouldNotBeNull();
        }