public void IntegrationTest_ApplySeveralRequests()
        {
            var node1 = new FetchOneExpressionNode(CreateParseInfo(), ExpressionHelper.CreateLambdaExpression <Cook, Cook> (s => s.Substitution));
            var node2 = new ThenFetchManyExpressionNode(
                CreateParseInfo(node1), ExpressionHelper.CreateLambdaExpression <Cook, IEnumerable <Cook> > (s => s.Assistants));
            var node3 = new ThenFetchOneExpressionNode(CreateParseInfo(node2), ExpressionHelper.CreateLambdaExpression <Cook, bool> (s => s.IsStarredCook));
            var node4 = new FetchManyExpressionNode(CreateParseInfo(node3), ExpressionHelper.CreateLambdaExpression <Cook, List <int> > (s => s.Holidays));

            node1.Apply(QueryModel, ClauseGenerationContext);
            node2.Apply(QueryModel, ClauseGenerationContext);
            node3.Apply(QueryModel, ClauseGenerationContext);
            node4.Apply(QueryModel, ClauseGenerationContext);

            Assert.That(QueryModel.ResultOperators.Count, Is.EqualTo(2));

            var fetchRequest1 = ((FetchOneRequest)QueryModel.ResultOperators[0]);

            Assert.That(fetchRequest1.RelationMember, Is.EqualTo(typeof(Cook).GetProperty("Substitution")));
            Assert.That(fetchRequest1.InnerFetchRequests.Count(), Is.EqualTo(1));

            var fetchRequest2 = ((FetchManyRequest)fetchRequest1.InnerFetchRequests.Single());

            Assert.That(fetchRequest2.RelationMember, Is.EqualTo(typeof(Cook).GetProperty("Assistants")));
            Assert.That(fetchRequest2.InnerFetchRequests.Count(), Is.EqualTo(1));

            var fetchRequest3 = ((FetchOneRequest)fetchRequest2.InnerFetchRequests.Single());

            Assert.That(fetchRequest3.RelationMember, Is.EqualTo(typeof(Cook).GetProperty("IsStarredCook")));
            Assert.That(fetchRequest3.InnerFetchRequests.Count(), Is.EqualTo(0));

            var fetchRequest4 = ((FetchManyRequest)QueryModel.ResultOperators[1]);

            Assert.That(fetchRequest4.RelationMember, Is.EqualTo(typeof(Cook).GetProperty("Holidays")));
            Assert.That(fetchRequest4.InnerFetchRequests.Count(), Is.EqualTo(0));
        }
        public override void SetUp()
        {
            base.SetUp();

            _node = new FetchManyExpressionNode(CreateParseInfo(), ExpressionHelper.CreateLambdaExpression <Cook, IEnumerable <Cook> > (s => s.Assistants));
        }