mirror of
https://github.com/yiisoft/yii.git
synced 2026-03-04 07:14:06 +01:00
569 lines
17 KiB
PHP
569 lines
17 KiB
PHP
<?php
|
|
/**
|
|
* CDbCriteriaTest
|
|
*/
|
|
class CDbCriteriaTest extends CTestCase {
|
|
protected $backupStaticAttributes = true;
|
|
|
|
/**
|
|
* @covers CDbCriteria::addCondition
|
|
*/
|
|
function testAddCondition() {
|
|
//adding new condition to empty one
|
|
CDbCriteria::$paramCount=0;
|
|
$criteria = new CDbCriteria();
|
|
$criteria->addCondition('A');
|
|
$this->assertEquals('A', $criteria->condition);
|
|
|
|
//adding multiple conditions
|
|
$criteria = new CDbCriteria();
|
|
$criteria->addCondition('A');
|
|
$criteria->addCondition('B');
|
|
$criteria->addCondition('C', 'OR');
|
|
$this->assertEquals('((A) AND (B)) OR (C)', $criteria->condition);
|
|
|
|
//adding empty array as condition
|
|
$criteria = new CDbCriteria();
|
|
$criteria->addCondition('A');
|
|
$criteria->addCondition(array());
|
|
$this->assertEquals('A', $criteria->condition);
|
|
|
|
//adding array as condition
|
|
$criteria = new CDbCriteria();
|
|
$criteria->addCondition(array('A', 'B'));
|
|
$this->assertEquals('(A) AND (B)', $criteria->condition);
|
|
}
|
|
|
|
/**
|
|
* @depends testAddCondition
|
|
* @covers CDbCriteria::addInCondition
|
|
*/
|
|
function testAddInCondition() {
|
|
CDbCriteria::$paramCount=0;
|
|
$criteria = new CDbCriteria();
|
|
|
|
$criteria->addInCondition('A', array());
|
|
$this->assertEquals('0=1', $criteria->condition);
|
|
$this->assertTrue(empty($criteria->params));
|
|
|
|
// IN with one parameter should transform to =
|
|
$criteria = new CDbCriteria();
|
|
|
|
$criteria->addInCondition('A', array(1));
|
|
$this->assertEquals('A=:ycp0', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp0']);
|
|
|
|
// IN with null should transform to IS NULL
|
|
$criteria = new CDbCriteria();
|
|
|
|
$criteria->addInCondition('A', array(null));
|
|
$this->assertEquals('A IS NULL', $criteria->condition);
|
|
$this->assertTrue(empty($criteria->params));
|
|
|
|
// IN with many parameters
|
|
$criteria = new CDbCriteria();
|
|
|
|
$criteria->addInCondition('B', array(1, 2, '3'));
|
|
$this->assertEquals('B IN (:ycp1, :ycp2, :ycp3)', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp1']);
|
|
$this->assertEquals(2, $criteria->params[':ycp2']);
|
|
$this->assertEquals('3', $criteria->params[':ycp3']);
|
|
}
|
|
|
|
/**
|
|
* @depends testAddCondition
|
|
* @covers CDbCriteria::addNotInCondition
|
|
*/
|
|
function testAddNotInCondition() {
|
|
// NOT IN with empty array should not change anything
|
|
CDbCriteria::$paramCount=0;
|
|
$criteria = new CDbCriteria();
|
|
|
|
$criteria->addNotInCondition('A', array());
|
|
$this->assertEquals('', $criteria->condition);
|
|
$this->assertTrue(empty($criteria->params));
|
|
|
|
// NOT IN with one parameter should transform to !=
|
|
$criteria = new CDbCriteria();
|
|
|
|
$criteria->addNotInCondition('A', array(1));
|
|
$this->assertEquals('A!=:ycp0', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp0']);
|
|
|
|
// NOT IN with null should transform to IS NOT NULL
|
|
$criteria = new CDbCriteria();
|
|
|
|
$criteria->addNotInCondition('A', array(null));
|
|
$this->assertEquals('A IS NOT NULL', $criteria->condition);
|
|
$this->assertTrue(empty($criteria->params));
|
|
|
|
// NOT IN with many parameters
|
|
$criteria = new CDbCriteria();
|
|
|
|
$criteria->addNotInCondition('B', array(1, 2, '3'));
|
|
$this->assertEquals('B NOT IN (:ycp1, :ycp2, :ycp3)', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp1']);
|
|
$this->assertEquals(2, $criteria->params[':ycp2']);
|
|
$this->assertEquals('3', $criteria->params[':ycp3']);
|
|
}
|
|
|
|
/**
|
|
* @depends testAddCondition
|
|
* @covers CDbCriteria::addSearchCondition
|
|
*/
|
|
function testAddSearchCondition() {
|
|
// string escaping
|
|
CDbCriteria::$paramCount=0;
|
|
$criteria = new CDbCriteria();
|
|
$criteria->addSearchCondition('A', 'key_word%');
|
|
|
|
$this->assertEquals('A LIKE :ycp0', $criteria->condition);
|
|
$this->assertEquals('%key\_word\%%', $criteria->params[':ycp0']);
|
|
|
|
// no escaping
|
|
$criteria = new CDbCriteria();
|
|
$criteria->addSearchCondition('A', 'key_word%', false);
|
|
|
|
$this->assertEquals('A LIKE :ycp1', $criteria->condition);
|
|
$this->assertEquals('key_word%', $criteria->params[':ycp1']);
|
|
}
|
|
|
|
/**
|
|
* @depends testAddCondition
|
|
* @covers CDbCriteria::addColumnCondition
|
|
*/
|
|
function testAddColumnCondition() {
|
|
CDbCriteria::$paramCount=0;
|
|
$criteria = new CDbCriteria();
|
|
$criteria->addColumnCondition(array('A' => 1, 'B' => null, 'C' => '2'));
|
|
|
|
$this->assertEquals('A=:ycp0 AND B IS NULL AND C=:ycp1', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp0']);
|
|
$this->assertEquals('2', $criteria->params[':ycp1']);
|
|
}
|
|
|
|
/**
|
|
* @depends testAddCondition
|
|
* @covers CDbCriteria::compare
|
|
*/
|
|
function testCompare(){
|
|
CDbCriteria::$paramCount=0;
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', '');
|
|
$this->assertEquals('', $criteria->condition);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', 1);
|
|
$this->assertEquals('A=:ycp0', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp0']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', '>1');
|
|
$this->assertEquals('A>:ycp1', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp1']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', '<1');
|
|
$this->assertEquals('A<:ycp2', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp2']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', '<=1');
|
|
$this->assertEquals('A<=:ycp3', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp3']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', '>=1');
|
|
$this->assertEquals('A>=:ycp4', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp4']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', '<>1');
|
|
$this->assertEquals('A<>:ycp5', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp5']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', '=1');
|
|
$this->assertEquals('A=:ycp6', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp6']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', '1', true);
|
|
$this->assertEquals('A LIKE :ycp7', $criteria->condition);
|
|
$this->assertEquals('%1%', $criteria->params[':ycp7']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', '=1', true);
|
|
$this->assertEquals('A=:ycp8', $criteria->condition);
|
|
$this->assertEquals('1', $criteria->params[':ycp8']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', '<>1', true);
|
|
$this->assertEquals('A NOT LIKE :ycp9', $criteria->condition);
|
|
$this->assertEquals('%1%', $criteria->params[':ycp9']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', ' value_with_spaces ');
|
|
$this->assertEquals('A=:ycp10', $criteria->condition);
|
|
$this->assertEquals(' value_with_spaces ', $criteria->params[':ycp10']);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', array());
|
|
$this->assertEquals('', $criteria->condition);
|
|
|
|
$criteria = new CDbCriteria();
|
|
$criteria->compare('A', array(1, '2'));
|
|
$this->assertEquals('A IN (:ycp11, :ycp12)', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp11']);
|
|
$this->assertEquals('2', $criteria->params[':ycp12']);
|
|
}
|
|
|
|
/**
|
|
* @depends testCompare
|
|
* @covers CDbCriteria::mergeWith
|
|
*/
|
|
function testMergeWith() {
|
|
// merging select
|
|
|
|
// * should be replaced
|
|
CDbCriteria::$paramCount=0;
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->select = '*';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->select = 'a';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('a', $criteria1->select);
|
|
|
|
// equal selects should be left as is
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->select = 'a';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->select = 'a';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('a', $criteria1->select);
|
|
|
|
// not equal selects are being merged
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->select = 'a, b, c, d';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->select = 'a, c, e, f';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals(array('a', 'b', 'c', 'd', 'e', 'f'), $criteria1->select);
|
|
|
|
// conditions
|
|
|
|
// equal conditions are not merged
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->condition = 'a';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->condition = 'a';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('a', $criteria1->condition);
|
|
|
|
// empty condition is being replaced
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->condition = '';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->condition = 'a';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('a', $criteria1->condition);
|
|
|
|
// not empty conditions are merged
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->condition = 'a';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->condition = 'b';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('(a) AND (b)', $criteria1->condition);
|
|
|
|
// limit, offset, distinct and alias are being replaced
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->limit = 10;
|
|
$criteria1->offset = 5;
|
|
$criteria1->alias = 'alias1';
|
|
$criteria1->distinct = true;
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->limit = 20;
|
|
$criteria2->offset = 6;
|
|
$criteria2->alias = 'alias2';
|
|
$criteria1->distinct = false;
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals(20, $criteria1->limit);
|
|
$this->assertEquals(6, $criteria1->offset);
|
|
$this->assertEquals('alias2', $criteria1->alias);
|
|
$this->assertEquals(false, $criteria1->distinct);
|
|
|
|
|
|
// empty order, group, join, having are being replaced
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->order = '';
|
|
$criteria1->group = '';
|
|
$criteria1->join = '';
|
|
$criteria1->having = '';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->order = 'a';
|
|
$criteria1->group = 'a';
|
|
$criteria1->join = 'a';
|
|
$criteria2->having = 'a';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('a', $criteria1->order);
|
|
$this->assertEquals('a', $criteria1->group);
|
|
$this->assertEquals('a', $criteria1->join);
|
|
$this->assertEquals('a', $criteria1->having);
|
|
|
|
// merging with empty order, group, join ignored
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->order = 'a';
|
|
$criteria1->group = 'a';
|
|
$criteria1->join = 'a';
|
|
$criteria1->having = 'a';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->order = '';
|
|
$criteria2->group = '';
|
|
$criteria2->join = '';
|
|
$criteria2->having = '';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('a', $criteria1->order);
|
|
$this->assertEquals('a', $criteria1->group);
|
|
$this->assertEquals('a', $criteria1->join);
|
|
$this->assertEquals('a', $criteria1->having);
|
|
|
|
// not empty order, group, join are being merged
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->order = 'a';
|
|
$criteria1->group = 'a';
|
|
$criteria1->join = 'a';
|
|
$criteria1->having = 'a';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->order = 'b';
|
|
$criteria2->group = 'b';
|
|
$criteria2->join = 'b';
|
|
$criteria2->having = 'b';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('b, a', $criteria1->order);
|
|
$this->assertEquals('a, b', $criteria1->group);
|
|
$this->assertEquals('a b', $criteria1->join);
|
|
$this->assertEquals('(a) AND (b)', $criteria1->having);
|
|
|
|
// empty with is replaced
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->with = '';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->with = 'a';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('a', $criteria1->with);
|
|
|
|
// not empty with are merged
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->with = 'a';
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->with = 'b';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals(array('a', 'b'), $criteria1->with);
|
|
|
|
// not empty with are merged (more complex test)
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->with = array('a', 'b');
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->with = array('a', 'c');
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals(array('a', 'b', 'a', 'c'), $criteria1->with);
|
|
|
|
// merging scopes
|
|
$criteria1=new CDbCriteria;
|
|
$criteria1->scopes='scope1';
|
|
|
|
$criteria2=new CDbCriteria;
|
|
$criteria2->scopes='scope2';
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals(array('scope1','scope2'),$criteria1->scopes);
|
|
|
|
$criteria1=new CDbCriteria;
|
|
$criteria1->scopes='scope1';
|
|
|
|
$criteria2=new CDbCriteria;
|
|
$criteria2->scopes=array('scope2'=>1);
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals(array('scope1','scope2'=>1),$criteria1->scopes);
|
|
|
|
$criteria1=new CDbCriteria;
|
|
$criteria1->scopes=array('scope1'=>array(1,2));
|
|
|
|
$criteria2=new CDbCriteria;
|
|
$criteria2->scopes=array('scope2'=>array(3,4));
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals(array('scope1'=>array(1,2),'scope2'=>array(3,4)),$criteria1->scopes);
|
|
|
|
$criteria1=new CDbCriteria;
|
|
$criteria1->scopes=array('scope'=>array(1,2));
|
|
|
|
$criteria2=new CDbCriteria;
|
|
$criteria2->scopes=array('scope'=>array(3,4));
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals(array(array('scope'=>array(1,2)),array('scope'=>array(3,4))),$criteria1->scopes);
|
|
|
|
$criteria1=new CDbCriteria;
|
|
$criteria1->scopes=array('scope'=>array(1,2),'scope1');
|
|
|
|
$criteria2=new CDbCriteria;
|
|
$criteria2->scopes=array('scope2','scope'=>array(3,4));
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals(array(array('scope'=>array(1,2)),'scope1','scope2',array('scope'=>array(3,4))),$criteria1->scopes);
|
|
|
|
$criteria1=new CDbCriteria;
|
|
$criteria1->scopes=array(array('scope'=>array(1,2)),array('scope'=>array(3,4)));
|
|
|
|
$criteria2=new CDbCriteria;
|
|
$criteria2->scopes=array(array('scope'=>array(5,6)),array('scope'=>array(7,8)));
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals(array(array('scope'=>array(1,2)),array('scope'=>array(3,4)),array('scope'=>array(5,6)),array('scope'=>array(7,8))),$criteria1->scopes);
|
|
|
|
// merging two criteria with parameters
|
|
$criteria1 = new CDbCriteria;
|
|
$criteria1->compare('A1', 1);
|
|
$criteria1->compare('A2', 2);
|
|
$criteria1->compare('A3', 3);
|
|
$criteria1->compare('A4', 4);
|
|
$criteria1->compare('A5', 5);
|
|
$criteria1->compare('A6', 6);
|
|
|
|
$criteria2 = new CDbCriteria;
|
|
$criteria2->compare('B1', 7);
|
|
$criteria2->compare('B2', 8);
|
|
$criteria2->compare('B3', 9);
|
|
$criteria2->compare('B4', 10);
|
|
$criteria2->compare('B5', 11);
|
|
$criteria2->compare('B6', 12);
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('((((((A1=:ycp0) AND (A2=:ycp1)) AND (A3=:ycp2)) AND (A4=:ycp3)) AND (A5=:ycp4)) AND (A6=:ycp5)) AND ((((((B1=:ycp6) AND (B2=:ycp7)) AND (B3=:ycp8)) AND (B4=:ycp9)) AND (B5=:ycp10)) AND (B6=:ycp11))', $criteria1->condition);
|
|
$this->assertEquals(1, $criteria1->params[':ycp0']);
|
|
$this->assertEquals(2, $criteria1->params[':ycp1']);
|
|
$this->assertEquals(3, $criteria1->params[':ycp2']);
|
|
$this->assertEquals(4, $criteria1->params[':ycp3']);
|
|
$this->assertEquals(5, $criteria1->params[':ycp4']);
|
|
$this->assertEquals(6, $criteria1->params[':ycp5']);
|
|
$this->assertEquals(7, $criteria1->params[':ycp6']);
|
|
$this->assertEquals(8, $criteria1->params[':ycp7']);
|
|
$this->assertEquals(9, $criteria1->params[':ycp8']);
|
|
$this->assertEquals(10, $criteria1->params[':ycp9']);
|
|
$this->assertEquals(11, $criteria1->params[':ycp10']);
|
|
$this->assertEquals(12, $criteria1->params[':ycp11']);
|
|
}
|
|
|
|
/**
|
|
* Merging criterias with positioned and non positioned parameters.
|
|
*
|
|
* @depends testCompare
|
|
* @covers CDbCriteria::mergeWith
|
|
*/
|
|
function testMergeWithPositionalPlaceholders(){
|
|
CDbCriteria::$paramCount=0;
|
|
$criteria1 = new CDbCriteria();
|
|
$criteria1->condition = 'A=? AND B=?';
|
|
$criteria1->params = array(0 => 10, 1 => 20);
|
|
|
|
$criteria2 = new CDbCriteria();
|
|
$criteria2->compare('C', 30);
|
|
$criteria2->compare('D', 40);
|
|
|
|
$criteria2->mergeWith($criteria1);
|
|
|
|
$this->assertEquals('((C=:ycp0) AND (D=:ycp1)) AND (A=? AND B=?)', $criteria2->condition);
|
|
|
|
$this->assertEquals(10, $criteria2->params[0]);
|
|
$this->assertEquals(20, $criteria2->params[1]);
|
|
$this->assertEquals(30, $criteria2->params[':ycp0']);
|
|
$this->assertEquals(40, $criteria2->params[':ycp1']);
|
|
|
|
// and vice versa
|
|
|
|
$criteria1 = new CDbCriteria();
|
|
$criteria1->condition = 'A=? AND B=?';
|
|
$criteria1->params = array(0 => 10, 1 => 20);
|
|
|
|
$criteria2 = new CDbCriteria();
|
|
$criteria2->compare('C', 30);
|
|
$criteria2->compare('D', 40);
|
|
|
|
$criteria1->mergeWith($criteria2);
|
|
|
|
$this->assertEquals('(A=? AND B=?) AND ((C=:ycp2) AND (D=:ycp3))', $criteria1->condition);
|
|
$this->assertEquals(10, $criteria1->params[0]);
|
|
$this->assertEquals(20, $criteria1->params[1]);
|
|
$this->assertEquals(30, $criteria1->params[':ycp2']);
|
|
$this->assertEquals(40, $criteria1->params[':ycp3']);
|
|
}
|
|
|
|
/**
|
|
* @covers CDbCriteria::addBetweenCondition
|
|
*/
|
|
function testAddBetweenCondition(){
|
|
CDbCriteria::$paramCount=0;
|
|
$criteria = new CDbCriteria();
|
|
|
|
$criteria->addBetweenCondition('A', 1, 2);
|
|
$this->assertEquals('A BETWEEN :ycp0 AND :ycp1', $criteria->condition);
|
|
$this->assertEquals(1, $criteria->params[':ycp0']);
|
|
$this->assertEquals(2, $criteria->params[':ycp1']);
|
|
}
|
|
|
|
function testToArray(){
|
|
$keys = array('select', 'condition', 'params', 'limit', 'offset', 'order', 'group', 'join', 'having', 'distinct', 'scopes', 'with', 'alias', 'index', 'together');
|
|
$criteria = new CDbCriteria();
|
|
$this->assertEquals($keys, array_keys($criteria->toArray()));
|
|
}
|
|
}
|