public void Should_cleanup_deleted_ids() { var id1 = DomainId.NewGuid(); var id2 = DomainId.NewGuid(); var source = new ContentData() .AddField("references", new ContentFieldData() .AddInvariant(JsonValue.Array(id1, id2))) .AddField("assets", new ContentFieldData() .AddInvariant(JsonValue.Array(id1))) .AddField("array", new ContentFieldData() .AddInvariant( JsonValue.Array( JsonValue.Object() .Add("nested", JsonValue.Array(id1, id2))))); var expected = new ContentData() .AddField("references", new ContentFieldData() .AddInvariant(JsonValue.Array(id2))) .AddField("assets", new ContentFieldData() .AddInvariant(JsonValue.Array())) .AddField("array", new ContentFieldData() .AddInvariant( JsonValue.Array( JsonValue.Object() .Add("nested", JsonValue.Array(id2))))); var cleaner = ValueReferencesConverter.CleanReferences(new HashSet <DomainId> { id2 }); var cleanNested = ValueConverters.ForNested(cleaner); var converter = FieldConverters.ForValues(cleaner, cleanNested); var actual = source.Convert(schema, converter); Assert.Equal(expected, actual); }
public void Should_convert_name_to_name() { var input = new ContentData() .AddField("field1", new ContentFieldData() .AddLocalized("en", "EN")) .AddField("field2", new ContentFieldData() .AddInvariant(1)) .AddField("invalid", new ContentFieldData() .AddInvariant(2)); var actual = input.Convert(schema, (data, field) => field.Name == "field2" ? null : data); var expected = new ContentData() .AddField("field1", new ContentFieldData() .AddLocalized("en", "EN")); Assert.Equal(expected, actual); }
public void Should_apply_value_conversion_on_all_levels() { var source = new ContentData() .AddField("references", new ContentFieldData() .AddInvariant(JsonValue.Array(1, 2))) .AddField("assets1", new ContentFieldData() .AddInvariant(JsonValue.Array(1))) .AddField("array", new ContentFieldData() .AddInvariant( JsonValue.Array( JsonValue.Object() .Add("nested", JsonValue.Array(1, 2))))) .AddField("component", new ContentFieldData() .AddInvariant( JsonValue.Object() .Add("references", JsonValue.Array(1, 2)) .Add("assets1", JsonValue.Array(1)) .Add("array", JsonValue.Array( JsonValue.Object() .Add("nested", JsonValue.Array(1, 2)))) .Add(Component.Discriminator, DomainId.Empty))) .AddField("components", new ContentFieldData() .AddInvariant( JsonValue.Array( JsonValue.Object() .Add("references", JsonValue.Array(1, 2)) .Add("assets1", JsonValue.Array(1)) .Add("array", JsonValue.Array( JsonValue.Object() .Add("nested", JsonValue.Array(1, 2)))) .Add(Component.Discriminator, DomainId.Empty)))); var expected = new ContentData() .AddField("references", new ContentFieldData()) .AddField("assets1", new ContentFieldData() .AddInvariant(JsonValue.Array(1))) .AddField("array", new ContentFieldData() .AddInvariant( JsonValue.Array( JsonValue.Object()))) .AddField("component", new ContentFieldData() .AddInvariant( JsonValue.Object() .Add("assets1", JsonValue.Array(1)) .Add("array", JsonValue.Array( JsonValue.Object())) .Add(Component.Discriminator, DomainId.Empty))) .AddField("components", new ContentFieldData() .AddInvariant( JsonValue.Array( JsonValue.Object() .Add("assets1", JsonValue.Array(1)) .Add("array", JsonValue.Array( JsonValue.Object())) .Add(Component.Discriminator, DomainId.Empty)))); var actual = source.Convert(schema, FieldConverters.ForValues((data, field, parent) => field.Name != "assets1" ? null : data)); Assert.Equal(expected, actual); }
public void Should_cleanup_deleted_ids() { var id1 = DomainId.NewGuid(); var id2 = DomainId.NewGuid(); var source = new ContentData() .AddField("references", new ContentFieldData() .AddInvariant(JsonValue.Array(id1, id2))) .AddField("assets1", new ContentFieldData() .AddInvariant(JsonValue.Array(id1))) .AddField("array", new ContentFieldData() .AddInvariant( JsonValue.Array( JsonValue.Object() .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( JsonValue.Object() .Add("references", JsonValue.Array(id1, id2)) .Add("assets1", JsonValue.Array(id1)) .Add("array", JsonValue.Array( JsonValue.Object() .Add("nestedAssets", JsonValue.Array(id1, id2)))) .Add(Component.Discriminator, DomainId.Empty))) .AddField("components", new ContentFieldData() .AddInvariant( JsonValue.Array( JsonValue.Object() .Add("references", JsonValue.Array(id1, id2)) .Add("assets1", JsonValue.Array(id1)) .Add("array", JsonValue.Array( JsonValue.Object() .Add("nestedAssets", JsonValue.Array(id1, id2)))) .Add(Component.Discriminator, DomainId.Empty)))); var expected = new ContentData() .AddField("references", new ContentFieldData() .AddInvariant(JsonValue.Array(id2))) .AddField("assets1", new ContentFieldData() .AddInvariant(JsonValue.Array())) .AddField("array", new ContentFieldData() .AddInvariant( JsonValue.Array( JsonValue.Object() .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( JsonValue.Object() .Add("references", JsonValue.Array(id2)) .Add("assets1", JsonValue.Array()) .Add("array", JsonValue.Array( JsonValue.Object() .Add("nestedAssets", JsonValue.Array(id2)))) .Add(Component.Discriminator, DomainId.Empty))) .AddField("components", new ContentFieldData() .AddInvariant( JsonValue.Array( JsonValue.Object() .Add("references", JsonValue.Array(id2)) .Add("assets1", JsonValue.Array()) .Add("array", JsonValue.Array( JsonValue.Object() .Add("nestedAssets", JsonValue.Array(id2)))) .Add(Component.Discriminator, DomainId.Empty)))); var converter = FieldConverters.ForValues(components, ValueReferencesConverter.CleanReferences(new HashSet <DomainId> { id2 })); var actual = source.Convert(schema, converter); Assert.Equal(expected, actual); }