public FieldPropertiesDto Visit(TagsFieldProperties properties)
        {
            var result = SimpleMapper.Map(properties, new TagsFieldPropertiesDto());

            result.AllowedValues = properties.AllowedValues?.ToArray();

            return(result);
        }
Esempio n. 2
0
        public IEnumerable <IValidator> Visit(TagsFieldProperties properties)
        {
            if (properties.IsRequired || properties.MinItems.HasValue || properties.MaxItems.HasValue)
            {
                yield return(new CollectionValidator <string>(properties.IsRequired, properties.MinItems, properties.MaxItems));
            }

            yield return(new CollectionItemValidator <string>(new RequiredStringValidator()));
        }
 public IEnumerable <ValidationError> Visit(TagsFieldProperties properties)
 {
     if (properties.MaxItems.HasValue && properties.MinItems.HasValue && properties.MinItems.Value >= properties.MaxItems.Value)
     {
         yield return(new ValidationError("Max items must be greater than min items.",
                                          nameof(properties.MinItems),
                                          nameof(properties.MaxItems)));
     }
 }
Esempio n. 4
0
        public void Should_not_add_error_if_min_items_equal_to_max_items()
        {
            var sut = new TagsFieldProperties {
                MinItems = 2, MaxItems = 2
            };

            var errors = FieldPropertiesValidator.Validate(sut).ToList();

            Assert.Empty(errors);
        }
Esempio n. 5
0
        public void Should_add_error_if_min_items_greater_than_max_items()
        {
            var sut = new TagsFieldProperties {
                MinItems = 10, MaxItems = 5
            };

            var errors = FieldPropertiesValidator.Validate(sut).ToList();

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Max items must be greater or equal to min items.", "MinItems", "MaxItems")
            });
        }
Esempio n. 6
0
        public void Should_add_error_if_editor_is_not_valid()
        {
            var sut = new TagsFieldProperties {
                Editor = (TagsFieldEditor)123
            };

            var errors = FieldPropertiesValidator.Validate(sut).ToList();

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Editor is not a valid value.", "Editor")
            });
        }
Esempio n. 7
0
        public void Should_add_error_if_radio_button_has_no_allowed_values()
        {
            var sut = new TagsFieldProperties {
                Editor = TagsFieldEditor.Checkboxes
            };

            var errors = FieldPropertiesValidator.Validate(sut).ToList();

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Checkboxes or dropdown list need allowed values.", "AllowedValues")
            });
        }
Esempio n. 8
0
        public void Should_compare_two_tags_fields_as_equal()
        {
            var lhs = new TagsFieldProperties
            {
                DefaultValues = new LocalizedValue <string[]?>
                {
                    ["iv"] = new[] { "A", "B", "C" }
                }
            };

            var rhs = new TagsFieldProperties
            {
                DefaultValues = new LocalizedValue <string[]?>
                {
                    ["iv"] = new[] { "A", "B", "C" }
                }
            };

            Assert.Equal(lhs, rhs);
        }
Esempio n. 9
0
        public void Should_compare_two_tags_fields_as_equal()
        {
            var lhs = new TagsFieldProperties
            {
                DefaultValues = new LocalizedValue <ImmutableList <string>?>(new Dictionary <string, ImmutableList <string>?>
                {
                    ["iv"] = ImmutableList.Create("A", "B", "C")
                })
            };

            var rhs = new TagsFieldProperties
            {
                DefaultValues = new LocalizedValue <ImmutableList <string>?>(new Dictionary <string, ImmutableList <string>?>
                {
                    ["iv"] = ImmutableList.Create("A", "B", "C")
                })
            };

            Assert.Equal(lhs, rhs);
        }
Esempio n. 10
0
        public IEnumerable <ValidationError> Visit(TagsFieldProperties properties)
        {
            if (!properties.Editor.IsEnumValue())
            {
                yield return(new ValidationError(Not.Valid(nameof(properties.Editor)),
                                                 nameof(properties.Editor)));
            }

            if ((properties.Editor == TagsFieldEditor.Checkboxes || properties.Editor == TagsFieldEditor.Dropdown) && properties.AllowedValues?.Any() != true)
            {
                yield return(new ValidationError(T.Get("schemas.tags.editorNeedsAllowedValues"),
                                                 nameof(properties.AllowedValues)));
            }

            if (IsMaxGreaterThanMin(properties.MaxItems, properties.MinItems))
            {
                yield return(new ValidationError(Not.GreaterEqualsThan(nameof(properties.MaxItems), nameof(properties.MinItems)),
                                                 nameof(properties.MinItems),
                                                 nameof(properties.MaxItems)));
            }
        }
Esempio n. 11
0
        public IEnumerable <ValidationError> Visit(TagsFieldProperties properties)
        {
            if (!properties.Editor.IsEnumValue())
            {
                yield return(new ValidationError(Not.Valid("Editor"),
                                                 nameof(properties.Editor)));
            }

            if ((properties.Editor == TagsFieldEditor.Checkboxes || properties.Editor == TagsFieldEditor.Dropdown) && (properties.AllowedValues == null || properties.AllowedValues.Count == 0))
            {
                yield return(new ValidationError("Checkboxes or dropdown list need allowed values.",
                                                 nameof(properties.AllowedValues)));
            }

            if (properties.MaxItems.HasValue && properties.MinItems.HasValue && properties.MinItems.Value > properties.MaxItems.Value)
            {
                yield return(new ValidationError(Not.GreaterEquals("Max items", "min items"),
                                                 nameof(properties.MinItems),
                                                 nameof(properties.MaxItems)));
            }
        }
Esempio n. 12
0
 public static Field <TagsFieldProperties> Tags(long id, string name, Partitioning partitioning, TagsFieldProperties properties = null)
 {
     return(new Field <TagsFieldProperties>(id, name, partitioning, properties ?? new TagsFieldProperties()));
 }
Esempio n. 13
0
 private static TagsField Field(TagsFieldProperties properties)
 {
     return(new TagsField(1, "my-tags", Partitioning.Invariant, properties));
 }
Esempio n. 14
0
 private static RootField <TagsFieldProperties> Field(TagsFieldProperties properties)
 {
     return(Fields.Tags(1, "my-tags", Partitioning.Invariant, properties));
 }
Esempio n. 15
0
 public FieldPropertiesDto Visit(TagsFieldProperties properties)
 {
     return(SimpleMapper.Map(properties, new TagsFieldPropertiesDto()));
 }
Esempio n. 16
0
 public JToken Visit(TagsFieldProperties properties)
 {
     return(new JArray());
 }
Esempio n. 17
0
 public static Schema AddTags(this Schema schema, long id, string name, Partitioning partitioning, TagsFieldProperties properties = null)
 {
     return(schema.AddField(Tags(id, name, partitioning, properties)));
 }
Esempio n. 18
0
        public IJsonValue Visit(TagsFieldProperties properties, Args args)
        {
            var value = GetDefaultValue(properties.DefaultValue, properties.DefaultValues, args.Partition);

            return(Array(value));
        }