コード例 #1
0
        public FieldPropertiesDto Visit(AssetsFieldProperties properties)
        {
            var result = SimpleMapper.Map(properties, new AssetsFieldPropertiesDto());

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

            return(result);
        }
コード例 #2
0
 private IValidator Validator(AssetsFieldProperties properties)
 {
     return(new AssetsValidator(properties, new CheckAssets(ids =>
     {
         return Task.FromResult <IReadOnlyList <IAssetInfo> >(new List <IAssetInfo> {
             document, image1, image2
         });
     })));
 }
コード例 #3
0
        public AssetsValidator(AssetsFieldProperties properties, CheckAssets checkAssets)
        {
            Guard.NotNull(properties, nameof(properties));
            Guard.NotNull(checkAssets, nameof(checkAssets));

            this.properties = properties;

            this.checkAssets = checkAssets;
        }
コード例 #4
0
 public IEnumerable <ValidationError> Visit(AssetsFieldProperties 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)));
     }
 }
コード例 #5
0
        public IEnumerable <IValidator> Visit(AssetsFieldProperties properties)
        {
            if (properties.IsRequired || properties.MinItems.HasValue || properties.MaxItems.HasValue)
            {
                yield return(new CollectionValidator <Guid>(properties.IsRequired, properties.MinItems, properties.MaxItems));
            }

            yield return(new AssetsValidator(properties));
        }
コード例 #6
0
        public void Should_not_add_error_if_min_height_equals_to_max_height()
        {
            var sut = new AssetsFieldProperties {
                MinHeight = 2, MaxHeight = 2
            };

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

            Assert.Empty(errors);
        }
コード例 #7
0
        public void Should_add_error_if_only_aspect_width_is_defined()
        {
            var sut = new AssetsFieldProperties {
                AspectWidth = 10
            };

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

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Aspect width and height is required.", "AspectWidth", "AspectHeight")
            });
        }
コード例 #8
0
        public void Should_add_error_if_only_aspect_height_is_defined()
        {
            var sut = new AssetsFieldProperties {
                AspectHeight = 10
            };

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

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("If aspect width or aspect height is used both must be defined.", "AspectWidth", "AspectHeight")
            });
        }
コード例 #9
0
        public void Should_add_error_if_min_items_greater_than_max_items()
        {
            var sut = new AssetsFieldProperties {
                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")
            });
        }
コード例 #10
0
        public void Should_add_error_if_min_width_greater_than_max_width()
        {
            var sut = new AssetsFieldProperties {
                MinWidth = 10, MaxWidth = 5
            };

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

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Max width must be greater or equal to min width.", "MinWidth", "MaxWidth")
            });
        }
コード例 #11
0
        public void Should_add_error_if_min_height_greater_than_max_height()
        {
            var sut = new AssetsFieldProperties {
                MinHeight = 10, MaxHeight = 5
            };

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

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Max height must be greater or equal to min height.", "MinHeight", "MaxHeight")
            });
        }
コード例 #12
0
        public void Should_add_error_if_min_size_greater_than_max_size()
        {
            var sut = new AssetsFieldProperties {
                MinSize = 10, MaxSize = 5
            };

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

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Max size must be greater than min size.", "MinSize", "MaxSize")
            });
        }
コード例 #13
0
        public AssetsValidator(bool isRequired, AssetsFieldProperties properties, CheckAssets checkAssets)
        {
            Guard.NotNull(properties, nameof(properties));
            Guard.NotNull(checkAssets, nameof(checkAssets));

            this.properties = properties;

            if (isRequired || properties.MinItems.HasValue || properties.MaxItems.HasValue)
            {
                collectionValidator = new CollectionValidator(isRequired, properties.MinItems, properties.MaxItems);
            }

            if (!properties.AllowDuplicates)
            {
                uniqueValidator = new UniqueValuesValidator <DomainId>();
            }

            this.checkAssets = checkAssets;
        }
