示例#1
0
        public void Initialization_WithoutPredicate()
        {
            var parseInfo = CreateParseInfo();
            var node      = new CountExpressionNode(parseInfo, null);

            Assert.That(node.Source, Is.SameAs(SourceNode));
        }
示例#2
0
        public void Initialization_WithPredicate()
        {
            var parseInfo = CreateParseInfo();
            var predicate = ExpressionHelper.CreateLambdaExpression <int, bool> (i => i > 5);
            var node      = new CountExpressionNode(parseInfo, predicate);

            Assert.That(node.Source, Is.InstanceOf(typeof(WhereExpressionNode)));
            Assert.That(((WhereExpressionNode)node.Source).Predicate, Is.SameAs(predicate));
            Assert.That(((WhereExpressionNode)node.Source).Source, Is.SameAs(SourceNode));
        }
示例#3
0
        public void SetUp()
        {
            _methodInfoBasedNodeTypeRegistry = new MethodInfoBasedNodeTypeRegistry();

            _methodInfoBasedNodeTypeRegistry.Register(WhereExpressionNode.GetSupportedMethods(), typeof(WhereExpressionNode));
            _methodInfoBasedNodeTypeRegistry.Register(SelectExpressionNode.GetSupportedMethods(), typeof(SelectExpressionNode));
            _methodInfoBasedNodeTypeRegistry.Register(TakeExpressionNode.GetSupportedMethods(), typeof(TakeExpressionNode));
            _methodInfoBasedNodeTypeRegistry.Register(CountExpressionNode.GetSupportedMethods(), typeof(CountExpressionNode));
            _methodInfoBasedNodeTypeRegistry.Register(JoinExpressionNode.GetSupportedMethods(), typeof(JoinExpressionNode));

            _parser = new MethodCallExpressionParser(_methodInfoBasedNodeTypeRegistry);

            _source = ExpressionNodeObjectMother.CreateMainSource();
        }
示例#4
0
        public void SetUp()
        {
            _methodInfoBasedNodeTypeRegistry = new MethodInfoBasedNodeTypeRegistry();

            _methodInfoBasedNodeTypeRegistry.Register(WhereExpressionNode.GetSupportedMethods(), typeof(WhereExpressionNode));
            _methodInfoBasedNodeTypeRegistry.Register(SelectExpressionNode.GetSupportedMethods(), typeof(SelectExpressionNode));
            _methodInfoBasedNodeTypeRegistry.Register(TakeExpressionNode.GetSupportedMethods(), typeof(TakeExpressionNode));
            _methodInfoBasedNodeTypeRegistry.Register(CountExpressionNode.GetSupportedMethods(), typeof(CountExpressionNode));
            _methodInfoBasedNodeTypeRegistry.Register(ContainsExpressionNode.GetSupportedMethods(), typeof(ContainsExpressionNode));

            _expressionTreeParser = new ExpressionTreeParser(
                _methodInfoBasedNodeTypeRegistry,
                new PartialEvaluatingExpressionTreeProcessor(new TestEvaluatableExpressionFilter()));

            _intSource = new[] { 1, 2, 3 }.AsQueryable();
        }
