public void SelectFindsBranchesWithoutParameterReferences() { Expression <Func <int, DateTime> > expression = a => DateTime.Now.Subtract(TimeSpan.FromSeconds(a)); var selectedBranches = BranchSelectExpressionVisitor.Select(expression, e => e.NodeType != ExpressionType.Parameter); Assert.Single(selectedBranches, s => s.NodeType == ExpressionType.MemberAccess); Assert.Equal(1, selectedBranches.Count); }
public void SelectFindsSimpleNodeTypes() { Expression <Func <bool> > expression = () => new DateTime(2002, 01, 02) < DateTime.Now; var selectedBranches = BranchSelectExpressionVisitor.Select(expression, e => e.NodeType == ExpressionType.MemberAccess); Assert.Single(selectedBranches, s => s.NodeType == ExpressionType.MemberAccess); Assert.Equal(1, selectedBranches.Count); }
public void SelectIncludesConstructorWithNoMemberInitBindings() { Expression <Func <int, Robot> > expression = i => new Robot(); var selectedBranches = BranchSelectExpressionVisitor.Select(expression, e => e.NodeType != ExpressionType.Parameter); Assert.Single(selectedBranches, s => s.NodeType == ExpressionType.New); Assert.Equal(1, selectedBranches.Count); }
public void SelectDoesNotIncludeMemberInitBranchesWhenTheyHaveNoIncludedBindings() { Expression <Func <int, Robot> > expression = i => new Robot { Id = i }; var selectedBranches = BranchSelectExpressionVisitor.Select(expression, e => e.NodeType != ExpressionType.Parameter); Assert.Empty(selectedBranches); }
public void SelectIncludeMemberInitBranchesWithAllBindings() { Expression <Func <int, Robot> > expression = i => new Robot { Id = 10, Name = "Hudzen-10" }; var selectedBranches = BranchSelectExpressionVisitor.Select(expression, e => e.NodeType != ExpressionType.Parameter); Assert.Single(selectedBranches, s => s.NodeType == ExpressionType.MemberInit); Assert.Equal(3, selectedBranches.Count); }
public void SelectDoesNotIncludeMemberInitBranchesWhenTheyPartiallyIncludedBindings() { Expression <Func <int, Robot> > expression = i => new Robot { Id = i, Name = "Hudzen-10" }; var selectedBranches = BranchSelectExpressionVisitor.Select(expression, e => e.NodeType != ExpressionType.Parameter); Assert.Single(selectedBranches, s => s.NodeType == ExpressionType.Constant); Assert.Equal(1, selectedBranches.Count); }