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));
        }
Exemple #4
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));
        }