コード例 #14
0
        public static void TestFreeze(IFreezable freezable)
        {
            var sut = new AssetsFieldProperties();

            foreach (var property in sut.GetType().GetRuntimeProperties().Where(x => x.Name != "IsFrozen"))
            {
                var value =
                    property.PropertyType.IsValueType ?
                    Activator.CreateInstance(property.PropertyType) :
                    null;

                property.SetValue(sut, value);

                var result = property.GetValue(sut);

                Assert.Equal(value, result);
            }

            sut.Freeze();

            foreach (var property in sut.GetType().GetRuntimeProperties().Where(x => x.Name != "IsFrozen"))
            {
                var value =
                    property.PropertyType.IsValueType ?
                    Activator.CreateInstance(property.PropertyType) :
                    null;

                Assert.Throws <InvalidOperationException>(() =>
                {
                    try
                    {
                        property.SetValue(sut, value);
                    }
                    catch (Exception ex)
                    {
                        throw ex.InnerException;
                    }
                });
            }
        }
コード例 #15
0
        public IEnumerable <ValidationError> Visit(AssetsFieldProperties properties)
        {
            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)));
            }

            if (properties.MaxHeight.HasValue && properties.MinHeight.HasValue && properties.MinHeight.Value > properties.MaxHeight.Value)
            {
                yield return(new ValidationError(Not.GreaterEquals("Max height", "min height"),
                                                 nameof(properties.MaxHeight),
                                                 nameof(properties.MinHeight)));
            }

            if (properties.MaxWidth.HasValue && properties.MinWidth.HasValue && properties.MinWidth.Value > properties.MaxWidth.Value)
            {
                yield return(new ValidationError(Not.GreaterEquals("Max width", "min width"),
                                                 nameof(properties.MaxWidth),
                                                 nameof(properties.MinWidth)));
            }

            if (properties.MaxSize.HasValue && properties.MinSize.HasValue && properties.MinSize.Value >= properties.MaxSize.Value)
            {
                yield return(new ValidationError(Not.GreaterThan("Max size", "min size"),
                                                 nameof(properties.MaxSize),
                                                 nameof(properties.MinSize)));
            }

            if (properties.AspectWidth.HasValue != properties.AspectHeight.HasValue)
            {
                yield return(new ValidationError(Not.Defined2("Aspect width", "aspect height"),
                                                 nameof(properties.AspectWidth),
                                                 nameof(properties.AspectHeight)));
            }
        }
コード例 #16
0
        public IEnumerable <ValidationError> Visit(AssetsFieldProperties properties)
        {
            if (IsMaxGreaterThanMin(properties.MaxItems, properties.MinItems))
            {
                yield return(new ValidationError(Not.GreaterEqualsThan(nameof(properties.MaxItems), nameof(properties.MinItems)),
                                                 nameof(properties.MinItems),
                                                 nameof(properties.MaxItems)));
            }

            if (IsMaxGreaterThanMin(properties.MaxHeight, properties.MinHeight))
            {
                yield return(new ValidationError(Not.GreaterEqualsThan(nameof(properties.MaxHeight), nameof(properties.MinHeight)),
                                                 nameof(properties.MaxHeight),
                                                 nameof(properties.MinHeight)));
            }

            if (IsMaxGreaterThanMin(properties.MaxWidth, properties.MinWidth))
            {
                yield return(new ValidationError(Not.GreaterEqualsThan(nameof(properties.MaxWidth), nameof(properties.MinWidth)),
                                                 nameof(properties.MaxWidth),
                                                 nameof(properties.MinWidth)));
            }

            if (IsMaxGreaterThanMin(properties.MaxSize, properties.MinSize))
            {
                yield return(new ValidationError(Not.GreaterThan(nameof(properties.MaxSize), nameof(properties.MinSize)),
                                                 nameof(properties.MaxSize),
                                                 nameof(properties.MinSize)));
            }

            if (properties.AspectWidth.HasValue != properties.AspectHeight.HasValue)
            {
                yield return(new ValidationError(Not.BothDefined(nameof(properties.AspectWidth), nameof(properties.AspectHeight)),
                                                 nameof(properties.AspectWidth),
                                                 nameof(properties.AspectHeight)));
            }
        }
