public void Apply() { _node.Apply(QueryModel, ClauseGenerationContext); Assert.That(QueryModel.ResultOperators.Count, Is.EqualTo(1)); Assert.That(QueryModel.ResultOperators[0], Is.InstanceOf(typeof(FetchOneRequest))); Assert.That(((FetchOneRequest)QueryModel.ResultOperators[0]).RelationMember, Is.EqualTo(typeof(Cook).GetProperty("Substitution"))); }
public void IntegrationTest_ApplyRequestsAtSameLevel_FetchOne() { 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 FetchOneExpressionNode(CreateParseInfo(node2), ExpressionHelper.CreateLambdaExpression <Cook, Cook> (s => s.Substitution)); var node4 = new ThenFetchOneExpressionNode(CreateParseInfo(node3), ExpressionHelper.CreateLambdaExpression <Cook, bool> (s => s.IsStarredCook)); node1.Apply(QueryModel, ClauseGenerationContext); node2.Apply(QueryModel, ClauseGenerationContext); node3.Apply(QueryModel, ClauseGenerationContext); node4.Apply(QueryModel, ClauseGenerationContext); Assert.That(QueryModel.ResultOperators.Count, Is.EqualTo(1)); var fetchRequest1 = ((FetchOneRequest)QueryModel.ResultOperators[0]); Assert.That(fetchRequest1.RelationMember, Is.EqualTo(typeof(Cook).GetProperty("Substitution"))); Assert.That(fetchRequest1.InnerFetchRequests.Count(), Is.EqualTo(2)); var fetchRequest2 = ((FetchManyRequest)fetchRequest1.InnerFetchRequests.First()); Assert.That(fetchRequest2.RelationMember, Is.EqualTo(typeof(Cook).GetProperty("Assistants"))); Assert.That(fetchRequest2.InnerFetchRequests.Count(), Is.EqualTo(0)); var fetchRequest3 = ((FetchOneRequest)fetchRequest1.InnerFetchRequests.Skip(1).Single()); Assert.That(fetchRequest3.RelationMember, Is.EqualTo(typeof(Cook).GetProperty("IsStarredCook"))); Assert.That(fetchRequest3.InnerFetchRequests.Count(), Is.EqualTo(0)); }