Browse Source

Valid tests

pull/141/head
Sebastian Stehle 9 years ago
parent
commit
78b669ca48
  1. 2
      src/Squidex.Domain.Apps.Core/Schemas/Schema.cs
  2. 4
      src/Squidex.Domain.Apps.Events/Schemas/Utils/SchemaEventDispatcher.cs
  3. 24
      tests/Squidex.Domain.Apps.Core.Tests/ContentEnrichmentTests.cs
  4. 48
      tests/Squidex.Domain.Apps.Core.Tests/ContentValidationTests.cs
  5. 144
      tests/Squidex.Domain.Apps.Core.Tests/Contents/ContentDataTests.cs
  6. 20
      tests/Squidex.Domain.Apps.Core.Tests/Schemas/Json/JsonSerializerTests.cs
  7. 124
      tests/Squidex.Domain.Apps.Core.Tests/Schemas/SchemaTests.cs
  8. 42
      tests/Squidex.Domain.Apps.Core.Tests/Scripting/ContentDataObjectTests.cs
  9. 18
      tests/Squidex.Domain.Apps.Core.Tests/Scripting/JintScriptEngineTests.cs

2
src/Squidex.Domain.Apps.Core/Schemas/Schema.cs

@ -155,7 +155,7 @@ namespace Squidex.Domain.Apps.Core.Schemas
return new Schema(name, isPublished, properties, newFields);
}
public Schema Add(Field field)
public Schema AddField(Field field)
{
Guard.NotNull(field, nameof(field));

4
src/Squidex.Domain.Apps.Events/Schemas/Utils/SchemaEventDispatcher.cs

@ -46,7 +46,7 @@ namespace Squidex.Domain.Apps.Events.Schemas.Utils
field = field.Lock();
}
schema = schema.Add(field);
schema = schema.AddField(field);
fieldId++;
}
@ -62,7 +62,7 @@ namespace Squidex.Domain.Apps.Events.Schemas.Utils
Partitioning.Language :
Partitioning.Invariant;
return schema.Add(registry.CreateField(@event.FieldId.Id, @event.Name, partitioning, @event.Properties));
return schema.AddField(registry.CreateField(@event.FieldId.Id, @event.Name, partitioning, @event.Properties));
}
public static Schema Dispatch(FieldUpdated @event, Schema schema)

24
tests/Squidex.Domain.Apps.Core.Tests/ContentEnrichmentTests.cs

