public void Create_NullableBooleanNotEqual_Expression()
        {
            // arrange
            IValueNode?value = Utf8GraphQLParser.Syntax.ParseValueLiteral(
                "{ bar: { eq: false }}");
            ExecutorBuilder?tester = CreateProviderTester(new FooNullableFilterType());

            // act
            Func <FooNullable, bool>?func = tester.Build <FooNullable>(value);

            // assert
            var a = new FooNullable {
                Bar = false
            };

            Assert.True(func(a));

            var b = new FooNullable {
                Bar = true
            };

            Assert.False(func(b));

            var c = new FooNullable {
                Bar = null
            };

            Assert.False(func(c));
        }
예제 #2
0
        public void Create_NullableShortNotEqual_Expression()
        {
            // arrange
            var value = new ObjectValueNode(
                new ObjectFieldNode("barShort_not",
                                    new IntValueNode(12)));

            var fooNullableType = CreateType(new FooNullableFilterType());

            // act
            var filter = new QueryableFilterVisitor(
                fooNullableType, typeof(FooNullable), TypeConversion.Default);

            value.Accept(filter);
            Func <FooNullable, bool> func = filter.CreateFilter <FooNullable>().Compile();

            // assert
            var a = new FooNullable {
                BarShort = 13
            };

            Assert.True(func(a));

            var b = new FooNullable {
                BarShort = 12
            };

            Assert.False(func(b));

            var c = new FooNullable {
                BarShort = null
            };

            Assert.True(func(c));
        }
예제 #3
0
        public void Create_NullableEnumNotIn_Expression()
        {
            // arrange
            IValueNode?value = Utf8GraphQLParser.Syntax.ParseValueLiteral(
                "{ barEnum: { nin: [BAZ, QUX] }}");
            ExecutorBuilder?tester = CreateProviderTester(new FooNullableFilterInput());

            // act
            Func <FooNullable, bool>?func = tester.Build <FooNullable>(value);

            // assert
            var a = new FooNullable {
                BarEnum = FooEnum.BAR
            };

            Assert.True(func(a));

            var b = new FooNullable {
                BarEnum = FooEnum.BAZ
            };

            Assert.False(func(b));

            var c = new FooNullable {
                BarEnum = null
            };

            Assert.True(func(c));
        }
예제 #4
0
        public void Create_NullableShortEqual_Expression()
        {
            // arrange
            var value = new ObjectValueNode(
                new ObjectFieldNode("barShort",
                                    new IntValueNode(12)));

            FooNullableFilterType fooNullableType = CreateType(new FooNullableFilterType());

            // act
            var context = new QueryableFilterVisitorContext(
                fooNullableType, typeof(FooNullable), TypeConversion.Default, true);

            QueryableFilterVisitor.Default.Visit(value, context);
            Func <FooNullable, bool> func = context.CreateFilter <FooNullable>().Compile();

            // assert
            var a = new FooNullable {
                BarShort = 12
            };

            Assert.True(func(a));

            var b = new FooNullable {
                BarShort = 13
            };

            Assert.False(func(b));

            var c = new FooNullable {
                BarShort = null
            };

            Assert.False(func(c));
        }
    public void Create_NullableShortIn_Expression()
    {
        // arrange
        IValueNode?value = Utf8GraphQLParser.Syntax.ParseValueLiteral(
            "{ barShort: { in: [13, 14] }}");
        ExecutorBuilder?tester = CreateProviderTester(new FooNullableFilterInput());

        // act
        Func <FooNullable, bool>?func = tester.Build <FooNullable>(value);

        // assert
        var a = new FooNullable {
            BarShort = 13
        };

        Assert.True(func(a));

        var b = new FooNullable {
            BarShort = 12
        };

        Assert.False(func(b));

        var c = new FooNullable {
            BarShort = null
        };

        Assert.False(func(c));
    }
예제 #6
0
        public void Create_NullableBooleanEqual_Expression()
        {
            // arrange
            var value = new ObjectValueNode(
                new ObjectFieldNode("bar",
                                    new BooleanValueNode(true)));

            FooNullableFilterType fooNullableType = CreateType(new FooNullableFilterType());

            // act
            var filter = new QueryableFilterVisitorContext(
                fooNullableType, typeof(FooNullable), TypeConversion.Default, true);

            QueryableFilterVisitor.Default.Visit(value, filter);
            Func <FooNullable, bool> func = filter.CreateFilter <FooNullable>().Compile();

            // assert
            var a = new FooNullable {
                Bar = true
            };

            Assert.True(func(a));

            var b = new FooNullable {
                Bar = false
            };

            Assert.False(func(b));

            var c = new FooNullable {
                Bar = null
            };

            Assert.False(func(c));
        }
예제 #7
0
        public async Task Create_NullableBooleanNotEqual_Expression()
        {
            // arrange
            var value = new ObjectValueNode(
                new ObjectFieldNode("bar",
                                    new BooleanValueNode(false)));

            var fooNullableType = await CreateTypeAsync(new FooNullableFilterType());

            // act
            var filter = new QueryableFilterVisitor(
                fooNullableType, typeof(FooNullable), TypeConversion.Default);

            value.Accept(filter);
            Func <FooNullable, bool> func = filter.CreateFilter <FooNullable>().Compile();

            // assert
            var a = new FooNullable {
                Bar = false
            };

            Assert.True(func(a));

            var b = new FooNullable {
                Bar = true
            };

            Assert.False(func(b));

            var c = new FooNullable {
                Bar = null
            };

            Assert.False(func(c));
        }
예제 #8
0
        public void Create_NullableShortNotIn_Expression()
        {
            // arrange
            var value = new ObjectValueNode(
                new ObjectFieldNode("barShort_not_in",
                                    new ListValueNode(new[] { new IntValueNode(13), new IntValueNode(14) }
                                                      ))
                );

            FooNullableFilterType fooNullableType = CreateType(new FooNullableFilterType());

            // act
            var context = new QueryableFilterVisitorContext(
                fooNullableType,
                typeof(FooNullable),
                MockFilterConvention.Default.GetExpressionDefinition(),
                TypeConversion.Default,
                true);

            QueryableFilterVisitor.Default.Visit(value, context);
            Func <FooNullable, bool> func = context.CreateOrAssert <FooNullable>().Compile();

            // assert
            var a = new FooNullable {
                BarShort = 12
            };

            Assert.True(func(a));

            var b = new FooNullable {
                BarShort = 13
            };

            Assert.False(func(b));

            var c = new FooNullable {
                BarShort = null
            };

            Assert.True(func(c));
        }
예제 #9
0
        public void Create_NullableShortIn_Expression()
        {
            // arrange
            var value = new ObjectValueNode(
                new ObjectFieldNode("barShort_in",
                                    new ListValueNode(new[]
            {
                new IntValueNode(13),
                new IntValueNode(14)
            }))
                );

            var fooNullableType = CreateType(new FooNullableFilterType());

            // act
            var filter = new QueryableFilterVisitor(
                fooNullableType, typeof(FooNullable), TypeConversion.Default, true);

            filter.Visit(value, null);
            Func <FooNullable, bool> func = filter.CreateFilter <FooNullable>().Compile();

            // assert
            var a = new FooNullable {
                BarShort = 13
            };

            Assert.True(func(a));

            var b = new FooNullable {
                BarShort = 12
            };

            Assert.False(func(b));

            var c = new FooNullable {
                BarShort = null
            };

            Assert.False(func(c));
        }