public void IntersectionSet_ValidInput_ReturnsCorrectSet(Set left, Set right, Set exp) { IInterpreterSet parent = Substitute.For <IInterpreterSet>(); SetHelper setHelper = SetUpHelper(parent); SetExpression leftExpr = new SetExpression(null, null, null, 0, 0); SetExpression rightExpr = new SetExpression(null, null, null, 0, 0); IntersectionExpression intersectionExpr = new IntersectionExpression(leftExpr, rightExpr, 0, 0); parent.DispatchSet(leftExpr, Arg.Any <List <object> >()).Returns(left); parent.DispatchSet(rightExpr, Arg.Any <List <object> >()).Returns(right); Set result = setHelper.IntersectionSet(intersectionExpr, new List <object>()); result.Should().BeEquivalentTo(exp); }