示例#5
0
        /// <summary>
        /// Creates a <see cref="MethodInfoBasedNodeTypeRegistry"/> and registers all relevant <see cref="IExpressionNode"/> implementations in the <b>Remotion.Linq</b> assembly.
        /// </summary>
        /// <returns>
        /// A <see cref="MethodInfoBasedNodeTypeRegistry"/> with all <see cref="IExpressionNode"/> types in the <b>Remotion.Linq</b> assembly registered.
        /// </returns>
        public static MethodInfoBasedNodeTypeRegistry CreateFromRelinqAssembly()
        {
            var registry = new MethodInfoBasedNodeTypeRegistry();

            registry.Register(AggregateExpressionNode.GetSupportedMethods(), typeof(AggregateExpressionNode));
            registry.Register(AggregateFromSeedExpressionNode.GetSupportedMethods(), typeof(AggregateFromSeedExpressionNode));
            registry.Register(AllExpressionNode.GetSupportedMethods(), typeof(AllExpressionNode));
            registry.Register(AnyExpressionNode.GetSupportedMethods(), typeof(AnyExpressionNode));
            registry.Register(AsQueryableExpressionNode.GetSupportedMethods(), typeof(AsQueryableExpressionNode));
            registry.Register(AverageExpressionNode.GetSupportedMethods(), typeof(AverageExpressionNode));
            registry.Register(CastExpressionNode.GetSupportedMethods(), typeof(CastExpressionNode));
            registry.Register(ConcatExpressionNode.GetSupportedMethods(), typeof(ConcatExpressionNode));
            registry.Register(ContainsExpressionNode.GetSupportedMethods(), typeof(ContainsExpressionNode));
            registry.Register(CountExpressionNode.GetSupportedMethods(), typeof(CountExpressionNode));
            registry.Register(DefaultIfEmptyExpressionNode.GetSupportedMethods(), typeof(DefaultIfEmptyExpressionNode));
            registry.Register(DistinctExpressionNode.GetSupportedMethods(), typeof(DistinctExpressionNode));
            registry.Register(ExceptExpressionNode.GetSupportedMethods(), typeof(ExceptExpressionNode));
            registry.Register(FirstExpressionNode.GetSupportedMethods(), typeof(FirstExpressionNode));
            registry.Register(GroupByExpressionNode.GetSupportedMethods(), typeof(GroupByExpressionNode));
            registry.Register(GroupByWithResultSelectorExpressionNode.GetSupportedMethods(), typeof(GroupByWithResultSelectorExpressionNode));
            registry.Register(GroupJoinExpressionNode.GetSupportedMethods(), typeof(GroupJoinExpressionNode));
            registry.Register(IntersectExpressionNode.GetSupportedMethods(), typeof(IntersectExpressionNode));
            registry.Register(JoinExpressionNode.GetSupportedMethods(), typeof(JoinExpressionNode));
            registry.Register(LastExpressionNode.GetSupportedMethods(), typeof(LastExpressionNode));
            registry.Register(LongCountExpressionNode.GetSupportedMethods(), typeof(LongCountExpressionNode));
            registry.Register(MaxExpressionNode.GetSupportedMethods(), typeof(MaxExpressionNode));
            registry.Register(MinExpressionNode.GetSupportedMethods(), typeof(MinExpressionNode));
            registry.Register(OfTypeExpressionNode.GetSupportedMethods(), typeof(OfTypeExpressionNode));
            registry.Register(OrderByDescendingExpressionNode.GetSupportedMethods(), typeof(OrderByDescendingExpressionNode));
            registry.Register(OrderByExpressionNode.GetSupportedMethods(), typeof(OrderByExpressionNode));
            registry.Register(ReverseExpressionNode.GetSupportedMethods(), typeof(ReverseExpressionNode));
            registry.Register(SelectExpressionNode.GetSupportedMethods(), typeof(SelectExpressionNode));
            registry.Register(SelectManyExpressionNode.GetSupportedMethods(), typeof(SelectManyExpressionNode));
            registry.Register(SingleExpressionNode.GetSupportedMethods(), typeof(SingleExpressionNode));
            registry.Register(SkipExpressionNode.GetSupportedMethods(), typeof(SkipExpressionNode));
            registry.Register(SumExpressionNode.GetSupportedMethods(), typeof(SumExpressionNode));
            registry.Register(TakeExpressionNode.GetSupportedMethods(), typeof(TakeExpressionNode));
            registry.Register(ThenByDescendingExpressionNode.GetSupportedMethods(), typeof(ThenByDescendingExpressionNode));
            registry.Register(ThenByExpressionNode.GetSupportedMethods(), typeof(ThenByExpressionNode));
            registry.Register(UnionExpressionNode.GetSupportedMethods(), typeof(UnionExpressionNode));
            registry.Register(WhereExpressionNode.GetSupportedMethods(), typeof(WhereExpressionNode));

            return(registry);
        }
示例#6
0
        public void GetSupportedMethods()
        {
            Assert.That(
                CountExpressionNode.GetSupportedMethods(),
                Is.EquivalentTo(
                    new[]
            {
                GetGenericMethodDefinition(() => Queryable.Count <object> (null)),
                GetGenericMethodDefinition(() => Queryable.Count <object> (null, null)),
                GetGenericMethodDefinition(() => Enumerable.Count <object> (null)),
                GetGenericMethodDefinition(() => Enumerable.Count <object> (null, null)),

                GetGenericMethodDefinition(() => ((List <int>)null).Count),
                GetGenericMethodDefinition(() => ((ICollection <int>)null).Count),
                GetGenericMethodDefinition(() => ((ICollection)null).Count),
                GetGenericMethodDefinition(() => (((ArrayList)null).Count)),
                GetGenericMethodDefinition(() => (((Array)null).Length)),
            }));
        }
示例#7
0
 public override void SetUp()
 {
     base.SetUp();
     _node = new CountExpressionNode(CreateParseInfo(), null);
 }