Browse Source

More validation fixes.

pull/346/head
Sebastian Stehle 7 years ago
parent
commit
d666cf0bea
  1. 6
      src/Squidex.Domain.Apps.Core.Operations/ValidateContent/JsonValueConverter.cs
  2. 2
      src/Squidex.Domain.Apps.Core.Operations/ValidateContent/ValidatorsFactory.cs
  3. 4
      tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/StringFieldTests.cs
  4. 26
      tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/TagsFieldTests.cs

6
src/Squidex.Domain.Apps.Core.Operations/ValidateContent/JsonValueConverter.cs

@ -179,7 +179,11 @@ namespace Squidex.Domain.Apps.Core.ValidateContent
foreach (var item in array)
{
if (item is JsonScalar<string> s)
if (item is JsonNull n)
{
result.Add(null);
}
else if (item is JsonScalar<string> s)
{
result.Add(s.Value);
}

2
src/Squidex.Domain.Apps.Core.Operations/ValidateContent/ValidatorsFactory.cs

@ -171,7 +171,7 @@ namespace Squidex.Domain.Apps.Core.ValidateContent
yield return new CollectionItemValidator(new AllowedValuesValidator<string>(field.Properties.AllowedValues));
}
yield return new CollectionItemValidator(new RequiredStringValidator());
yield return new CollectionItemValidator(new RequiredStringValidator(true));
}
}
}

4
tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/StringFieldTests.cs

@ -39,7 +39,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent
}
[Fact]
public async Task Should_add_error_if_string_is_required()
public async Task Should_add_error_if_string_is_required_but_null()
{
var sut = Field(new StringFieldProperties { IsRequired = true });
@ -50,7 +50,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent
}
[Fact]
public async Task Should_add_error_if_string_is_required_and_empty_string_is_passed()
public async Task Should_add_error_if_string_is_required_but_empty()
{
var sut = Field(new StringFieldProperties { IsRequired = true });

26
tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/TagsFieldTests.cs

@ -59,7 +59,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent
}
[Fact]
public async Task Should_add_error_if_tags_are_required_and_null()
public async Task Should_add_error_if_tags_are_required_but_null()
{
var sut = Field(new TagsFieldProperties { IsRequired = true });
@ -70,7 +70,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent
}
[Fact]
public async Task Should_add_error_if_tags_are_required_and_empty()
public async Task Should_add_error_if_tags_are_required_but_empty()
{
var sut = Field(new TagsFieldProperties { IsRequired = true });
@ -80,6 +80,28 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent
new[] { "Field is required." });
}
[Fact]
public async Task Should_add_error_if_tag_value_is_null()
{
var sut = Field(new TagsFieldProperties { IsRequired = true });
await sut.ValidateAsync(JsonValue.Array(JsonValue.Null), errors);
errors.Should().BeEquivalentTo(
new[] { "[1]: Field is required." });
}
[Fact]
public async Task Should_add_error_if_tag_value_is_empty()
{
var sut = Field(new TagsFieldProperties { IsRequired = true });
await sut.ValidateAsync(CreateValue(string.Empty), errors);
errors.Should().BeEquivalentTo(
new[] { "[1]: Field is required." });
}
[Fact]
public async Task Should_add_error_if_value_is_not_valid()
{

Loading…
Cancel
Save