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));
        }
Ejemplo n.º 6
0
        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));
    }