@Test
public void shouldPerformAntiJoin2() {

	final SopremoTestPlan sopremoPlan = new SopremoTestPlan(2, 1);
	// here we set outer join flag
	final EvaluationExpression leftTwoSourceJoinKey = new ArrayCreation(JsonUtil.createPath("0", "v3", "worksFor"));
	final EvaluationExpression rightTwoSourceJoinKey =
		new ArrayCreation(JsonUtil.createPath("1", "v3", "worksFor"));
	final BinaryBooleanExpression condition = new ElementInSetExpression(leftTwoSourceJoinKey,
		Quantor.EXISTS_NOT_IN, rightTwoSourceJoinKey);
	final TwoSourceJoin join = new TwoSourceJoin().withCondition(condition);
	join.setInputs(sopremoPlan.getInputOperators(0, 2));
	join.setResultProjection(ObjectCreation.CONCATENATION);
	sopremoPlan.getOutputOperator(0).setInputs(join);
	sopremoPlan.getInput(0).
		addObject("v3", JsonUtil.createObjectNode("id", null, "worksFor", "CompanyABC")).
		addObject("v3", JsonUtil.createObjectNode("id", null, "worksFor", "CompanyUVW")).
		addObject("v3", JsonUtil.createObjectNode("id", null, "worksFor", "CompanyXYZ"));
	sopremoPlan.getInput(1).
		addObject("v3", JsonUtil.createObjectNode("id", null, "worksFor", "CompanyUVW")).
		addObject("v3", JsonUtil.createObjectNode("id", null, "worksFor", "CompanyXYZ"));
	sopremoPlan.getExpectedOutput(0).
		addObject("v3", JsonUtil.createObjectNode("id", null, "worksFor", "CompanyABC"));
	sopremoPlan.trace();
	sopremoPlan.run();
}