	@Test
	public void testJoinTable() {

		JoinTable operation = SchemaOperations.joinTable("users", "u", "id", "name")
				.with("addresses", "a", "u.id = a.user_id", "address")
				.into("users");

		ImmutableMap<String, List<String>> expectedSourceColumns = ImmutableMap.<String, List<String>>builder()
				.put("u", Lists.newArrayList("id", "name"))
				.put("a", Lists.newArrayList("address"))
				.build();

		Map<String, String> expectedJoinConditions = ImmutableMap.of("a", "u.id = a.user_id");
		Map<String, String> expectedSourceTables = ImmutableMap.of("u", "users", "a", "addresses");

		assertEquals("users", operation.getTargetTableName());
		assertEquals(expectedJoinConditions, operation.getJoinConditions());
		assertEquals(expectedSourceTables, operation.getSourceTables());
		assertEquals(expectedSourceColumns, operation.getSourceColumns());
	}