@ -22,21 +22,21 @@ namespace Squidex.Domain.Apps.Core
private readonly LanguagesConfig languagesConfig = LanguagesConfig.Create(Language.DE, Language.EN);
private readonly Schema schema =
Schema.Create("my-schema", new SchemaProperties())
.Add(new JsonField(1, "my-json", Partitioning.Invariant,
.AddField(new JsonField(1, "my-json", Partitioning.Invariant,
new JsonFieldProperties()))
.Add(new StringField(2, "my-string", Partitioning.Language,
.AddField(new StringField(2, "my-string", Partitioning.Language,
new StringFieldProperties { DefaultValue = "en-string" }))
.Add(new NumberField(3, "my-number", Partitioning.Invariant,
.AddField(new NumberField(3, "my-number", Partitioning.Invariant,
new NumberFieldProperties { DefaultValue = 123 }))
.Add(new AssetsField(4, "my-assets", Partitioning.Invariant,
.AddField(new AssetsField(4, "my-assets", Partitioning.Invariant,
new AssetsFieldProperties()))
.Add(new BooleanField(5, "my-boolean", Partitioning.Invariant,
.AddField(new BooleanField(5, "my-boolean", Partitioning.Invariant,
new BooleanFieldProperties { DefaultValue = true }))
.Add(new DateTimeField(6, "my-datetime", Partitioning.Invariant,
.AddField(new DateTimeField(6, "my-datetime", Partitioning.Invariant,
new DateTimeFieldProperties { DefaultValue = Now }))
.Add(new ReferencesField(7, "my-references", Partitioning.Invariant,
.AddField(new ReferencesField(7, "my-references", Partitioning.Invariant,
new ReferencesFieldProperties { SchemaId = Guid.NewGuid() }))
.Add(new GeolocationField(8, "my-geolocation", Partitioning.Invariant,
.AddField(new GeolocationField(8, "my-geolocation", Partitioning.Invariant,
new GeolocationFieldProperties()));
[Fact]
@ -44,10 +44,10 @@ namespace Squidex.Domain.Apps.Core
{
var data =
new NamedContentData()
.Add("my-string",
.AddField("my-string",
new ContentFieldData()
.AddValue("de", "de-string"))
.Add("my-number",
.AddField("my-number",
new ContentFieldData()
.AddValue("iv", 456));
@ -70,10 +70,10 @@ namespace Squidex.Domain.Apps.Core
var data =
new NamedContentData()
.Add("my-string",
.AddField("my-string",
new ContentFieldData()
.AddValue("de", string.Empty))
.Add("my-number",
.AddField("my-number",
new ContentFieldData()
.AddValue("iv", 456));

48
tests/Squidex.Domain.Apps.Core.Tests/ContentValidationTests.cs

@ -28,7 +28,7 @@ namespace Squidex.Domain.Apps.Core
{
var data =
new NamedContentData()
.Add("unknown",
.AddField("unknown",
new ContentFieldData());
await data.ValidateAsync(context, schema, languagesConfig.ToResolver(), errors);
@ -43,11 +43,11 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_add_error_if_validating_data_with_invalid_field()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Invariant, new NumberFieldProperties { MaxValue = 100 }));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant, new NumberFieldProperties { MaxValue = 100 }));
var data =
new NamedContentData()
.Add("my-field",
.AddField("my-field",
new ContentFieldData()
.SetValue(1000));
@ -63,11 +63,11 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_add_error_if_non_localizable_data_field_contains_language()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Invariant));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant));
var data =
new NamedContentData()
.Add("my-field",
.AddField("my-field",
new ContentFieldData()
.AddValue("es", 1)
.AddValue("it", 1));
@ -85,7 +85,7 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_add_error_if_validating_data_with_invalid_localizable_field()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Language, new NumberFieldProperties { IsRequired = true }));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language, new NumberFieldProperties { IsRequired = true }));
var data =
new NamedContentData();
@ -103,7 +103,7 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_add_error_if_required_data_field_is_not_in_bag()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Invariant, new NumberFieldProperties { IsRequired = true }));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant, new NumberFieldProperties { IsRequired = true }));
var data =
new NamedContentData();
@ -120,11 +120,11 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_add_error_if_data_contains_invalid_language()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Language));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language));
var data =
new NamedContentData()
.Add("my-field",
.AddField("my-field",
new ContentFieldData()
.AddValue("de", 1)
.AddValue("xx", 1));
@ -144,11 +144,11 @@ namespace Squidex.Domain.Apps.Core
var optionalConfig =
LanguagesConfig.Create(Language.ES, Language.IT).Update(Language.IT, true, false, null);
schema = schema.Add(new StringField(1, "my-field", Partitioning.Language, new StringFieldProperties { IsRequired = true }));
schema = schema.AddField(new StringField(1, "my-field", Partitioning.Language, new StringFieldProperties { IsRequired = true }));
var data =
new NamedContentData()
.Add("my-field",
.AddField("my-field",
new ContentFieldData()
.AddValue("es", "value"));
@ -160,11 +160,11 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_add_error_if_data_contains_unsupported_language()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Language));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language));
var data =
new NamedContentData()
.Add("my-field",
.AddField("my-field",
new ContentFieldData()
.AddValue("es", 1)
.AddValue("it", 1));
@ -184,7 +184,7 @@ namespace Squidex.Domain.Apps.Core
{
var data =
new NamedContentData()
.Add("unknown",
.AddField("unknown",
new ContentFieldData());
await data.ValidatePartialAsync(context, schema, languagesConfig.ToResolver(), errors);
@ -199,11 +199,11 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_add_error_if_validating_partial_data_with_invalid_field()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Invariant, new NumberFieldProperties { MaxValue = 100 }));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant, new NumberFieldProperties { MaxValue = 100 }));
var data =
new NamedContentData()
.Add("my-field",
.AddField("my-field",
new ContentFieldData()
.SetValue(1000));
@ -219,11 +219,11 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_add_error_if_non_localizable_partial_data_field_contains_language()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Invariant));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant));
var data =
new NamedContentData()
.Add("my-field",
.AddField("my-field",
new ContentFieldData()
.AddValue("es", 1)
.AddValue("it", 1));
@ -241,7 +241,7 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_not_add_error_if_validating_partial_data_with_invalid_localizable_field()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Language, new NumberFieldProperties { IsRequired = true }));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language, new NumberFieldProperties { IsRequired = true }));
var data =
new NamedContentData();
@ -254,7 +254,7 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_not_add_error_if_required_partial_data_field_is_not_in_bag()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Invariant, new NumberFieldProperties { IsRequired = true }));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant, new NumberFieldProperties { IsRequired = true }));
var data =
new NamedContentData();
@ -267,11 +267,11 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_add_error_if_partial_data_contains_invalid_language()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Language));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language));
var data =
new NamedContentData()
.Add("my-field",
.AddField("my-field",
new ContentFieldData()
.AddValue("de", 1)
.AddValue("xx", 1));
@ -288,11 +288,11 @@ namespace Squidex.Domain.Apps.Core
[Fact]
public async Task Should_add_error_if_partial_data_contains_unsupported_language()
{
schema = schema.Add(new NumberField(1, "my-field", Partitioning.Language));
schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language));
var data =
new NamedContentData()
.Add("my-field",
.AddField("my-field",
new ContentFieldData()
.AddValue("es", 1)
.AddValue("it", 1));

144
tests/Squidex.Domain.Apps.Core.Tests/Contents/ContentDataTests.cs

@ -22,12 +22,12 @@ namespace Squidex.Domain.Apps.Core.Contents
{
private readonly Schema schema =
Schema.Create("schema", new SchemaProperties())
.Add(new NumberField(1, "field1", Partitioning.Language))
.Add(new NumberField(2, "field2", Partitioning.Invariant))
.Add(new NumberField(3, "field3", Partitioning.Invariant).Hide())
.Add(new AssetsField(5, "assets1", Partitioning.Invariant))
.Add(new AssetsField(6, "assets2", Partitioning.Invariant))
.Add(new JsonField(4, "json", Partitioning.Language));
.AddField(new NumberField(1, "field1", Partitioning.Language))
.AddField(new NumberField(2, "field2", Partitioning.Invariant))
.AddField(new NumberField(3, "field3", Partitioning.Invariant).Hide())
.AddField(new AssetsField(5, "assets1", Partitioning.Invariant))
.AddField(new AssetsField(6, "assets2", Partitioning.Invariant))
.AddField(new JsonField(4, "json", Partitioning.Language));
private readonly LanguagesConfig languagesConfig = LanguagesConfig.Create(Language.EN, Language.DE);
[Fact]
@ -35,14 +35,14 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("en", "en_string")
.AddValue("de", "de_string"))
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("iv", 3))
.Add("invalid",
.AddField("invalid",
new ContentFieldData()
.AddValue("iv", 3));
@ -50,11 +50,11 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new IdContentData()
.Add(1,
.AddField(1,
new ContentFieldData()
.AddValue("en", "en_string")
.AddValue("de", "de_string"))
.Add(2,
.AddField(2,
new ContentFieldData()
.AddValue("iv", 3));
@ -66,7 +66,7 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new NamedContentData()
.Add("json",
.AddField("json",
new ContentFieldData()
.AddValue("en", new JObject())
.AddValue("de", null)
@ -76,7 +76,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new IdContentData()
.Add(4,
.AddField(4,
new ContentFieldData()
.AddValue("en", "e30=")
.AddValue("de", null)
@ -90,14 +90,14 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new IdContentData()
.Add(1,
.AddField(1,
new ContentFieldData()
.AddValue("en", "en_string")
.AddValue("de", "de_string"))
.Add(2,
.AddField(2,
new ContentFieldData()
.AddValue("iv", 3))
.Add(99,
.AddField(99,
new ContentFieldData()
.AddValue("iv", 3));
@ -105,11 +105,11 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("en", "en_string")
.AddValue("de", "de_string"))
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("iv", 3));
@ -121,7 +121,7 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new IdContentData()
.Add(4,
.AddField(4,
new ContentFieldData()
.AddValue("en", "e30=")
.AddValue("de", null)
@ -137,10 +137,10 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new NamedContentData()
.Add("field0",
.AddField("field0",
new ContentFieldData()
.AddValue("en", "en_string"))
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("en", "en_string")
.AddValue("de", "de_string"));
@ -149,7 +149,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("en", "en_string")
.AddValue("de", "de_string"));
@ -162,7 +162,7 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("en", "en_string")
.AddValue("de", "de_string")
@ -172,7 +172,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("en", "en_string")
.AddValue("de", "de_string"));
@ -185,7 +185,7 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new NamedContentData()
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("de", 2)
.AddValue("en", 3));
@ -194,7 +194,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new NamedContentData()
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("iv", 3));
@ -206,7 +206,7 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("iv", 3));
@ -214,7 +214,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("en", 3));
@ -226,8 +226,8 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new NamedContentData()
.Add("field1", null)
.Add("field2",
.AddField("field1", null)
.AddField("field2",
new ContentFieldData()
.AddValue("en", 2)
.AddValue("it", null));
@ -236,7 +236,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new NamedContentData()
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("en", 2));
@ -248,8 +248,8 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new IdContentData()
.Add(1, null)
.Add(2,
.AddField(1, null)
.AddField(2,
new ContentFieldData()
.AddValue("en", 2)
.AddValue("it", null));
@ -258,7 +258,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new IdContentData()
.Add(2,
.AddField(2,
new ContentFieldData()
.AddValue("en", 2));
@ -270,7 +270,7 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new NamedContentData()
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("de", 2)
.AddValue("it", 3));
@ -279,7 +279,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new NamedContentData()
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("iv", 2));
@ -291,10 +291,10 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var input =
new NamedContentData()
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("iv", 5))
.Add("field3",
.AddField("field3",
new ContentFieldData()
.AddValue("iv", 2));
@ -302,7 +302,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var expected =
new NamedContentData()
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("iv", 5));
@ -314,7 +314,7 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var data =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("iv", 1));
@ -326,18 +326,18 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var data =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("de", 1)
.AddValue("en", 2))
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("de", null)
.AddValue("en", 4))
.Add("field3",
.AddField("field3",
new ContentFieldData()
.AddValue("en", 6))
.Add("field4",
.AddField("field4",
new ContentFieldData()
.AddValue("it", 7));
@ -362,18 +362,18 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var data =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("de", 1)
.AddValue("en", 2))
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("de", null)
.AddValue("en", 4))
.Add("field3",
.AddField("field3",
new ContentFieldData()
.AddValue("en", 6))
.Add("field4",
.AddField("field4",
new ContentFieldData()
.AddValue("it", 7));
@ -394,32 +394,32 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var lhs =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("iv", 1))
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("de", 2));
var rhs =
new NamedContentData()
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("en", 3))
.Add("field3",
.AddField("field3",
new ContentFieldData()
.AddValue("iv", 4));
var expected =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("iv", 1))
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("de", 2)
.AddValue("en", 3))
.Add("field3",
.AddField("field3",
new ContentFieldData()
.AddValue("iv", 4));
@ -433,32 +433,32 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var lhs =
new IdContentData()
.Add(1,
.AddField(1,
new ContentFieldData()
.AddValue("iv", 1))
.Add(2,
.AddField(2,
new ContentFieldData()
.AddValue("de", 2));
var rhs =
new IdContentData()
.Add(2,
.AddField(2,
new ContentFieldData()
.AddValue("en", 3))
.Add(3,
.AddField(3,
new ContentFieldData()
.AddValue("iv", 4));
var expected =
new IdContentData()
.Add(1,
.AddField(1,
new ContentFieldData()
.AddValue("iv", 1))
.Add(2,
.AddField(2,
new ContentFieldData()
.AddValue("de", 2)
.AddValue("en", 3))
.Add(3,
.AddField(3,
new ContentFieldData()
.AddValue("iv", 4));
@ -472,19 +472,19 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var lhs =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("iv", 2))
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("iv", 2));
var rhs =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("iv", 2))
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("iv", 2));
@ -498,19 +498,19 @@ namespace Squidex.Domain.Apps.Core.Contents
{
var lhs =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("iv", 2))
.Add("field2",
.AddField("field2",
new ContentFieldData()
.AddValue("iv", 2));
var rhs =
new NamedContentData()
.Add("field1",
.AddField("field1",
new ContentFieldData()
.AddValue("en", 2))
.Add("field3",
.AddField("field3",
new ContentFieldData()
.AddValue("iv", 2));
@ -527,7 +527,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var input =
new NamedContentData()
.Add("assets1",
.AddField("assets1",
new ContentFieldData()
.AddValue("iv", new JArray(id1.ToString(), id2.ToString())));
@ -544,7 +544,7 @@ namespace Squidex.Domain.Apps.Core.Contents
var input =
new IdContentData()
.Add(5,
.AddField(5,
new ContentFieldData()
.AddValue("iv", new JArray(id1.ToString(), id2.ToString())));

20
tests/Squidex.Domain.Apps.Core.Tests/Schemas/Json/JsonSerializerTests.cs

@ -35,25 +35,25 @@ namespace Squidex.Domain.Apps.Core.Schemas.Json
{
var schema =
Schema.Create("user", new SchemaProperties { Hints = "The User" })
.Add(new JsonField(1, "my-json", Partitioning.Invariant,
.AddField(new JsonField(1, "my-json", Partitioning.Invariant,
new JsonFieldProperties()))
.Add(new AssetsField(2, "my-assets", Partitioning.Invariant,
.AddField(new AssetsField(2, "my-assets", Partitioning.Invariant,
new AssetsFieldProperties()))
.Add(new StringField(3, "my-string1", Partitioning.Language,
.AddField(new StringField(3, "my-string1", Partitioning.Language,
new StringFieldProperties { Label = "My String1", IsRequired = true, AllowedValues = ImmutableList.Create("a", "b") }))
.Add(new StringField(4, "my-string2", Partitioning.Invariant,
.AddField(new StringField(4, "my-string2", Partitioning.Invariant,
new StringFieldProperties { Hints = "My String1" }))
.Add(new NumberField(5, "my-number", Partitioning.Invariant,
.AddField(new NumberField(5, "my-number", Partitioning.Invariant,
new NumberFieldProperties { MinValue = 1, MaxValue = 10 }))
.Add(new BooleanField(6, "my-boolean", Partitioning.Invariant,
.AddField(new BooleanField(6, "my-boolean", Partitioning.Invariant,
new BooleanFieldProperties()))
.Add(new DateTimeField(7, "my-datetime", Partitioning.Invariant,
.AddField(new DateTimeField(7, "my-datetime", Partitioning.Invariant,
new DateTimeFieldProperties { Editor = DateTimeFieldEditor.DateTime }))
.Add(new DateTimeField(8, "my-date", Partitioning.Invariant,
.AddField(new DateTimeField(8, "my-date", Partitioning.Invariant,
new DateTimeFieldProperties { Editor = DateTimeFieldEditor.Date }))
.Add(new ReferencesField(9, "my-references", Partitioning.Invariant,
.AddField(new ReferencesField(9, "my-references", Partitioning.Invariant,
new ReferencesFieldProperties { SchemaId = Guid.NewGuid() }))
.Add(new GeolocationField(10, "my-geolocation", Partitioning.Invariant,
.AddField(new GeolocationField(10, "my-geolocation", Partitioning.Invariant,
new GeolocationFieldProperties()))
.HideField(1)
.LockField(2)

124
tests/Squidex.Domain.Apps.Core.Tests/Schemas/SchemaTests.cs

@ -45,7 +45,7 @@ namespace Squidex.Domain.Apps.Core.Schemas
[Fact]
public void Should_throw_exception_if_creating_schema_with_invalid_name()
{
Assert.Throws<ValidationException>(() => Schema.Create("Invalid Name", new SchemaProperties()));
Assert.Throws<ArgumentException>(() => Schema.Create(string.Empty, new SchemaProperties()));
}
[Fact]
@ -71,7 +71,7 @@ namespace Squidex.Domain.Apps.Core.Schemas
{
Add();
Assert.Throws<ValidationException>(() => sut.Add(new NumberField(2, "my-field", Partitioning.Invariant)));
Assert.Throws<ArgumentException>(() => sut.AddField(new NumberField(2, "my-field", Partitioning.Invariant)));
}
[Fact]
@ -85,12 +85,6 @@ namespace Squidex.Domain.Apps.Core.Schemas
Assert.True(sut.FieldsById[1].IsHidden);
}
[Fact]
public void Should_throw_exception_if_field_to_hide_does_not_exist()
{
Assert.Throws<DomainObjectNotFoundException>(() => sut.HideField(1));
}
[Fact]
public void Should_show_field()
{
@ -103,12 +97,6 @@ namespace Squidex.Domain.Apps.Core.Schemas
Assert.False(sut.FieldsById[1].IsHidden);
}
[Fact]
public void Should_throw_exception_if_field_to_show_does_not_exist()
{
Assert.Throws<DomainObjectNotFoundException>(() => sut.ShowField(2));
}
[Fact]
public void Should_disable_field()
{
@ -120,12 +108,6 @@ namespace Squidex.Domain.Apps.Core.Schemas
Assert.True(sut.FieldsById[1].IsDisabled);
}
[Fact]
public void Should_throw_exception_if_field_to_disable_does_not_exist()
{
Assert.Throws<DomainObjectNotFoundException>(() => sut.DisableField(1));
}
[Fact]
public void Should_enable_field()
{
@ -138,12 +120,6 @@ namespace Squidex.Domain.Apps.Core.Schemas
Assert.False(sut.FieldsById[1].IsDisabled);
}
[Fact]
public void Should_throw_exception_if_field_to_enable_does_not_exist()
{
Assert.Throws<DomainObjectNotFoundException>(() => sut.EnableField(1));
}
[Fact]
public void Should_lock_field()
{
@ -154,32 +130,6 @@ namespace Squidex.Domain.Apps.Core.Schemas
Assert.True(sut.FieldsById[1].IsLocked);
}
[Fact]
public void Should_throw_exception_if_field_to_lock_does_not_exist()
{
Assert.Throws<DomainObjectNotFoundException>(() => sut.LockField(1));
}
[Fact]
public void Should_throw_exception_if_updating_locked_field()
{
Add();
sut = sut.LockField(1);
Assert.Throws<DomainException>(() => sut.UpdateField(1, new NumberFieldProperties { IsRequired = true }));
}
[Fact]
public void Should_throw_exception_if_deleting_locked_field()
{
Add();
sut = sut.LockField(1);
Assert.Throws<DomainException>(() => sut.DeleteField(1));
}
[Fact]
public void Should_delete_field()
{
@ -190,12 +140,6 @@ namespace Squidex.Domain.Apps.Core.Schemas
Assert.Empty(sut.FieldsById);
}
[Fact]
public void Should_not_throw_exception_if_field_to_delete_does_not_exist()
{
sut.DeleteField(1);
}
[Fact]
public void Should_update_field()
{
@ -206,20 +150,6 @@ namespace Squidex.Domain.Apps.Core.Schemas
Assert.Equal("my-hints", sut.FieldsById[1].RawProperties.Hints);
}
[Fact]
public void Should_throw_exception_if_updating_field_with_invalid_property_type()
{
Add();
Assert.Throws<ArgumentException>(() => sut.UpdateField(1, new InvalidProperties()));
}
[Fact]
public void Should_throw_exception_if_field_to_update_does_not_exist()
{
Assert.Throws<DomainObjectNotFoundException>(() => sut.UpdateField(1, new NumberFieldProperties()));
}
[Fact]
public void Should_publish_schema()
{
@ -228,14 +158,6 @@ namespace Squidex.Domain.Apps.Core.Schemas
Assert.True(sut.IsPublished);
}
[Fact]
public void Should_throw_exception_if_schema_is_already_published()
{
sut = sut.Publish();
Assert.Throws<DomainException>(() => sut.Publish());
}
[Fact]
public void Should_unpublish_schema()
{
@ -245,12 +167,6 @@ namespace Squidex.Domain.Apps.Core.Schemas
Assert.False(sut.IsPublished);
}
[Fact]
public void Should_throw_exception_if_schema_is_not_published()
{
Assert.Throws<DomainException>(() => sut.Unpublish());
}
[Fact]
public void Should_reorder_fields()
{
@ -258,9 +174,9 @@ namespace Squidex.Domain.Apps.Core.Schemas
var field2 = new StringField(2, "2", Partitioning.Invariant);
var field3 = new StringField(3, "3", Partitioning.Invariant);
sut = sut.Add(field1);
sut = sut.Add(field2);
sut = sut.Add(field3);
sut = sut.AddField(field1);
sut = sut.AddField(field2);
sut = sut.AddField(field3);
sut = sut.ReorderFields(new List<long> { 3, 2, 1 });
Assert.Equal(new List<Field> { field3, field2, field1 }, sut.Fields.ToList());
@ -272,8 +188,8 @@ namespace Squidex.Domain.Apps.Core.Schemas
var field1 = new StringField(1, "1", Partitioning.Invariant);
var field2 = new StringField(2, "2", Partitioning.Invariant);
sut = sut.Add(field1);
sut = sut.Add(field2);
sut = sut.AddField(field1);
sut = sut.AddField(field2);
Assert.Throws<ArgumentException>(() => sut.ReorderFields(new List<long> { 1 }));
}
@ -284,8 +200,8 @@ namespace Squidex.Domain.Apps.Core.Schemas
var field1 = new StringField(1, "1", Partitioning.Invariant);
var field2 = new StringField(2, "2", Partitioning.Invariant);
sut = sut.Add(field1);
sut = sut.Add(field2);
sut = sut.AddField(field1);
sut = sut.AddField(field2);
Assert.Throws<ArgumentException>(() => sut.ReorderFields(new List<long> { 1, 4 }));
}
@ -314,25 +230,25 @@ namespace Squidex.Domain.Apps.Core.Schemas
{
var schema =
Schema.Create("user", new SchemaProperties { Hints = "The User" })
.Add(new JsonField(1, "my-json", Partitioning.Invariant,
.AddField(new JsonField(1, "my-json", Partitioning.Invariant,
new JsonFieldProperties()))
.Add(new AssetsField(2, "my-assets", Partitioning.Invariant,
.AddField(new AssetsField(2, "my-assets", Partitioning.Invariant,
new AssetsFieldProperties()))
.Add(new StringField(3, "my-string1", Partitioning.Language,
.AddField(new StringField(3, "my-string1", Partitioning.Language,
new StringFieldProperties { Label = "My String1", IsRequired = true, AllowedValues = ImmutableList.Create("a", "b") }))
.Add(new StringField(4, "my-string2", Partitioning.Invariant,
.AddField(new StringField(4, "my-string2", Partitioning.Invariant,
new StringFieldProperties { Hints = "My String1" }))
.Add(new NumberField(5, "my-number", Partitioning.Invariant,
.AddField(new NumberField(5, "my-number", Partitioning.Invariant,
new NumberFieldProperties { MinValue = 1, MaxValue = 10 }))
.Add(new BooleanField(6, "my-boolean", Partitioning.Invariant,
.AddField(new BooleanField(6, "my-boolean", Partitioning.Invariant,
new BooleanFieldProperties()))
.Add(new DateTimeField(7, "my-datetime", Partitioning.Invariant,
.AddField(new DateTimeField(7, "my-datetime", Partitioning.Invariant,
new DateTimeFieldProperties { Editor = DateTimeFieldEditor.DateTime }))
.Add(new DateTimeField(8, "my-date", Partitioning.Invariant,
.AddField(new DateTimeField(8, "my-date", Partitioning.Invariant,
new DateTimeFieldProperties { Editor = DateTimeFieldEditor.Date }))
.Add(new GeolocationField(9, "my-geolocation", Partitioning.Invariant,
.AddField(new GeolocationField(9, "my-geolocation", Partitioning.Invariant,
new GeolocationFieldProperties()))
.Add(new ReferencesField(10, "my-references", Partitioning.Invariant,
.AddField(new ReferencesField(10, "my-references", Partitioning.Invariant,
new ReferencesFieldProperties()));
return schema;
@ -342,7 +258,7 @@ namespace Squidex.Domain.Apps.Core.Schemas
{
var field = new NumberField(1, "my-field", Partitioning.Invariant);
sut = sut.Add(field);
sut = sut.AddField(field);
return field;
}

42
tests/Squidex.Domain.Apps.Core.Tests/Scripting/ContentDataObjectTests.cs

@ -24,7 +24,7 @@ namespace Squidex.Domain.Apps.Core.Scripting
var expected =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData()
.AddValue("iv", 1.0));
@ -40,7 +40,7 @@ namespace Squidex.Domain.Apps.Core.Scripting
var expected =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData()
.AddValue("iv", 1.0));
@ -62,7 +62,7 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var original =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData()
.AddValue("iv", 1.0));
@ -78,13 +78,13 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var original =
new NamedContentData()
.Add("string",
.AddField("string",
new ContentFieldData()
.AddValue("iv", "1"));
var expected =
new NamedContentData()
.Add("string",
.AddField("string",
new ContentFieldData()
.AddValue("iv", "1new"));
@ -98,13 +98,13 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var original =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData()
.AddValue("iv", 1.0));
var expected =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData()
.AddValue("iv", 3.0));
@ -118,13 +118,13 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var original =
new NamedContentData()
.Add("boolean",
.AddField("boolean",
new ContentFieldData()
.AddValue("iv", false));
var expected =
new NamedContentData()
.Add("boolean",
.AddField("boolean",
new ContentFieldData()
.AddValue("iv", true));
@ -138,13 +138,13 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var original =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData()
.AddValue("iv", new JArray(1.0, 2.0)));
var expected =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData()
.AddValue("iv", new JArray(1.0, 4.0, 5.0)));
@ -158,13 +158,13 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var original =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData()
.AddValue("iv", new JObject(new JProperty("lat", 1.0))));
var expected =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData()
.AddValue("iv", new JObject(new JProperty("lat", 1.0), new JProperty("lon", 4.0))));
@ -178,12 +178,12 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var original =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData());
var expected =
new NamedContentData()
.Add("number",
.AddField("number",
new ContentFieldData()
.AddValue("iv", 1.0));
@ -197,13 +197,13 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var original =
new NamedContentData()
.Add("string",
.AddField("string",
new ContentFieldData()
.AddValue("iv", "hello"));
var expected =
new NamedContentData()
.Add("string",
.AddField("string",
new ContentFieldData());
var result = ExecuteScript(original, @"delete data.string.iv");
@ -216,11 +216,11 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var content =
new NamedContentData()
.Add("f1",
.AddField("f1",
new ContentFieldData()
.AddValue("v11", "1")
.AddValue("v12", "2"))
.Add("f2",
.AddField("f2",
new ContentFieldData()
.AddValue("v21", "3")
.AddValue("v22", "4"));
@ -248,7 +248,7 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var original =
new NamedContentData()
.Add("obj",
.AddField("obj",
new ContentFieldData()
.AddValue("iv", new JObject(new JProperty("readonly", 1))));
@ -261,7 +261,7 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var original =
new NamedContentData()
.Add("obj",
.AddField("obj",
new ContentFieldData()
.AddValue("iv", new JArray()));

18
tests/Squidex.Domain.Apps.Core.Tests/Scripting/JintScriptEngineTests.cs

@ -87,7 +87,7 @@ namespace Squidex.Domain.Apps.Core.Scripting
var expected =
new NamedContentData()
.Add("operation",
.AddField("operation",
new ContentFieldData()
.AddValue("iv", "MyOperation"));
@ -108,18 +108,18 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var content =
new NamedContentData()
.Add("number0",
.AddField("number0",
new ContentFieldData()
.AddValue("iv", 1.0))
.Add("number1",
.AddField("number1",
new ContentFieldData()
.AddValue("iv", 1.0));
var expected =
new NamedContentData()
.Add("number1",
.AddField("number1",
new ContentFieldData()
.AddValue("iv", 2.0))
.Add("number2",
.AddField("number2",
new ContentFieldData()
.AddValue("iv", 10.0));
@ -143,18 +143,18 @@ namespace Squidex.Domain.Apps.Core.Scripting
{
var content =
new NamedContentData()
.Add("number0",
.AddField("number0",
new ContentFieldData()
.AddValue("iv", 1.0))
.Add("number1",
.AddField("number1",
new ContentFieldData()
.AddValue("iv", 1.0));
var expected =
new NamedContentData()
.Add("number1",
.AddField("number1",
new ContentFieldData()
.AddValue("iv", 2.0))
.Add("number2",
.AddField("number2",
new ContentFieldData()
.AddValue("iv", 10.0));

Loading…
Cancel
Save