コード例 #17
0
        public IEnumerable <ValidationError> Visit(AssetsFieldProperties 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)));
            }

            if (properties.MaxHeight.HasValue && properties.MinHeight.HasValue && properties.MinHeight.Value >= properties.MaxHeight.Value)
            {
                yield return(new ValidationError("Max height must be greater than min height.",
                                                 nameof(properties.MaxHeight),
                                                 nameof(properties.MinHeight)));
            }

            if (properties.MaxWidth.HasValue && properties.MinWidth.HasValue && properties.MinWidth.Value >= properties.MaxWidth.Value)
            {
                yield return(new ValidationError("Max width must be greater than min width.",
                                                 nameof(properties.MaxWidth),
                                                 nameof(properties.MinWidth)));
            }

            if (properties.MaxSize.HasValue && properties.MinSize.HasValue && properties.MinSize.Value >= properties.MaxSize.Value)
            {
                yield return(new ValidationError("Max size must be greater than min size.",
                                                 nameof(properties.MaxSize),
                                                 nameof(properties.MinSize)));
            }

            if (properties.AspectWidth.HasValue != properties.AspectHeight.HasValue)
            {
                yield return(new ValidationError("Aspect width and height must be defined.",
                                                 nameof(properties.AspectWidth),
                                                 nameof(properties.AspectHeight)));
            }
        }
コード例 #18
0
        private static FieldPropertiesDto Convert(AssetsFieldProperties source)
        {
            var result = SimpleMapper.Map(source, new AssetsFieldPropertiesDto());

            return(result);
        }
コード例 #19
0
 private static RootField <AssetsFieldProperties> Field(AssetsFieldProperties properties)
 {
     return(Fields.Assets(1, "my-assets", Partitioning.Invariant, properties));
 }
コード例 #20
0
 public JToken Visit(AssetsFieldProperties properties)
 {
     return(new JArray());
 }
コード例 #21
0
 public FieldPropertiesDto Visit(AssetsFieldProperties properties)
 {
     return(SimpleMapper.Map(properties, new AssetsFieldPropertiesDto()));
 }
コード例 #22
0
        public IJsonValue Visit(AssetsFieldProperties properties, Args args)
        {
            var value = GetDefaultValue(properties.DefaultValue, properties.DefaultValues, args.Partition);

            return(Array(value));
        }
コード例 #23
0
 private static AssetsField Field(AssetsFieldProperties properties)
 {
     return(new AssetsField(1, "my-assets", Partitioning.Invariant, properties));
 }
コード例 #24
0
 public AssetsValidator(AssetsFieldProperties properties)
 {
     this.properties = properties;
 }
コード例 #25
0
 public string Visit(AssetsFieldProperties properties, Args args)
 {
     return(FormatArray(args.Value, "Asset", "Assets"));
 }
コード例 #26
0
 public static Schema AddAssets(this Schema schema, long id, string name, Partitioning partitioning, AssetsFieldProperties properties = null)
 {
     return(schema.AddField(Assets(id, name, partitioning, properties)));
 }
コード例 #27
0
 private IValidator Validator(AssetsFieldProperties properties)
 {
     return(new AssetsValidator(properties.IsRequired, properties, FoundAssets()));
 }
コード例 #28
0
 public static Field <AssetsFieldProperties> Assets(long id, string name, Partitioning partitioning, AssetsFieldProperties properties = null)
 {
     return(new Field <AssetsFieldProperties>(id, name, partitioning, properties ?? new AssetsFieldProperties()));
 }