@Test
public void shouldPerformEquiJoin() {

	final SopremoTestPlan sopremoPlan = new SopremoTestPlan(2, 1);
	final AndExpression condition =
		new AndExpression(new ComparativeExpression(createPath("0", "id"), BinaryOperator.EQUAL, createPath("1",
			"userid")));
	final Join join = new Join().withJoinCondition(condition);
	join.setInputs(sopremoPlan.getInputOperators(0, 2));
	sopremoPlan.getOutputOperator(0).setInputs(join);
	sopremoPlan.getInput(0).
		addObject("name", "Jon Doe", "password", "asdf1234", "id", 1).
		addObject("name", "Jane Doe", "password", "qwertyui", "id", 2).
		addObject("name", "Max Mustermann", "password", "q1w2e3r4", "id", 3);
	sopremoPlan.getInput(1).addObject("userid", 1, "url", "code.google.com/p/jaql/").addObject("userid", 2, "url",
		"www.cnn.com")
		.addObject("userid", 1, "url", "java.sun.com/javase/6/docs/api/");
	sopremoPlan
		.getExpectedOutput(0)
		.addArray(JsonUtil.createObjectNode("name", "Jon Doe", "password", "asdf1234", "id", 1),
			JsonUtil.createObjectNode("userid", 1, "url", "code.google.com/p/jaql/"))
		.addArray(JsonUtil.createObjectNode("name", "Jon Doe", "password", "asdf1234", "id", 1),
			JsonUtil.createObjectNode("userid", 1, "url", "java.sun.com/javase/6/docs/api/"))
		.addArray(JsonUtil.createObjectNode("name", "Jane Doe", "password", "qwertyui", "id", 2),
			JsonUtil.createObjectNode("userid", 2, "url", "www.cnn.com"));
	sopremoPlan.run();
}