public void Create_ArrayAllStringEqual_Expression_Null() { // arrange var value = new ObjectValueNode( new ObjectFieldNode("bar_all", NullValueNode.Default)); FooSimpleFilterType fooType = CreateType(new FooSimpleFilterType()); // act var filter = new QueryableFilterVisitorContext( fooType, typeof(FooSimple), MockFilterConvention.Default.GetExpressionDefinition(), TypeConversion.Default, true); QueryableFilterVisitor.Default.Visit(value, filter); Func <FooSimple, bool> func = filter.CreateOrAssert <FooSimple>().Compile(); // assert var a = new FooSimple { Bar = new string[] { null, null, null } }; Assert.True(func(a)); var b = new FooSimple { Bar = new[] { "c", "d", "b" } }; Assert.False(func(b)); }
public void Create_ArraySomeStringEqualWithNull_Expression() { // arrange var value = new ObjectValueNode( new ObjectFieldNode("bar_some", new ObjectValueNode( new ObjectFieldNode("element", new StringValueNode("a") ) ) ) ); FooSimpleFilterType fooType = CreateType(new FooSimpleFilterType()); // act var filter = new QueryableFilterVisitorContext( fooType, typeof(FooSimple), MockFilterConvention.Default.GetExpressionDefinition(), TypeConversion.Default, true); QueryableFilterVisitor.Default.Visit(value, filter); Func <FooSimple, bool> func = filter.CreateOrAssert <FooSimple>().Compile(); // assert var a = new FooSimple { Bar = new[] { "c", null, "a" } }; Assert.True(func(a)); var b = new FooSimple { Bar = new[] { "c", null, "b" } }; Assert.False(func(b)); var c = new FooSimple { Bar = null }; Assert.False(func(c)); }
public void Create_ArrayAnyStringEqual_Expression() { // arrange var value = new ObjectValueNode( new ObjectFieldNode("bar_any", new BooleanValueNode(true) ) ); FooSimpleFilterType fooType = CreateType(new FooSimpleFilterType()); // act var filter = new QueryableFilterVisitorContext( fooType, typeof(FooSimple), DefaultTypeConverter.Default, true, new(new DefaultTypeConverter())); QueryableFilterVisitor.Default.Visit(value, filter); Func <FooSimple, bool> func = filter.CreateFilter <FooSimple>().Compile(); // assert var a = new FooSimple { Bar = new[] { "c", "d", "a" } }; Assert.True(func(a)); var b = new FooSimple { Bar = new string[0] }; Assert.False(func(b)); var c = new FooSimple { Bar = null }; Assert.False(func(c)); }
public void Create_ArraySomeStringEqual_Expression() { // arrange var value = new ObjectValueNode( new ObjectFieldNode("bar_some", new ObjectValueNode( new ObjectFieldNode("element", new StringValueNode("a") ) ) ) ); FooSimpleFilterType fooType = CreateType(new FooSimpleFilterType()); // act var filter = new QueryableFilterVisitor( fooType, typeof(FooSimple), TypeConversion.Default, true); filter.Visit(value, null); Func <FooSimple, bool> func = filter.CreateFilter <FooSimple>().Compile(); // assert var a = new FooSimple { Bar = new[] { "c", "d", "a" } }; Assert.True(func(a)); var b = new FooSimple { Bar = new[] { "c", "d", "b" } }; Assert.False(func(b)); }