public void Should_not_add_error_if_sut_is_valid()
        {
            var sut = new NumberFieldProperties
            {
                MinValue     = 0,
                MaxValue     = 100,
                DefaultValue = 5
            };

            sut.Validate(errors);

            Assert.Equal(0, errors.Count);
        }
        public void Should_add_error_if_allowed_values_and_max_value_is_specified()
        {
            var sut = new NumberFieldProperties {
                MaxValue = 10, AllowedValues = ImmutableList.Create <double>(4)
            };

            sut.Validate(errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Either allowed values or min and max value can be defined", "AllowedValues", "MinValue", "MaxValue")
            });
        }
        public void Should_add_error_if_min_greater_than_max()
        {
            var sut = new NumberFieldProperties {
                MinValue = 10, MaxValue = 5
            };

            sut.Validate(errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Max value must be greater than min value", "MinValue", "MaxValue")
            });
        }
        public void Should_add_error_if_default_value_is_greater_than_min()
        {
            var sut = new NumberFieldProperties {
                MaxValue = 0, DefaultValue = 5
            };

            sut.Validate(errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Default value must be less than max value", "DefaultValue")
            });
        }
        public void Should_add_error_if_editor_is_not_valid()
        {
            var sut = new NumberFieldProperties {
                Editor = (NumberFieldEditor)123
            };

            sut.Validate(errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Editor ist not a valid value", "Editor")
            });
        }
        public void Should_add_error_if_radio_button_has_no_allowed_values()
        {
            var sut = new NumberFieldProperties {
                Editor = NumberFieldEditor.Radio
            };

            sut.Validate(errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Radio buttons or dropdown list need allowed values", "AllowedValues")
            });
        }