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. 11
      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));
}
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)
{
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,
DateTimeFieldProperties? properties = null, IFieldSettings? settings = null)
{

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

@ -280,9 +280,16 @@ namespace Squidex.Domain.Apps.Core.ConvertContent
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))
{
return ConvertNested(schema.FieldCollection, obj, null, converters);
if (field.TryGetResolvedSchema(type.Value, out var schema))
{
return ConvertNested(schema.FieldCollection, obj, null, converters);
}
else
{
return obj;
}
}
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)
.AddReferences(5, "references", Partitioning.Invariant)
.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[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]
@ -94,7 +99,18 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.AddInvariant(
JsonValue.Array(
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",
new ContentFieldData()
.AddInvariant(
@ -106,7 +122,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.Add("array",
JsonValue.Array(
JsonValue.Object()
.Add("nested", JsonValue.Array(id1, id2))))
.Add("nestedAssets", JsonValue.Array(id1, id2))))
.Add(Component.Discriminator, DomainId.Empty)))
.AddField("components",
new ContentFieldData()
@ -120,7 +136,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.Add("array",
JsonValue.Array(
JsonValue.Object()
.Add("nested", JsonValue.Array(id1, id2))))
.Add("nestedAssets", JsonValue.Array(id1, id2))))
.Add(Component.Discriminator, DomainId.Empty))));
var expected =
@ -136,7 +152,18 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.AddInvariant(
JsonValue.Array(
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",
new ContentFieldData()
.AddInvariant(
@ -148,7 +175,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.Add("array",
JsonValue.Array(
JsonValue.Object()
.Add("nested", JsonValue.Array(id2))))
.Add("nestedAssets", JsonValue.Array(id2))))
.Add(Component.Discriminator, DomainId.Empty)))
.AddField("components",
new ContentFieldData()
@ -162,7 +189,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.Add("array",
JsonValue.Array(
JsonValue.Object()
.Add("nested", JsonValue.Array(id2))))
.Add("nestedAssets", JsonValue.Array(id2))))
.Add(Component.Discriminator, DomainId.Empty))));
var converter =

Loading…
Cancel
Save