@Test
public void shouldPerformSemiTwoSourceJoinWithReversedInputs() {

	final SopremoTestPlan sopremoPlan = new SopremoTestPlan(2, 1);
	final BinaryBooleanExpression condition = new ElementInSetExpression(createPath("1",
		"DeptName"), Quantor.EXISTS_IN, createPath("0", "Name"));
	final TwoSourceJoin join = new TwoSourceJoin().withCondition(condition);
	join.setInputs(sopremoPlan.getInputOperators(0, 2));
	join.setResultProjection(ObjectCreation.CONCATENATION);
	sopremoPlan.getOutputOperator(0).setInputs(join);
	sopremoPlan.getInput(1).
		addObject("Name", "Harry", "EmpId", 3415, "DeptName", "Finance").
		addObject("Name", "Sally", "EmpId", 2241, "DeptName", "Sales").
		addObject("Name", "George", "EmpId", 3401, "DeptName", "Finance").
		addObject("Name", "Harriet", "EmpId", 2202, "DeptName", "Production");
	sopremoPlan.getInput(0).
		addObject("Name", "Sales", "Manager", "Harriet").
		addObject("Name", "Production", "Manager", "Charles");
	sopremoPlan.getExpectedOutput(0).
		addObject("Name", "Sally", "EmpId", 2241, "DeptName", "Sales").
		addObject("Name", "Harriet", "EmpId", 2202, "DeptName", "Production");
	sopremoPlan.run();
}