Exemplo n.º 1
0
        public void AssertEnterAndLeave <T>(
            ObjectValueNode value,
            FilterKind kind,
            FilterFieldEnter enter,
            FilterFieldLeave leave)
        {
            FilterInputType <T> fooType = CreateType(new FilterInputType <T>());

            ExpressionVisitorMock helper =
                ExpressionVisitorMock.Create(enter)
                .Setup(leave);

            FilterExpressionVisitorDefinition convention =
                new MockFilterConvention(
                    x => x.UseDefault()
                    .UseExpressionVisitor()
                    .UseDefault()
                    .Kind(kind)
                    .Enter(helper.FilterFieldEnter)
                    .Leave(helper.FilterFieldLeave))
                .GetExpressionDefinition();

            // act
            var filter = new QueryableFilterVisitorContext(
                fooType,
                typeof(T),
                convention,
                TypeConversion.Default,
                true);

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

            // assert
            Assert.Equal(1, helper.CallCount(enter));
            Assert.Equal(1, helper.CallCount(leave));
        }
Exemplo n.º 2
0
 public IFilterExpressionTypeDescriptor Enter(FilterFieldEnter handler)
 {
     Definition.Enter = handler;
     return(this);
 }
Exemplo n.º 3
0
 public static ExpressionVisitorMock Create(FilterFieldEnter handler) =>
 new ExpressionVisitorMock().Setup(handler);
Exemplo n.º 4
0
 public int CallCount(FilterFieldEnter _) => fieldEnterCallCounter;
Exemplo n.º 5
0
 public ExpressionVisitorMock Setup(FilterFieldEnter handler)
 {
     fieldEnterCallCounter = 0;
     fieldEnterHandler     = handler;
     return(this);
 }