/** * * * @param QueryFilter $queryFilter * @return void */ private function addFilter(QueryFilter $queryFilter) { if ($this->queryFilter) { $this->queryFilter = $this->queryFilter->mergeAnd($queryFilter); } else { $this->queryFilter = $queryFilter; } }
/** * */ public function testMergeAnd() { $clausePrimary = 'id = ?'; $parameterPrimary = 123; $clauseSecondary = 'status = ?'; $parameterSecondary = 'foo'; $parametersPrimary = array($parameterPrimary); $parametersSecondary = array($parameterSecondary); $expectedClause = "({$clausePrimary}) AND ({$clauseSecondary})"; $queryFilterPrimary = new QueryFilter($clausePrimary, $parametersPrimary); $queryFilterSecondary = new QueryFilter($clauseSecondary, $parametersSecondary); $result = $queryFilterPrimary->mergeAnd($queryFilterSecondary); $this->assertSame($expectedClause, $result->getClause()); $resultParameters = $result->getParameters(); $this->assertInternalType('array', $resultParameters); $this->assertCount(2, $resultParameters); $this->assertContains($parameterPrimary, $resultParameters); $this->assertContains($parameterSecondary, $resultParameters); }