Source

						public function testJoin() {
		$query = new Query(array('joins' => array(array('foo' => 'bar'))));
		$query->join(array('bar' => 'baz'));
		$expected = array(array('foo' => 'bar'), array('bar' => 'baz'));
		$joins = $query->join();

		$this->assertEqual('bar', $joins[0]->foo());
		$this->assertNull($joins[0]->bar());

		$this->assertEqual('baz', $joins[1]->bar());
		$this->assertNull($joins[1]->foo());

		$query->join('zim', array('dib' => 'gir'));
		$this->assertEqual(3, count($query->join()));

		$expected = array(
			array('foo' => 'bar'),
			array('bar' => 'baz'),
			'zim' => array('dib' => 'gir')
		);
		$this->assertEqual(3, count($query->join()));
		$this->assertEqual('gir', $query->join('zim')->dib());
	}