public void Should_return_filter_descriptor_for_function() { FunctionNode functionNode = StringFunction(); functionNode.Accept(visitor); FilterDescriptor result = (FilterDescriptor)visitor.Result; Assert.Equal(FilterOperator.StartsWith, result.Operator); Assert.Equal("Name", result.Member); Assert.Equal("J", result.Value); }
public void FunctionNode_should_accept_visitor() { visitor.Setup(v => v.StartVisit(It.IsAny <FunctionNode>())).Verifiable(); visitor.Setup(v => v.EndVisit()).Verifiable(); Mock <IFilterNode> first = new Mock <IFilterNode>(); first.Setup(f => f.Accept(It.IsAny <IFilterNodeVisitor>())).Verifiable(); FunctionNode functionNode = new FunctionNode { Arguments = { first.Object } }; functionNode.Accept(visitor.Object); visitor.VerifyAll(); first.Verify(); }
public void Visit(FunctionNode node) { if (this._visitor.CurrentQuery != null && this._visitor.CurrentQuery.HasFromClosure()) { ParameterExpression item = _visitor.ScopedParamters.Peek(); if (node.IsAggregateMethod) { if (item.Type.IsGrouping()) { var itemInGroup = Expression.Parameter(item.Type.GetGroupingElementType(), "itemInGroup_" + item.Type.GetGroupingElementType().Name); this._visitor.ScopedParamters.Push(itemInGroup); } else { this._visitor.ScopedParamters.Push(item); } } } node.Arguments.Accept(this); node.Accept(_visitor); }
public void Visit(FunctionNode node) { node.Arguments.Accept(this); node.Accept(_visitor); }