Example #1
0
        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));
        }
Example #2
0
        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));
        }