Browse Source

Improve tests.

pull/708/head
Sebastian Stehle 5 years ago
parent
commit
cfe133529a
  1. 8
      backend/src/Squidex.Domain.Apps.Core.Model/Schemas/Fields.cs
  2. 9
      backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs
  3. 41
      backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ExtractReferenceIds/ReferenceExtractionTests.cs

8
backend/src/Squidex.Domain.Apps.Core.Model/Schemas/Fields.cs

@ -263,12 +263,18 @@ namespace Squidex.Domain.Apps.Core.Schemas
return field.AddField(Boolean(id, name, properties, settings)); return field.AddField(Boolean(id, name, properties, settings));
} }
public static ArrayField AddComponents(this ArrayField field, long id, string name, public static ArrayField AddComponent(this ArrayField field, long id, string name,
ComponentFieldProperties? properties = null, IFieldSettings? settings = null) ComponentFieldProperties? properties = null, IFieldSettings? settings = null)
{ {
return field.AddField(Component(id, name, properties, settings)); return field.AddField(Component(id, name, properties, settings));
} }
public static ArrayField AddComponents(this ArrayField field, long id, string name,
ComponentsFieldProperties? properties = null, IFieldSettings? settings = null)
{
return field.AddField(Components(id, name, properties, settings));
}
public static ArrayField AddDateTime(this ArrayField field, long id, string name, public static ArrayField AddDateTime(this ArrayField field, long id, string name,
DateTimeFieldProperties? properties = null, IFieldSettings? settings = null) DateTimeFieldProperties? properties = null, IFieldSettings? settings = null)
{ {

9
backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs

@ -280,10 +280,17 @@ namespace Squidex.Domain.Apps.Core.ConvertContent
private static IJsonValue? ConvertComponent(IField field, IJsonValue? value, ValueConverter[] converters) private static IJsonValue? ConvertComponent(IField field, IJsonValue? value, ValueConverter[] converters)
{ {
if (value is JsonObject obj && obj.TryGetValue<JsonString>(Component.Discriminator, out var type) && field.TryGetResolvedSchema(type.Value, out var schema)) if (value is JsonObject obj && obj.TryGetValue<JsonString>(Component.Discriminator, out var type))
{
if (field.TryGetResolvedSchema(type.Value, out var schema))
{ {
return ConvertNested(schema.FieldCollection, obj, null, converters); return ConvertNested(schema.FieldCollection, obj, null, converters);
} }
else
{
return obj;
}
}
return null; return null;
} }

41
backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ExtractReferenceIds/ReferenceExtractionTests.cs

@ -31,10 +31,15 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.AddAssets(4, "assets2", Partitioning.Invariant) .AddAssets(4, "assets2", Partitioning.Invariant)
.AddReferences(5, "references", Partitioning.Invariant) .AddReferences(5, "references", Partitioning.Invariant)
.AddArray(6, "array", Partitioning.Invariant, a => a .AddArray(6, "array", Partitioning.Invariant, a => a
.AddAssets(31, "nested")); .AddAssets(31, "nestedAssets")
.AddComponent(32, "nestedComponent")
.AddComponents(33, "nestedComponents"));
schema.FieldsById[1].SetResolvedSchema(DomainId.Empty, schema); schema.FieldsById[1].SetResolvedSchema(DomainId.Empty, schema);
schema.FieldsById[2].SetResolvedSchema(DomainId.Empty, schema); schema.FieldsById[2].SetResolvedSchema(DomainId.Empty, schema);
((IArrayField)schema.FieldsById[6]).FieldsById[32].SetResolvedSchema(DomainId.Empty, schema);
((IArrayField)schema.FieldsById[6]).FieldsById[33].SetResolvedSchema(DomainId.Empty, schema);
} }
[Fact] [Fact]
@ -94,7 +99,18 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.AddInvariant( .AddInvariant(
JsonValue.Array( JsonValue.Array(
JsonValue.Object() JsonValue.Object()
.Add("nested", JsonValue.Array(id1, id2))))) .Add("nestedAssets", JsonValue.Array(id1, id2))
.Add("nestedComponent",
JsonValue.Object()
.Add("references",
JsonValue.Array(id1, id2))
.Add(Component.Discriminator, DomainId.Empty))
.Add("nestedComponents",
JsonValue.Array(
JsonValue.Object()
.Add("references",
JsonValue.Array(id1, id2))
.Add(Component.Discriminator, DomainId.Empty))))))
.AddField("component", .AddField("component",
new ContentFieldData() new ContentFieldData()
.AddInvariant( .AddInvariant(
@ -106,7 +122,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.Add("array", .Add("array",
JsonValue.Array( JsonValue.Array(
JsonValue.Object() JsonValue.Object()
.Add("nested", JsonValue.Array(id1, id2)))) .Add("nestedAssets", JsonValue.Array(id1, id2))))
.Add(Component.Discriminator, DomainId.Empty))) .Add(Component.Discriminator, DomainId.Empty)))
.AddField("components", .AddField("components",
new ContentFieldData() new ContentFieldData()
@ -120,7 +136,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.Add("array", .Add("array",
JsonValue.Array( JsonValue.Array(
JsonValue.Object() JsonValue.Object()
.Add("nested", JsonValue.Array(id1, id2)))) .Add("nestedAssets", JsonValue.Array(id1, id2))))
.Add(Component.Discriminator, DomainId.Empty)))); .Add(Component.Discriminator, DomainId.Empty))));
var expected = var expected =
@ -136,7 +152,18 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.AddInvariant( .AddInvariant(
JsonValue.Array( JsonValue.Array(
JsonValue.Object() JsonValue.Object()
.Add("nested", JsonValue.Array(id2))))) .Add("nestedAssets", JsonValue.Array(id2))
.Add("nestedComponent",
JsonValue.Object()
.Add("references",
JsonValue.Array(id2))
.Add(Component.Discriminator, DomainId.Empty))
.Add("nestedComponents",
JsonValue.Array(
JsonValue.Object()
.Add("references",
JsonValue.Array(id2))
.Add(Component.Discriminator, DomainId.Empty))))))
.AddField("component", .AddField("component",
new ContentFieldData() new ContentFieldData()
.AddInvariant( .AddInvariant(
@ -148,7 +175,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.Add("array", .Add("array",
JsonValue.Array( JsonValue.Array(
JsonValue.Object() JsonValue.Object()
.Add("nested", JsonValue.Array(id2)))) .Add("nestedAssets", JsonValue.Array(id2))))
.Add(Component.Discriminator, DomainId.Empty))) .Add(Component.Discriminator, DomainId.Empty)))
.AddField("components", .AddField("components",
new ContentFieldData() new ContentFieldData()
@ -162,7 +189,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.Add("array", .Add("array",
JsonValue.Array( JsonValue.Array(
JsonValue.Object() JsonValue.Object()
.Add("nested", JsonValue.Array(id2)))) .Add("nestedAssets", JsonValue.Array(id2))))
.Add(Component.Discriminator, DomainId.Empty)))); .Add(Component.Discriminator, DomainId.Empty))));
var converter = var converter =

Loading…
Cancel
Save