public void SortWithoutArgument() { var input = new ArrayValue(new[] { new StringValue("c"), new StringValue("a"), new StringValue("B"), }); var arguments = new FilterArguments(); var context = new TemplateContext(); var result = ArrayFilters.Sort(input, arguments, context); Assert.Equal(3, result.Enumerate().Count()); Assert.Equal("B", result.Enumerate().ElementAt(0).ToStringValue()); Assert.Equal("a", result.Enumerate().ElementAt(1).ToStringValue()); Assert.Equal("c", result.Enumerate().ElementAt(2).ToStringValue()); }
public void Sort() { var input = new ArrayValue(new[] { new ObjectValue(new { Title = "c" }), new ObjectValue(new { Title = "a" }), new ObjectValue(new { Title = "b" }) }); var arguments = new FilterArguments().Add(new StringValue("Title")); var context = new TemplateContext(); context.MemberAccessStrategy.Register(new { Title = "" }.GetType(), "Title"); var result = ArrayFilters.Sort(input, arguments, context); Assert.Equal(3, result.Enumerate().Count()); Assert.Equal("a", ((dynamic)result.Enumerate().ElementAt(0).ToObjectValue()).Title); Assert.Equal("b", ((dynamic)result.Enumerate().ElementAt(1).ToObjectValue()).Title); Assert.Equal("c", ((dynamic)result.Enumerate().ElementAt(2).ToObjectValue()).Title); }
public async Task Sort() { var sample = new { Title = "", Address = new { Zip = 0 } }; var input = new ArrayValue(new[] { new ObjectValue(new { Title = "c", Address = new { Zip = 2 } }), new ObjectValue(new { Title = "a", Address = new { Zip = 3 } }), new ObjectValue(new { Title = "b", Address = new { Zip = 1 } }) }); var arguments = new FilterArguments().Add(new StringValue("Title")); var options = new TemplateOptions(); var context = new TemplateContext(options); options.MemberAccessStrategy.Register(sample.GetType(), "Title"); var result = await ArrayFilters.Sort(input, arguments, context); Assert.Equal(3, result.Enumerate().Count()); Assert.Equal("a", ((dynamic)result.Enumerate().ElementAt(0).ToObjectValue()).Title); Assert.Equal("b", ((dynamic)result.Enumerate().ElementAt(1).ToObjectValue()).Title); Assert.Equal("c", ((dynamic)result.Enumerate().ElementAt(2).ToObjectValue()).Title); arguments = new FilterArguments().Add(new StringValue("Address.Zip")); options = new TemplateOptions(); context = new TemplateContext(options); options.MemberAccessStrategy.Register(sample.GetType(), "Address"); options.MemberAccessStrategy.Register(sample.Address.GetType(), "Zip"); result = await ArrayFilters.Sort(input, arguments, context); Assert.Equal(3, result.Enumerate().Count()); Assert.Equal("b", ((dynamic)result.Enumerate().ElementAt(0).ToObjectValue()).Title); Assert.Equal("c", ((dynamic)result.Enumerate().ElementAt(1).ToObjectValue()).Title); Assert.Equal("a", ((dynamic)result.Enumerate().ElementAt(2).ToObjectValue()).Title); }