Esempio n. 1
0
        public async Task Should_add_error_if_array_field_has_required_nested_field()
        {
            schema = schema.AddArray(1, "my-field", Partitioning.Invariant, f => f.
                                     AddNumber(2, "my-nested", new NumberFieldProperties {
                IsRequired = true
            }));

            var data =
                new NamedContentData()
                .AddField("my-field",
                          new ContentFieldData()
                          .AddJsonValue(
                              JsonValue.Array(
                                  JsonValue.Object(),
                                  JsonValue.Object().Add("my-nested", 1),
                                  JsonValue.Object())));

            await data.ValidatePartialAsync(languagesConfig.ToResolver(), errors, schema);

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Field is required.", "my-field.iv[1].my-nested"),
                new ValidationError("Field is required.", "my-field.iv[3].my-nested")
            });
        }
Esempio n. 2
0
        public async Task Should_add_error_if_array_field_has_required_nested_field()
        {
            schema =
                schema.AddArray(1, "my-field", Partitioning.Invariant, f => f.
                                AddNumber(1, "my-nested", new NumberFieldProperties {
                IsRequired = true
            }));

            var data =
                new NamedContentData()
                .AddField("my-field",
                          new ContentFieldData()
                          .AddValue("iv", new JArray(
                                        new JObject(),
                                        new JObject(new JProperty("my-nested", 1)),
                                        new JObject())));

            await data.ValidatePartialAsync(context, schema, languagesConfig.ToResolver(), errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("my-field[1].my-nested: Field is required.", "my-field[1].my-nested"),
                new ValidationError("my-field[3].my-nested: Field is required.", "my-field[3].my-nested"),
            });
        }
        public async Task Should_not_add_error_if_required_partial_data_field_is_not_in_bag()
        {
            schema = schema.AddOrUpdateField(new NumberField(1, "my-field", Partitioning.Invariant, new NumberFieldProperties {
                IsRequired = true
            }));

            var data =
                new NamedContentData();

            await data.ValidatePartialAsync(context, schema, languagesConfig.ToResolver(), errors);

            Assert.Empty(errors);
        }
Esempio n. 4
0
        public async Task Should_not_add_error_if_validating_partial_data_with_invalid_localizable_field()
        {
            schema = schema.AddOrUpdateField(new NumberField(1, "my-field", Partitioning.Language, new NumberFieldProperties {
                IsRequired = true
            }));

            var data =
                new NamedContentData();

            await data.ValidatePartialAsync(context, schema, languagesConfig.ToResolver(), errors);

            Assert.Equal(0, errors.Count);
        }
        public async Task Should_add_error_if_validating_partial_data_with_unknown_field()
        {
            var data =
                new NamedContentData()
                .AddField("unknown",
                          new ContentFieldData());

            await data.ValidatePartialAsync(context, schema, languagesConfig.ToResolver(), errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("unknown is not a known field", "unknown")
            });
        }
        public async Task Should_add_error_if_partial_data_contains_invalid_language()
        {
            schema = schema.AddOrUpdateField(new NumberField(1, "my-field", Partitioning.Language));

            var data =
                new NamedContentData()
                .AddField("my-field",
                          new ContentFieldData()
                          .AddValue("de", 1)
                          .AddValue("xx", 1));

            await data.ValidatePartialAsync(context, schema, languagesConfig.ToResolver(), errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("my-field has an unsupported language value 'xx'", "my-field")
            });
        }
        public async Task Should_add_error_if_partial_data_contains_invalid_language()
        {
            schema = schema.AddNumber(1, "my-field", Partitioning.Language);

            var data =
                new NamedContentData()
                .AddField("my-field",
                          new ContentFieldData()
                          .AddValue("de", 1)
                          .AddValue("xx", 1));

            await data.ValidatePartialAsync(languagesConfig.ToResolver(), errors, schema);

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Not a known language.", "my-field(xx)")
            });
        }
        public async Task Should_add_error_if_non_localizable_partial_data_field_contains_language()
        {
            schema = schema.AddOrUpdateField(new NumberField(1, "my-field", Partitioning.Invariant));

            var data =
                new NamedContentData()
                .AddField("my-field",
                          new ContentFieldData()
                          .AddValue("es", 1)
                          .AddValue("it", 1));

            await data.ValidatePartialAsync(context, schema, languagesConfig.ToResolver(), errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("my-field has an unsupported invariant value 'es'", "my-field"),
                new ValidationError("my-field has an unsupported invariant value 'it'", "my-field")
            });
        }
        public async Task Should_add_error_if_validating_partial_data_with_invalid_field()
        {
            schema = schema.AddOrUpdateField(new NumberField(1, "my-field", Partitioning.Invariant, new NumberFieldProperties {
                MaxValue = 100
            }));

            var data =
                new NamedContentData()
                .AddField("my-field",
                          new ContentFieldData()
                          .SetValue(1000));

            await data.ValidatePartialAsync(context, schema, languagesConfig.ToResolver(), errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("my-field must be less than '100'", "my-field")
            });
        }
Esempio n. 10
0
        public async Task Should_add_error_if_partial_data_contains_unsupported_language()
        {
            schema = schema.AddNumber(1, "my-field", Partitioning.Language);

            var data =
                new NamedContentData()
                .AddField("my-field",
                          new ContentFieldData()
                          .AddValue("es", 1)
                          .AddValue("it", 1));

            await data.ValidatePartialAsync(context, schema, languagesConfig.ToResolver(), errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("my-field(es): Not a known language.", "my-field(es)"),
                new ValidationError("my-field(it): Not a known language.", "my-field(it)")
            });
        }
Esempio n. 11
0
        public async Task Should_add_error_if_non_localizable_partial_data_field_contains_language()
        {
            schema = schema.AddNumber(1, "my-field", Partitioning.Invariant);

            var data =
                new NamedContentData()
                .AddField("my-field",
                          new ContentFieldData()
                          .AddValue("es", 1)
                          .AddValue("it", 1));

            await data.ValidatePartialAsync(languagesConfig.ToResolver(), errors, schema);

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Not a known invariant value.", "my-field(es)"),
                new ValidationError("Not a known invariant value.", "my-field(it)")
            });
        }
Esempio n. 12
0
        public async Task Should_add_error_if_validating_partial_data_with_invalid_field()
        {
            schema = schema.AddNumber(1, "my-field", Partitioning.Invariant,
                                      new NumberFieldProperties {
                MaxValue = 100
            });

            var data =
                new NamedContentData()
                .AddField("my-field",
                          new ContentFieldData()
                          .AddValue("iv", 1000));

            await data.ValidatePartialAsync(languagesConfig.ToResolver(), errors, schema);

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Must be less or equal to 100.", "my-field")
            });
        }
Esempio n. 13
0
        public Task ValidatePartialAsync(NamedContentData data)
        {
            var ctx = CreateValidationContext();

            return(data.ValidatePartialAsync(ctx, schemaEntity.SchemaDef, appEntity.PartitionResolver(), message));
        }