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());
}