@Test
public void shouldPerformThetaJoin() {

	final SopremoTestPlan sopremoPlan = new SopremoTestPlan(2, 1);
	final AndExpression condition =
		new AndExpression(new ComparativeExpression(createPath("0", "id"), BinaryOperator.LESS, 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", 4, "url", "www.nbc.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", 2, "url", "www.cnn.com"))
		.addArray(JsonUtil.createObjectNode("name", "Jon Doe", "password", "asdf1234", "id", 1),
			JsonUtil.createObjectNode("userid", 4, "url", "www.nbc.com"))
		.addArray(JsonUtil.createObjectNode("name", "Jane Doe", "password", "qwertyui", "id", 2),
			JsonUtil.createObjectNode("userid", 4, "url", "www.nbc.com"))
		.addArray(JsonUtil.createObjectNode("name", "Max Mustermann", "password", "q1w2e3r4", "id", 3),
			JsonUtil.createObjectNode("userid", 4, "url", "www.nbc.com"));
	sopremoPlan.run();
}