public function testMergeJoin()
 {
     $this->queryBuilder->join('author', 'a', 'a.id = b.author_id', SelectQueryBuilder::INNER_JOIN);
     $qb = new SelectQueryBuilder();
     $qb->join('editor', 'e', 'e.id = b.editor_id', SelectQueryBuilder::LEFT_JOIN);
     $this->queryBuilder->mergeJoin($qb);
     $expected = array(array('table' => 'author', 'criteria' => array('a.id = b.author_id'), 'type' => SelectQueryBuilder::INNER_JOIN, 'alias' => 'a'), array('table' => 'editor', 'criteria' => array('e.id = b.editor_id'), 'type' => SelectQueryBuilder::LEFT_JOIN, 'alias' => 'e'));
     $this->assertEquals($expected, $this->queryBuilder->getJoinParts());
 }
 /**
  * Merges the given QueryBuilder's JOINs into this QueryBuilder.
  *
  * @param \SQL\SelectQueryBuilder $QueryBuilder to merge
  *
  * @return \SQL\SelectQueryBuilder the current QueryBuilder
  */
 public function mergeJoin(SelectQueryBuilder $QueryBuilder)
 {
     foreach ($QueryBuilder->getJoinParts() as $currentJoin) {
         $this->join($currentJoin['table'], $currentJoin['alias'], $currentJoin['criteria'], $currentJoin['type']);
     }
     return $this;
 }