public function testJoins()
{
$query = new Query(array('joins' => array(array('foo' => 'bar'))));
$query->joins(array('bar' => 'baz'));
$expected = array(array('foo' => 'bar'), array('bar' => 'baz'));
$joins = $query->joins();
$this->assertEqual($expected, $joins);
$this->assertEqual('bar', $joins[0]['foo']);
$this->assertFalse(isset($joins[0]['bar']));
$this->assertEqual('baz', $joins[1]['bar']);
$this->assertFalse(isset($joins[1]['foo']));
$query->joins('zim', array('dib' => 'gir'));
$joins = $query->joins();
$this->assertEqual(3, count($joins));
$this->assertEqual('gir', $joins['zim']['dib']);
$expected = array(array('foo' => 'bar'), array('bar' => 'baz'), 'zim' => array('dib' => 'gir'));
$this->assertEqual($expected, $joins);
}