@Test
public void shouldDoNothingWithLeftOuterJoin() {

    // Create a LEFT_OUTER join ...
    PlanNode joinNode = new PlanNode(Type.JOIN);
    joinNode.setProperty(Property.JOIN_TYPE, JoinType.LEFT_OUTER);
    PlanNode lhs = new PlanNode(Type.SOURCE, joinNode);
    PlanNode rhs = new PlanNode(Type.SOURCE, joinNode);
    // Execute the rule ...
    PlanNode result = rule.execute(context, joinNode, new LinkedList<OptimizerRule>());
    assertThat(result, is(sameInstance(joinNode)));
    // Verify nothing has changed ...
    assertThat(joinNode.getProperty(Property.JOIN_TYPE, JoinType.class), is(JoinType.LEFT_OUTER));
    assertThat(joinNode.getFirstChild(), is(sameInstance(lhs)));
    assertThat(joinNode.getLastChild(), is(sameInstance(rhs)));
    assertThat(joinNode.getChildCount(), is(2));
}