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 IValueNode?value = Utf8GraphQLParser.Syntax.ParseValueLiteral( "{ bar: {some: { eq: \"a\" }}}"); ExecutorBuilder?tester = CreateProviderTester(new FooSimpleFilterType()); // act Func <FooSimple, bool>?func = tester.Build <FooSimple>(value); // 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 IValueNode value = Utf8GraphQLParser.Syntax.ParseValueLiteral( "{ bar: {any: true}}"); ExecutorBuilder?tester = CreateProviderTester(new FooSimpleFilterInput()); // act Func <FooSimple, bool> func = tester.Build <FooSimple>(value); // 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_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)); }
public void Create_ArrayAllStringEqual_Expression_Null() { // arrange IValueNode?value = Utf8GraphQLParser.Syntax.ParseValueLiteral( "{ bar: {all: { eq: null }}}"); ExecutorBuilder?tester = CreateProviderTester(new FooSimpleFilterType()); // act Func <FooSimple, bool>?func = tester.Build <FooSimple>(value); // 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_ArraySomeStringEqual_Multiple() { // arrange IValueNode value = Utf8GraphQLParser.Syntax.ParseValueLiteral( "{ bar: {some: { eq: \"a\" }} otherProperty: {eq:null}}"); ExecutorBuilder tester = CreateProviderTester(new FooSimpleFilterInput()); // act Func <FooSimple, bool> func = tester.Build <FooSimple>(value); // 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)); }