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(); }