public function exact($value)
{
if ($this->isEmpty($value)) {
return '';
}
if (is_array($value) || is_object($value)) {
settype($value, 'array');
$db = $this->db;
$value = array_map(array($db, 'quote'), $value);
return '(' . $this->getFieldName() . ' IN (' . implode(',', $value) . '))';
}
return '(' . $this->getFieldName() . ' LIKE ' . $this->db->quote($value) . ')';
}
/** * @group TextFilter * @group TextFilterExact * @covers FOF30\Model\DataModel\Filter\Text::exact * @dataProvider TextDataprovider::getTestExact */ public function testExact($test, $check) { $msg = 'Text::exact %s - Case: ' . $check['case']; $filter = new Text(\JFactory::getDbo(), (object) array('name' => 'test', 'type' => 'varchar(10)')); $result = $filter->exact($test['value']); $this->assertEquals($check['result'], $result, sprintf($msg, 'Failed to build the correct SQL query')); }