Browse Source

Fixed old code.

pull/308/head
Sebastian 8 years ago
parent
commit
dbd8c194c8
  1. 10
      src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesCleaner.cs
  2. 2
      src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtractor.cs
  3. 23
      tests/Squidex.Domain.Apps.Core.Tests/Operations/ExtractReferenceIds/ReferenceExtractionTests.cs

10
src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesCleaner.cs

@ -29,11 +29,6 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds
return field.Accept(new ReferencesCleaner(value, oldReferences));
}
public JToken Visit(IArrayField field)
{
return value;
}
public JToken Visit(IField<AssetsFieldProperties> field)
{
return CleanIds();
@ -97,5 +92,10 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds
{
return value;
}
public JToken Visit(IArrayField field)
{
return value;
}
}
}

2
src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtractor.cs

@ -37,7 +37,7 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds
{
foreach (var nestedField in field.Fields)
{
if (item.TryGetValue(field.Name, out var value))
if (item.TryGetValue(nestedField.Name, out var value))
{
result.AddRange(nestedField.Accept(new ReferencesExtractor(value)));
}

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

@ -36,6 +36,8 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
.AddNumber(3, "field3", Partitioning.Invariant)
.AddAssets(5, "assets1", Partitioning.Invariant)
.AddAssets(6, "assets2", Partitioning.Invariant)
.AddArray(7, "array", Partitioning.Invariant, a => a
.AddAssets(71, "assets71"))
.AddJson(4, "json", Partitioning.Language)
.UpdateField(3, f => f.Hide());
}
@ -159,6 +161,27 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds
Assert.Same(token, result);
}
[Fact]
public void Should_return_ids_from_nested_references_field()
{
var id1 = Guid.NewGuid();
var id2 = Guid.NewGuid();
var sut =
Fields.Array(1, "my-array", Partitioning.Invariant,
Fields.References(1, "my-refs",
new ReferencesFieldProperties { SchemaId = schemaId }));
var value =
new JArray(
new JObject(
new JProperty("my-refs", CreateValue(id1, id2))));
var result = sut.ExtractReferences(value).ToArray();
Assert.Equal(new[] { id1, id2, schemaId }, result);
}
[Fact]
public void Should_return_ids_from_references_field()
{

Loading…
Cancel
Save