public void Map() { var input = new ArrayValue(new[] { new ObjectValue(new { Title = "a" }), new ObjectValue(new { Title = "b" }), new ObjectValue(new { Title = "c" }) }); var arguments = new FilterArguments().Add(new StringValue("Title")); var context = new TemplateContext(); context.MemberAccessStrategy.Register(new { Title = "a" }.GetType()); var result = ArrayFilters.Map(input, arguments, context); Assert.Equal(3, result.Enumerate().Count()); Assert.Equal(new StringValue("a"), result.Enumerate().ElementAt(0)); Assert.Equal(new StringValue("b"), result.Enumerate().ElementAt(1)); Assert.Equal(new StringValue("c"), result.Enumerate().ElementAt(2)); }
public async Task Map_DeepProperties() { var sample = new { Title = new { Text = "a" } }; var input = new ArrayValue(new[] { new ObjectValue(new { Title = new { Text = "a" } }), new ObjectValue(new { Title = new { Text = "b" } }), new ObjectValue(new { Title = new { Text = "c" } }) }); var arguments = new FilterArguments().Add(new StringValue("Title.Text")); var context = new TemplateContext(); context.MemberAccessStrategy.Register(sample.GetType()); context.MemberAccessStrategy.Register(sample.Title.GetType()); var result = await ArrayFilters.Map(input, arguments, context); Assert.Equal(3, result.Enumerate().Count()); Assert.Equal(new StringValue("a"), result.Enumerate().ElementAt(0)); Assert.Equal(new StringValue("b"), result.Enumerate().ElementAt(1)); Assert.Equal(new StringValue("c"), result.Enumerate().ElementAt(2)); }