public async Task Should_add_error_if_validating_data_with_unknown_field() { var data = new NamedContentData() .AddField("unknown", new ContentFieldData()); await data.ValidateAsync(languagesConfig.ToResolver(), errors, schema); errors.Should().BeEquivalentTo( new List <ValidationError> { new ValidationError("Not a known field.", "unknown") }); }
public async Task Should_add_error_if_required_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.ValidateAsync(context, schema, languagesConfig.ToResolver(), errors); errors.ShouldBeEquivalentTo( new List <ValidationError> { new ValidationError("my-field is required", "my-field") }); }
public async Task Should_not_add_error_if_nested_separator_not_defined() { schema = schema.AddArray(1, "my-field", Partitioning.Invariant, f => f. AddUI(2, "my-nested")); var data = new NamedContentData() .AddField("my-field", new ContentFieldData() .AddJsonValue( JsonValue.Array( JsonValue.Object()))); await data.ValidateAsync(languagesConfig.ToResolver(), errors, schema); Assert.Empty(errors); }
public async Task Should_add_error_if_validating_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.ValidateAsync(context, schema, languagesConfig.ToResolver(), errors); errors.ShouldBeEquivalentTo( new List <ValidationError> { new ValidationError("my-field (de) is required", "my-field"), new ValidationError("my-field (en) is required", "my-field") }); }
public async Task Should_add_error_if_required_data_string_field_is_not_in_bag() { schema = schema.AddString(1, "my-field", Partitioning.Invariant, new StringFieldProperties { IsRequired = true }); var data = new NamedContentData(); await data.ValidateAsync(languagesConfig.ToResolver(), errors, schema); errors.Should().BeEquivalentTo( new List <ValidationError> { new ValidationError("Field is required.", "my-field") }); }
public async Task Should_not_add_error_if_required_field_has_no_value_for_optional_language() { var optionalConfig = LanguagesConfig.Create(Language.ES, Language.IT).Update(Language.IT, true, false, null); schema = schema.AddOrUpdateField(new StringField(1, "my-field", Partitioning.Language, new StringFieldProperties { IsRequired = true })); var data = new NamedContentData() .AddField("my-field", new ContentFieldData() .AddValue("es", "value")); await data.ValidateAsync(context, schema, optionalConfig.ToResolver(), errors); Assert.Empty(errors); }
public async Task Should_add_error_if_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.ValidateAsync(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_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.ValidateAsync(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_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.ValidateAsync(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_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.ValidateAsync(context, schema, languagesConfig.ToResolver(), errors); errors.ShouldBeEquivalentTo( new List <ValidationError> { new ValidationError("my-field must be less than '100'", "my-field") }); }
public async Task Should_add_error_if_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.ValidateAsync(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)") }); }
public async Task Should_add_error_if_non_localizable_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.ValidateAsync(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)") }); }
public async Task Should_add_error_if_validating_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.ValidateAsync(languagesConfig.ToResolver(), errors, schema); errors.Should().BeEquivalentTo( new List <ValidationError> { new ValidationError("Must be less or equal to 100.", "my-field") }); }
public async Task Should_not_add_error_if_required_field_has_no_value_for_optional_language() { var optionalConfig = LanguagesConfig.English .Set(Language.ES) .Set(Language.IT, true) .Remove(Language.EN); schema = schema.AddString(1, "my-field", Partitioning.Language, new StringFieldProperties { IsRequired = true }); var data = new NamedContentData() .AddField("my-field", new ContentFieldData() .AddValue("es", "value")); await data.ValidateAsync(optionalConfig.ToResolver(), errors, schema); Assert.Empty(errors); }
public async Task Should_add_error_if_field_object_is_defined() { var schema = new Schema("my-schema") .AddUI(1, "my-ui1", Partitioning.Invariant) .AddUI(2, "my-ui2", Partitioning.Invariant); var data = new NamedContentData() .AddField("my-ui1", new ContentFieldData()) .AddField("my-ui2", new ContentFieldData() .AddValue("iv", null)); var dataErrors = new List <ValidationError>(); await data.ValidateAsync(x => InvariantPartitioning.Instance, dataErrors, schema); dataErrors.Should().BeEquivalentTo( new[] { new ValidationError("Value must not be defined.", "my-ui1"), new ValidationError("Value must not be defined.", "my-ui2") }); }
public Task ValidateAsync(NamedContentData data) { var ctx = CreateValidationContext(); return(data.ValidateAsync(ctx, schemaEntity.SchemaDef, appEntity.PartitionResolver(), message)); }