public function testWhereTuple() { $b = new WhereBuilder(); $b->root('Article'); $b->whereTuple(['authorId', 'blogId'], [[1, 2], [1, 3], [2, 2]]); $expected = [['type' => 'Tuple', 'table' => ['_', '_'], 'cols' => ['author_id', 'blog_id'], 'val' => [[1, 2], [1, 3], [2, 2]], 'logic' => 'AND', 'not' => false]]; $components = $b->build(); $this->assertEquals($expected, $components['where']); $b = new WhereBuilder(); $b->root('Article'); $b->whereTuple(['authorId', 'blog/id'], [[1, 2], [1, 3], [2, 2]]); $where = [['type' => 'Tuple', 'table' => ['_', 'blog'], 'cols' => ['author_id', 'id'], 'val' => [[1, 2], [1, 3], [2, 2]], 'logic' => 'AND', 'not' => false]]; $from = [new JoinClause('articles', '_'), (new JoinClause('blogs', 'blog'))->on('_', 'blog_id', 'blog', 'id')]; $components = $b->build(); $this->assertEquals($where, $components['where']); $this->assertEquals($from[1], $b->getJoinClause('blog')); }