Пример #1
0
        public void Should_convert_name_to_name()
        {
            var field =
                Fields.Array(1, "1", Partitioning.Invariant,
                             Fields.Number(1, "field1"),
                             Fields.Number(2, "field2").Hide());

            var input =
                new ContentFieldData()
                .AddJsonValue(
                    JsonValue.Array(
                        JsonValue.Object()
                        .Add("field1", 100)
                        .Add("field2", 200)
                        .Add("invalid", 300)));

            var actual = FieldConverters.ForNestedName2Name(ValueConverters.ExcludeHidden())(input, field);

            var expected =
                new ContentFieldData()
                .AddJsonValue(
                    JsonValue.Array(
                        JsonValue.Object()
                        .Add("field1", 100)));

            Assert.Equal(expected, actual);
        }
        public void Should_format_null_json_value()
        {
            var field = Fields.Array(1, "field", Partitioning.Invariant);

            var formatted = StringFormatter.Format(JsonValue.Null, field);

            Assert.Empty(formatted);
        }
        public void Should_format_array_field_with_wrong_type()
        {
            var value = JsonValue.True;

            var field = Fields.Array(1, "field", Partitioning.Invariant);

            var formatted = StringFormatter.Format(value, field);

            Assert.Equal("0 Items", formatted);
        }
        public void Should_format_array_field_with_multiple_items()
        {
            var value = JsonValue.Array(JsonValue.Object(), JsonValue.Object());

            var field = Fields.Array(1, "field", Partitioning.Invariant);

            var formatted = StringFormatter.Format(value, field);

            Assert.Equal("2 Items", formatted);
        }
Пример #5
0
        public void Should_format_array_field_with_single_item()
        {
            var value = JsonValue.Array(JsonValue.Object());

            var field = Fields.Array(1, "field", Partitioning.Invariant);

            var formatted = StringFormatter.Format(field, value);

            Assert.Equal("1 Item", formatted);
        }
Пример #6
0
        public void Should_format_array_field_without_items()
        {
            var value = JsonValue.Array();

            var field = Fields.Array(1, "field", Partitioning.Invariant);

            var formatted = StringFormatter.Format(field, value);

            Assert.Equal("0 Items", formatted);
        }
Пример #7
0
        public void Should_not_convert_nested_asset_ids_when_field_name_does_not_match(string path)
        {
            var field = Fields.Array(1, "parent", Partitioning.Invariant, Fields.Assets(11, "assets"));

            var source = JsonValue.Array(id1, id2);

            var expected = source;

            var result = ValueConverters.ResolveAssetUrls(HashSet.Of(path), urlGenerator)(source, field.Fields[0], field);

            Assert.Equal(expected, result);
        }
Пример #8
0
        public void Should_convert_nested_asset_ids_to_urls(string path)
        {
            var field = Fields.Array(1, "parent", Partitioning.Invariant, Fields.Assets(11, "assets"));

            var source = JsonValue.Array(id1, id2);

            var expected = JsonValue.Array($"url/to/{id1}", $"url/to/{id2}");

            var result = ValueConverters.ResolveAssetUrls(appId, HashSet.Of(path), urlGenerator)(source, field.Fields[0], field);

            Assert.Equal(expected, result);
        }
Пример #9
0
        public void Should_return_ids_from_nested_field(NestedField field)
        {
            var id1 = DomainId.NewGuid();
            var id2 = DomainId.NewGuid();

            var arrayField = Fields.Array(1, "my-array", Partitioning.Invariant, field);

            var value =
                JsonValue.Array(
                    JsonValue.Object()
                    .Add(field.Name, CreateValue(id1, id2)));

            var result = arrayField.GetReferencedIds(value).ToArray();

            Assert.Equal(new[] { id1, id2 }, result);
        }
Пример #10
0
        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 =
                JsonValue.Array(
                    JsonValue.Object()
                    .Add("my-refs", CreateValue(id1, id2)));

            var result = sut.ExtractReferences(value).ToArray();

            Assert.Equal(new[] { id1, id2, schemaId }, result);
        }
Пример #11
0
        public void Should_convert_nested_asset_ids_to_urls_for_wildcard_fields()
        {
            var field =
                Fields.Array(1, "array", Partitioning.Invariant,
                             Fields.Assets(1, "assets"));

            var source =
                new ContentFieldData()
                .AddJsonValue(JsonValue.Array(
                                  JsonValue.Object()
                                  .Add("assets", JsonValue.Array("1", "2"))));

            var expected =
                new ContentFieldData()
                .AddJsonValue(JsonValue.Array(
                                  JsonValue.Object()
                                  .Add("assets", JsonValue.Array("url/to/1", "url/to/2"))));

            var result = FieldConverters.ResolveAssetUrls(new HashSet <string>(new[] { "*" }), assetUrlGenerator)(source, field);

            Assert.Equal(expected, result);
        }
Пример #12
0
        public void Should_convert_nested_asset_ids_to_urls()
        {
            var field =
                Fields.Array(1, "array", Partitioning.Invariant,
                             Fields.Assets(1, "assets"));

            var source =
                new ContentFieldData()
                .AddJsonValue(JsonValue.Array(
                                  JsonValue.Object()
                                  .Add("assets", JsonValue.Array(id1, id2))));

            var expected =
                new ContentFieldData()
                .AddJsonValue(JsonValue.Array(
                                  JsonValue.Object()
                                  .Add("assets", JsonValue.Array($"url/to/{id1}", $"url/to/{id2}"))));

            var result = FieldConverters.ResolveAssetUrls(new HashSet <string>(new[] { "array.assets" }), urlGenerato)(source, field);

            Assert.Equal(expected, result);
        }
Пример #13
0
 private static RootField <ArrayFieldProperties> Field(ArrayFieldProperties properties)
 {
     return(Fields.Array(1, "my-array", Partitioning.Invariant, properties));
 }
Пример #14
0
 private static RootField <ArrayFieldProperties> Field(ArrayFieldProperties properties)
 {
     return(Fields.Array(1, "myArray", Partitioning.Invariant, properties, null, Fields.String(2, "myString")));
 }