From 146af7faa58b5f4ed26b3ebfbb7de6cdec72157e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Lorenzo=20Rodr=C3=ADguez?= Date: Wed, 3 Nov 2010 19:14:22 -0430 Subject: [PATCH] Stating to move quoting test out from dbosource into mysql test --- .../model/datasources/dbo/dbo_mysql.test.php | 200 +-- .../model/datasources/dbo_source.test.php | 1266 ---------------- cake/tests/cases/libs/model/models.php | 1306 +++++++++++++++++ 3 files changed, 1372 insertions(+), 1400 deletions(-) diff --git a/cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php b/cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php index 00cca0662..7a3527d35 100644 --- a/cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php +++ b/cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php @@ -18,138 +18,8 @@ * @license MIT License (http://www.opensource.org/licenses/mit-license.php) */ App::import('Core', array('Model', 'DataSource', 'DboSource', 'DboMysql')); - -/** - * DboMysqlTestDb class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class DboMysqlTestDb extends DboMysql { - -/** - * simulated property - * - * @var array - * @access public - */ - public $simulated = array(); - -/** - * testing property - * - * @var bool true - * @access public - */ - public $testing = true; - -/** - * execute method - * - * @param mixed $sql - * @access protected - * @return void - */ - function _execute($sql) { - if ($this->testing) { - $this->simulated[] = $sql; - return null; - } - return parent::_execute($sql); - } - -/** - * getLastQuery method - * - * @access public - * @return void - */ - function getLastQuery() { - return $this->simulated[count($this->simulated) - 1]; - } -} - -/** - * MysqlTestModel class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class MysqlTestModel extends Model { - -/** - * name property - * - * @var string 'MysqlTestModel' - * @access public - */ - public $name = 'MysqlTestModel'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * find method - * - * @param mixed $conditions - * @param mixed $fields - * @param mixed $order - * @param mixed $recursive - * @access public - * @return void - */ - function find($conditions = null, $fields = null, $order = null, $recursive = null) { - return $conditions; - } - -/** - * findAll method - * - * @param mixed $conditions - * @param mixed $fields - * @param mixed $order - * @param mixed $recursive - * @access public - * @return void - */ - function findAll($conditions = null, $fields = null, $order = null, $recursive = null) { - return $conditions; - } - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - return array( - 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'client_id' => array('type' => 'integer', 'null' => '', 'default' => '0', 'length' => '11'), - 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), - 'login' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), - 'passwd' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), - 'addr_1' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), - 'addr_2' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '25'), - 'zip_code' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'city' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'country' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'phone' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'fax' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'url' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), - 'email' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'comments' => array('type' => 'text', 'null' => '1', 'default' => '', 'length' => ''), - 'last_login'=> array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => ''), - 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), - 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) - ); - } -} +App::import('Model', 'App'); +require_once dirname(dirname(dirname(__FILE__))) . DS . 'models.php'; /** * DboMysqlTest class @@ -158,8 +28,26 @@ class MysqlTestModel extends Model { * @subpackage cake.tests.cases.libs.model.datasources.dbo */ class DboMysqlTest extends CakeTestCase { - public $fixtures = array('core.binary_test'); +/** + * autoFixtures property + * + * @var bool false + * @access public + */ public $autoFixtures = false; + +/** + * fixtures property + * + * @var array + * @access public + */ + public $fixtures = array( + 'core.apple', 'core.article', 'core.articles_tag', 'core.attachment', 'core.comment', + 'core.sample', 'core.tag', 'core.user', 'core.post', 'core.author', 'core.data_test', + 'core.binary_test' + ); + /** * The Dbo instance to be tested * @@ -238,7 +126,7 @@ class DboMysqlTest extends CakeTestCase { $result = $this->Dbo->value('', 'integer'); $this->assertEqual($expected, $result); - $expected = 0; + $expected = "'0'"; $result = $this->Dbo->value('', 'boolean'); $this->assertEqual($expected, $result); @@ -936,4 +824,48 @@ class DboMysqlTest extends CakeTestCase { $encoding = $db->getEncoding(); $this->assertEqual('utf-8', $encoding); } + +/** + * testFieldDoubleEscaping method + * + * @access public + * @return void + */ + function testFieldDoubleEscaping() { + $test = $this->getMock('DboMysql', array('connect', '_execute', 'execute')); + $this->Model = $this->getMock('Article2', array('getDataSource')); + $this->Model->alias = 'Article'; + $this->Model->expects($this->any()) + ->method('getDataSource') + ->will($this->returnValue($test)); + + $this->assertEqual($this->Model->escapeField(), '`Article`.`id`'); + $result = $test->fields($this->Model, null, $this->Model->escapeField()); + $this->assertEqual($result, array('`Article`.`id`')); + + $test->expects($this->at(0))->method('execute') + ->with('SELECT `Article`.`id` FROM `articles` AS `Article` WHERE 1 = 1'); + + $result = $test->read($this->Model, array( + 'fields' => $this->Model->escapeField(), + 'conditions' => null, + 'recursive' => -1 + )); + + $test->startQuote = '['; + $test->endQuote = ']'; + $this->assertEqual($this->Model->escapeField(), '[Article].[id]'); + + $result = $test->fields($this->Model, null, $this->Model->escapeField()); + $this->assertEqual($result, array('[Article].[id]')); + + $test->expects($this->at(0))->method('execute') + ->with('SELECT [Article].[id] FROM [' . $test->fullTableName('articles', false) . '] AS [Article] WHERE 1 = 1'); + $result = $test->read($this->Model, array( + 'fields' => $this->Model->escapeField(), + 'conditions' => null, + 'recursive' => -1 + )); + } + } diff --git a/cake/tests/cases/libs/model/datasources/dbo_source.test.php b/cake/tests/cases/libs/model/datasources/dbo_source.test.php index c704f838d..797a7ad15 100644 --- a/cake/tests/cases/libs/model/datasources/dbo_source.test.php +++ b/cake/tests/cases/libs/model/datasources/dbo_source.test.php @@ -23,1230 +23,6 @@ if (!defined('CAKEPHP_UNIT_TEST_EXECUTION')) { App::import('Model', array('Model', 'DataSource', 'DboSource', 'DboMysql', 'App')); require_once dirname(dirname(__FILE__)) . DS . 'models.php'; -/** - * TestModel class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class TestModel extends CakeTestModel { - -/** - * name property - * - * @var string 'TestModel' - * @access public - */ - public $name = 'TestModel'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * schema property - * - * @var array - * @access protected - */ - protected $_schema = array( - 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'client_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '11'), - 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), - 'login' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), - 'passwd' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), - 'addr_1' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), - 'addr_2' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '25'), - 'zip_code' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'city' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'country' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'phone' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'fax' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'url' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), - 'email' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), - 'comments' => array('type' => 'text', 'null' => '1', 'default' => '', 'length' => '155'), - 'last_login' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => ''), - 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), - 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) - ); - -/** - * find method - * - * @param mixed $conditions - * @param mixed $fields - * @param mixed $order - * @param mixed $recursive - * @access public - * @return void - */ - function find($conditions = null, $fields = null, $order = null, $recursive = null) { - return array($conditions, $fields); - } - -/** - * findAll method - * - * @param mixed $conditions - * @param mixed $fields - * @param mixed $order - * @param mixed $recursive - * @access public - * @return void - */ - function findAll($conditions = null, $fields = null, $order = null, $recursive = null) { - return $conditions; - } -} - -/** - * TestModel2 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class TestModel2 extends CakeTestModel { - -/** - * name property - * - * @var string 'TestModel2' - * @access public - */ - public $name = 'TestModel2'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; -} - -/** - * TestModel4 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class TestModel3 extends CakeTestModel { - -/** - * name property - * - * @var string 'TestModel3' - * @access public - */ - public $name = 'TestModel3'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; -} - -/** - * TestModel4 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class TestModel4 extends CakeTestModel { - -/** - * name property - * - * @var string 'TestModel4' - * @access public - */ - public $name = 'TestModel4'; - -/** - * table property - * - * @var string 'test_model4' - * @access public - */ - public $table = 'test_model4'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array( - 'TestModel4Parent' => array( - 'className' => 'TestModel4', - 'foreignKey' => 'parent_id' - ) - ); - -/** - * hasOne property - * - * @var array - * @access public - */ - public $hasOne = array( - 'TestModel5' => array( - 'className' => 'TestModel5', - 'foreignKey' => 'test_model4_id' - ) - ); - -/** - * hasAndBelongsToMany property - * - * @var array - * @access public - */ - public $hasAndBelongsToMany = array('TestModel7' => array( - 'className' => 'TestModel7', - 'joinTable' => 'test_model4_test_model7', - 'foreignKey' => 'test_model4_id', - 'associationForeignKey' => 'test_model7_id', - 'with' => 'TestModel4TestModel7' - )); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), - 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), - 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) - ); - } - return $this->_schema; - } -} - -/** - * TestModel4TestModel7 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class TestModel4TestModel7 extends CakeTestModel { - -/** - * name property - * - * @var string 'TestModel4TestModel7' - * @access public - */ - public $name = 'TestModel4TestModel7'; - -/** - * table property - * - * @var string 'test_model4_test_model7' - * @access public - */ - public $table = 'test_model4_test_model7'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'test_model4_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'test_model7_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8') - ); - } - return $this->_schema; - } -} - -/** - * TestModel5 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class TestModel5 extends CakeTestModel { - -/** - * name property - * - * @var string 'TestModel5' - * @access public - */ - public $name = 'TestModel5'; - -/** - * table property - * - * @var string 'test_model5' - * @access public - */ - public $table = 'test_model5'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array('TestModel4' => array( - 'className' => 'TestModel4', - 'foreignKey' => 'test_model4_id' - )); - -/** - * hasMany property - * - * @var array - * @access public - */ - public $hasMany = array('TestModel6' => array( - 'className' => 'TestModel6', - 'foreignKey' => 'test_model5_id' - )); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'test_model4_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), - 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), - 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) - ); - } - return $this->_schema; - } -} - -/** - * TestModel6 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class TestModel6 extends CakeTestModel { - -/** - * name property - * - * @var string 'TestModel6' - * @access public - */ - public $name = 'TestModel6'; - -/** - * table property - * - * @var string 'test_model6' - * @access public - */ - public $table = 'test_model6'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array('TestModel5' => array( - 'className' => 'TestModel5', - 'foreignKey' => 'test_model5_id' - )); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'test_model5_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), - 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), - 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) - ); - } - return $this->_schema; - } -} - -/** - * TestModel7 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class TestModel7 extends CakeTestModel { - -/** - * name property - * - * @var string 'TestModel7' - * @access public - */ - public $name = 'TestModel7'; - -/** - * table property - * - * @var string 'test_model7' - * @access public - */ - public $table = 'test_model7'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), - 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), - 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) - ); - } - return $this->_schema; - } -} - -/** - * TestModel8 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class TestModel8 extends CakeTestModel { - -/** - * name property - * - * @var string 'TestModel8' - * @access public - */ - public $name = 'TestModel8'; - -/** - * table property - * - * @var string 'test_model8' - * @access public - */ - public $table = 'test_model8'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * hasOne property - * - * @var array - * @access public - */ - public $hasOne = array( - 'TestModel9' => array( - 'className' => 'TestModel9', - 'foreignKey' => 'test_model8_id', - 'conditions' => 'TestModel9.name != \'mariano\'' - ) - ); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'test_model9_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), - 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), - 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) - ); - } - return $this->_schema; - } -} - -/** - * TestModel9 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class TestModel9 extends CakeTestModel { - -/** - * name property - * - * @var string 'TestModel9' - * @access public - */ - public $name = 'TestModel9'; - -/** - * table property - * - * @var string 'test_model9' - * @access public - */ - public $table = 'test_model9'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array('TestModel8' => array( - 'className' => 'TestModel8', - 'foreignKey' => 'test_model8_id', - 'conditions' => 'TestModel8.name != \'larry\'' - )); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), - 'test_model8_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '11'), - 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), - 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), - 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) - ); - } - return $this->_schema; - } -} - -/** - * Level class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class Level extends CakeTestModel { - -/** - * name property - * - * @var string 'Level' - * @access public - */ - public $name = 'Level'; - -/** - * table property - * - * @var string 'level' - * @access public - */ - public $table = 'level'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * hasMany property - * - * @var array - * @access public - */ - public $hasMany = array( - 'Group'=> array( - 'className' => 'Group' - ), - 'User2' => array( - 'className' => 'User2' - ) - ); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), - 'name' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20'), - ); - } - return $this->_schema; - } -} - -/** - * Group class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class Group extends CakeTestModel { - -/** - * name property - * - * @var string 'Group' - * @access public - */ - public $name = 'Group'; - -/** - * table property - * - * @var string 'group' - * @access public - */ - public $table = 'group'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array('Level'); - -/** - * hasMany property - * - * @var array - * @access public - */ - public $hasMany = array('Category2', 'User2'); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), - 'level_id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), - 'name' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20'), - ); - } - return $this->_schema; - } - -} - -/** - * User2 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class User2 extends CakeTestModel { - -/** - * name property - * - * @var string 'User2' - * @access public - */ - public $name = 'User2'; - -/** - * table property - * - * @var string 'user' - * @access public - */ - public $table = 'user'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array( - 'Group' => array( - 'className' => 'Group' - ), - 'Level' => array( - 'className' => 'Level' - ) - ); - -/** - * hasMany property - * - * @var array - * @access public - */ - public $hasMany = array( - 'Article2' => array( - 'className' => 'Article2' - ), - ); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), - 'group_id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), - 'level_id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), - 'name' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20'), - ); - } - return $this->_schema; - } -} - -/** - * Category2 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class Category2 extends CakeTestModel { - -/** - * name property - * - * @var string 'Category2' - * @access public - */ - public $name = 'Category2'; - -/** - * table property - * - * @var string 'category' - * @access public - */ - public $table = 'category'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array( - 'Group' => array( - 'className' => 'Group', - 'foreignKey' => 'group_id' - ), - 'ParentCat' => array( - 'className' => 'Category2', - 'foreignKey' => 'parent_id' - ) - ); - -/** - * hasMany property - * - * @var array - * @access public - */ - public $hasMany = array( - 'ChildCat' => array( - 'className' => 'Category2', - 'foreignKey' => 'parent_id' - ), - 'Article2' => array( - 'className' => 'Article2', - 'order'=>'Article2.published_date DESC', - 'foreignKey' => 'category_id', - 'limit'=>'3') - ); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), - 'group_id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), - 'parent_id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), - 'name' => array('type' => 'string', 'null' => false, 'default' => '', 'length' => '255'), - 'icon' => array('type' => 'string', 'null' => false, 'default' => '', 'length' => '255'), - 'description' => array('type' => 'text', 'null' => false, 'default' => '', 'length' => null), - - ); - } - return $this->_schema; - } -} - -/** - * Article2 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class Article2 extends CakeTestModel { - -/** - * name property - * - * @var string 'Article2' - * @access public - */ - public $name = 'Article2'; - -/** - * table property - * - * @var string 'article' - * @access public - */ - public $table = 'article'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array( - 'Category2' => array('className' => 'Category2'), - 'User2' => array('className' => 'User2') - ); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), - 'category_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'user_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'rate_count' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'rate_sum' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'viewed' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'version' => array('type' => 'string', 'null' => true, 'default' => '', 'length' => '45'), - 'title' => array('type' => 'string', 'null' => false, 'default' => '', 'length' => '200'), - 'intro' => array('text' => 'string', 'null' => true, 'default' => '', 'length' => null), - 'comments' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '4'), - 'body' => array('text' => 'string', 'null' => true, 'default' => '', 'length' => null), - 'isdraft' => array('type' => 'boolean', 'null' => false, 'default' => '0', 'length' => '1'), - 'allow_comments' => array('type' => 'boolean', 'null' => false, 'default' => '1', 'length' => '1'), - 'moderate_comments' => array('type' => 'boolean', 'null' => false, 'default' => '1', 'length' => '1'), - 'published' => array('type' => 'boolean', 'null' => false, 'default' => '0', 'length' => '1'), - 'multipage' => array('type' => 'boolean', 'null' => false, 'default' => '0', 'length' => '1'), - 'published_date' => array('type' => 'datetime', 'null' => true, 'default' => '', 'length' => null), - 'created' => array('type' => 'datetime', 'null' => false, 'default' => '0000-00-00 00:00:00', 'length' => null), - 'modified' => array('type' => 'datetime', 'null' => false, 'default' => '0000-00-00 00:00:00', 'length' => null) - ); - } - return $this->_schema; - } -} - -/** - * CategoryFeatured2 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class CategoryFeatured2 extends CakeTestModel { - -/** - * name property - * - * @var string 'CategoryFeatured2' - * @access public - */ - public $name = 'CategoryFeatured2'; - -/** - * table property - * - * @var string 'category_featured' - * @access public - */ - public $table = 'category_featured'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), - 'parent_id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), - 'name' => array('type' => 'string', 'null' => false, 'default' => '', 'length' => '255'), - 'icon' => array('type' => 'string', 'null' => false, 'default' => '', 'length' => '255'), - 'description' => array('text' => 'string', 'null' => false, 'default' => '', 'length' => null) - ); - } - return $this->_schema; - } -} - -/** - * Featured2 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class Featured2 extends CakeTestModel { - -/** - * name property - * - * @var string 'Featured2' - * @access public - */ - public $name = 'Featured2'; - -/** - * table property - * - * @var string 'featured2' - * @access public - */ - public $table = 'featured2'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array( - 'CategoryFeatured2' => array( - 'className' => 'CategoryFeatured2' - ) - ); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), - 'article_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'category_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'name' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20') - ); - } - return $this->_schema; - } -} - -/** - * Comment2 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class Comment2 extends CakeTestModel { - -/** - * name property - * - * @var string 'Comment2' - * @access public - */ - public $name = 'Comment2'; - -/** - * table property - * - * @var string 'comment' - * @access public - */ - public $table = 'comment'; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array('ArticleFeatured2', 'User2'); - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), - 'article_featured_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'user_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'name' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20') - ); - } - return $this->_schema; - } -} - -/** - * ArticleFeatured2 class - * - * @package cake - * @subpackage cake.tests.cases.libs.model.datasources - */ -class ArticleFeatured2 extends CakeTestModel { - -/** - * name property - * - * @var string 'ArticleFeatured2' - * @access public - */ - public $name = 'ArticleFeatured2'; - -/** - * table property - * - * @var string 'article_featured' - * @access public - */ - public $table = 'article_featured'; - -/** - * useTable property - * - * @var bool false - * @access public - */ - public $useTable = false; - -/** - * belongsTo property - * - * @var array - * @access public - */ - public $belongsTo = array( - 'CategoryFeatured2' => array('className' => 'CategoryFeatured2'), - 'User2' => array('className' => 'User2') - ); - -/** - * hasOne property - * - * @var array - * @access public - */ - public $hasOne = array( - 'Featured2' => array('className' => 'Featured2') - ); - -/** - * hasMany property - * - * @var array - * @access public - */ - public $hasMany = array( - 'Comment2' => array('className'=>'Comment2', 'dependent' => true) - ); - -/** - * schema method - * - * @access public - * @return void - */ - function schema() { - if (!isset($this->_schema)) { - $this->_schema = array( - 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), - 'category_featured_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'user_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), - 'title' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20'), - 'body' => array('text' => 'string', 'null' => true, 'default' => '', 'length' => null), - 'published' => array('type' => 'boolean', 'null' => false, 'default' => '0', 'length' => '1'), - 'published_date' => array('type' => 'datetime', 'null' => true, 'default' => '', 'length' => null), - 'created' => array('type' => 'datetime', 'null' => false, 'default' => '0000-00-00 00:00:00', 'length' => null), - 'modified' => array('type' => 'datetime', 'null' => false, 'default' => '0000-00-00 00:00:00', 'length' => null) - ); - } - return $this->_schema; - } -} - /** * DboSourceTest class * @@ -1341,48 +117,6 @@ class DboSourceTest extends CakeTestCase { unset($this->Model); } -/** - * testFieldDoubleEscaping method - * - * @access public - * @return void - */ - function testFieldDoubleEscaping() { - $config = array_merge($this->__config, array('driver' => 'test')); - $test = ConnectionManager::create('quoteTest', $config); - $test->simulated = array(); - - $this->Model = new Article2(array('alias' => 'Article', 'ds' => 'quoteTest')); - $this->Model->setDataSource('quoteTest'); - - $this->assertEqual($this->Model->escapeField(), '`Article`.`id`'); - $result = $test->fields($this->Model, null, $this->Model->escapeField()); - $this->assertEqual($result, array('`Article`.`id`')); - - $result = $test->read($this->Model, array( - 'fields' => $this->Model->escapeField(), - 'conditions' => null, - 'recursive' => -1 - )); - $this->assertEqual(trim($test->simulated[0]), 'SELECT `Article`.`id` FROM `' . $this->testDb->fullTableName('article', false) . '` AS `Article` WHERE 1 = 1'); - - $test->startQuote = '['; - $test->endQuote = ']'; - $this->assertEqual($this->Model->escapeField(), '[Article].[id]'); - - $result = $test->fields($this->Model, null, $this->Model->escapeField()); - $this->assertEqual($result, array('[Article].[id]')); - - $result = $test->read($this->Model, array( - 'fields' => $this->Model->escapeField(), - 'conditions' => null, - 'recursive' => -1 - )); - $this->assertEqual(trim($test->simulated[1]), 'SELECT [Article].[id] FROM [' . $this->testDb->fullTableName('article', false) . '] AS [Article] WHERE 1 = 1'); - - ClassRegistry::removeObject('Article'); - } - /** * testGenerateAssociationQuerySelfJoin method * diff --git a/cake/tests/cases/libs/model/models.php b/cake/tests/cases/libs/model/models.php index 8770e2c01..7bbbb2219 100644 --- a/cake/tests/cases/libs/model/models.php +++ b/cake/tests/cases/libs/model/models.php @@ -3583,3 +3583,1309 @@ class GroupUpdateAll extends CakeTestModel { public $useTable = 'group_update_all'; } + +/** + * TestModel class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class TestModel extends CakeTestModel { + +/** + * name property + * + * @var string 'TestModel' + * @access public + */ + public $name = 'TestModel'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * schema property + * + * @var array + * @access protected + */ + protected $_schema = array( + 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'client_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '11'), + 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'login' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'passwd' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'addr_1' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'addr_2' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '25'), + 'zip_code' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'city' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'country' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'phone' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'fax' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'url' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'email' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'comments' => array('type' => 'text', 'null' => '1', 'default' => '', 'length' => '155'), + 'last_login' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => ''), + 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), + 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) + ); + +/** + * find method + * + * @param mixed $conditions + * @param mixed $fields + * @param mixed $order + * @param mixed $recursive + * @access public + * @return void + */ + function find($conditions = null, $fields = null, $order = null, $recursive = null) { + return array($conditions, $fields); + } + +/** + * findAll method + * + * @param mixed $conditions + * @param mixed $fields + * @param mixed $order + * @param mixed $recursive + * @access public + * @return void + */ + function findAll($conditions = null, $fields = null, $order = null, $recursive = null) { + return $conditions; + } +} + +/** + * TestModel2 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class TestModel2 extends CakeTestModel { + +/** + * name property + * + * @var string 'TestModel2' + * @access public + */ + public $name = 'TestModel2'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; +} + +/** + * TestModel4 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class TestModel3 extends CakeTestModel { + +/** + * name property + * + * @var string 'TestModel3' + * @access public + */ + public $name = 'TestModel3'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; +} + +/** + * TestModel4 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class TestModel4 extends CakeTestModel { + +/** + * name property + * + * @var string 'TestModel4' + * @access public + */ + public $name = 'TestModel4'; + +/** + * table property + * + * @var string 'test_model4' + * @access public + */ + public $table = 'test_model4'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array( + 'TestModel4Parent' => array( + 'className' => 'TestModel4', + 'foreignKey' => 'parent_id' + ) + ); + +/** + * hasOne property + * + * @var array + * @access public + */ + public $hasOne = array( + 'TestModel5' => array( + 'className' => 'TestModel5', + 'foreignKey' => 'test_model4_id' + ) + ); + +/** + * hasAndBelongsToMany property + * + * @var array + * @access public + */ + public $hasAndBelongsToMany = array('TestModel7' => array( + 'className' => 'TestModel7', + 'joinTable' => 'test_model4_test_model7', + 'foreignKey' => 'test_model4_id', + 'associationForeignKey' => 'test_model7_id', + 'with' => 'TestModel4TestModel7' + )); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), + 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) + ); + } + return $this->_schema; + } +} + +/** + * TestModel4TestModel7 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class TestModel4TestModel7 extends CakeTestModel { + +/** + * name property + * + * @var string 'TestModel4TestModel7' + * @access public + */ + public $name = 'TestModel4TestModel7'; + +/** + * table property + * + * @var string 'test_model4_test_model7' + * @access public + */ + public $table = 'test_model4_test_model7'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'test_model4_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'test_model7_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8') + ); + } + return $this->_schema; + } +} + +/** + * TestModel5 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class TestModel5 extends CakeTestModel { + +/** + * name property + * + * @var string 'TestModel5' + * @access public + */ + public $name = 'TestModel5'; + +/** + * table property + * + * @var string 'test_model5' + * @access public + */ + public $table = 'test_model5'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array('TestModel4' => array( + 'className' => 'TestModel4', + 'foreignKey' => 'test_model4_id' + )); + +/** + * hasMany property + * + * @var array + * @access public + */ + public $hasMany = array('TestModel6' => array( + 'className' => 'TestModel6', + 'foreignKey' => 'test_model5_id' + )); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'test_model4_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), + 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) + ); + } + return $this->_schema; + } +} + +/** + * TestModel6 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class TestModel6 extends CakeTestModel { + +/** + * name property + * + * @var string 'TestModel6' + * @access public + */ + public $name = 'TestModel6'; + +/** + * table property + * + * @var string 'test_model6' + * @access public + */ + public $table = 'test_model6'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array('TestModel5' => array( + 'className' => 'TestModel5', + 'foreignKey' => 'test_model5_id' + )); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'test_model5_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), + 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) + ); + } + return $this->_schema; + } +} + +/** + * TestModel7 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class TestModel7 extends CakeTestModel { + +/** + * name property + * + * @var string 'TestModel7' + * @access public + */ + public $name = 'TestModel7'; + +/** + * table property + * + * @var string 'test_model7' + * @access public + */ + public $table = 'test_model7'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), + 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) + ); + } + return $this->_schema; + } +} + +/** + * TestModel8 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class TestModel8 extends CakeTestModel { + +/** + * name property + * + * @var string 'TestModel8' + * @access public + */ + public $name = 'TestModel8'; + +/** + * table property + * + * @var string 'test_model8' + * @access public + */ + public $table = 'test_model8'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * hasOne property + * + * @var array + * @access public + */ + public $hasOne = array( + 'TestModel9' => array( + 'className' => 'TestModel9', + 'foreignKey' => 'test_model8_id', + 'conditions' => 'TestModel9.name != \'mariano\'' + ) + ); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'test_model9_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), + 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) + ); + } + return $this->_schema; + } +} + +/** + * TestModel9 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class TestModel9 extends CakeTestModel { + +/** + * name property + * + * @var string 'TestModel9' + * @access public + */ + public $name = 'TestModel9'; + +/** + * table property + * + * @var string 'test_model9' + * @access public + */ + public $table = 'test_model9'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array('TestModel8' => array( + 'className' => 'TestModel8', + 'foreignKey' => 'test_model8_id', + 'conditions' => 'TestModel8.name != \'larry\'' + )); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'test_model8_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '11'), + 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), + 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) + ); + } + return $this->_schema; + } +} + +/** + * Level class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class Level extends CakeTestModel { + +/** + * name property + * + * @var string 'Level' + * @access public + */ + public $name = 'Level'; + +/** + * table property + * + * @var string 'level' + * @access public + */ + public $table = 'level'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * hasMany property + * + * @var array + * @access public + */ + public $hasMany = array( + 'Group'=> array( + 'className' => 'Group' + ), + 'User2' => array( + 'className' => 'User2' + ) + ); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), + 'name' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20'), + ); + } + return $this->_schema; + } +} + +/** + * Group class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class Group extends CakeTestModel { + +/** + * name property + * + * @var string 'Group' + * @access public + */ + public $name = 'Group'; + +/** + * table property + * + * @var string 'group' + * @access public + */ + public $table = 'group'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array('Level'); + +/** + * hasMany property + * + * @var array + * @access public + */ + public $hasMany = array('Category2', 'User2'); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), + 'level_id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), + 'name' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20'), + ); + } + return $this->_schema; + } + +} + +/** + * User2 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class User2 extends CakeTestModel { + +/** + * name property + * + * @var string 'User2' + * @access public + */ + public $name = 'User2'; + +/** + * table property + * + * @var string 'user' + * @access public + */ + public $table = 'user'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array( + 'Group' => array( + 'className' => 'Group' + ), + 'Level' => array( + 'className' => 'Level' + ) + ); + +/** + * hasMany property + * + * @var array + * @access public + */ + public $hasMany = array( + 'Article2' => array( + 'className' => 'Article2' + ), + ); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), + 'group_id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), + 'level_id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), + 'name' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20'), + ); + } + return $this->_schema; + } +} + +/** + * Category2 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class Category2 extends CakeTestModel { + +/** + * name property + * + * @var string 'Category2' + * @access public + */ + public $name = 'Category2'; + +/** + * table property + * + * @var string 'category' + * @access public + */ + public $table = 'category'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array( + 'Group' => array( + 'className' => 'Group', + 'foreignKey' => 'group_id' + ), + 'ParentCat' => array( + 'className' => 'Category2', + 'foreignKey' => 'parent_id' + ) + ); + +/** + * hasMany property + * + * @var array + * @access public + */ + public $hasMany = array( + 'ChildCat' => array( + 'className' => 'Category2', + 'foreignKey' => 'parent_id' + ), + 'Article2' => array( + 'className' => 'Article2', + 'order'=>'Article2.published_date DESC', + 'foreignKey' => 'category_id', + 'limit'=>'3') + ); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), + 'group_id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), + 'parent_id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), + 'name' => array('type' => 'string', 'null' => false, 'default' => '', 'length' => '255'), + 'icon' => array('type' => 'string', 'null' => false, 'default' => '', 'length' => '255'), + 'description' => array('type' => 'text', 'null' => false, 'default' => '', 'length' => null), + + ); + } + return $this->_schema; + } +} + +/** + * Article2 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class Article2 extends CakeTestModel { + +/** + * name property + * + * @var string 'Article2' + * @access public + */ + public $name = 'Article2'; + +/** + * table property + * + * @var string 'article' + * @access public + */ + public $table = 'articles'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array( + 'Category2' => array('className' => 'Category2'), + 'User2' => array('className' => 'User2') + ); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), + 'category_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'user_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'rate_count' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'rate_sum' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'viewed' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'version' => array('type' => 'string', 'null' => true, 'default' => '', 'length' => '45'), + 'title' => array('type' => 'string', 'null' => false, 'default' => '', 'length' => '200'), + 'intro' => array('text' => 'string', 'null' => true, 'default' => '', 'length' => null), + 'comments' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '4'), + 'body' => array('text' => 'string', 'null' => true, 'default' => '', 'length' => null), + 'isdraft' => array('type' => 'boolean', 'null' => false, 'default' => '0', 'length' => '1'), + 'allow_comments' => array('type' => 'boolean', 'null' => false, 'default' => '1', 'length' => '1'), + 'moderate_comments' => array('type' => 'boolean', 'null' => false, 'default' => '1', 'length' => '1'), + 'published' => array('type' => 'boolean', 'null' => false, 'default' => '0', 'length' => '1'), + 'multipage' => array('type' => 'boolean', 'null' => false, 'default' => '0', 'length' => '1'), + 'published_date' => array('type' => 'datetime', 'null' => true, 'default' => '', 'length' => null), + 'created' => array('type' => 'datetime', 'null' => false, 'default' => '0000-00-00 00:00:00', 'length' => null), + 'modified' => array('type' => 'datetime', 'null' => false, 'default' => '0000-00-00 00:00:00', 'length' => null) + ); + } + return $this->_schema; + } +} + +/** + * CategoryFeatured2 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class CategoryFeatured2 extends CakeTestModel { + +/** + * name property + * + * @var string 'CategoryFeatured2' + * @access public + */ + public $name = 'CategoryFeatured2'; + +/** + * table property + * + * @var string 'category_featured' + * @access public + */ + public $table = 'category_featured'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), + 'parent_id' => array('type' => 'integer', 'null' => false, 'default' => '', 'length' => '10'), + 'name' => array('type' => 'string', 'null' => false, 'default' => '', 'length' => '255'), + 'icon' => array('type' => 'string', 'null' => false, 'default' => '', 'length' => '255'), + 'description' => array('text' => 'string', 'null' => false, 'default' => '', 'length' => null) + ); + } + return $this->_schema; + } +} + +/** + * Featured2 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class Featured2 extends CakeTestModel { + +/** + * name property + * + * @var string 'Featured2' + * @access public + */ + public $name = 'Featured2'; + +/** + * table property + * + * @var string 'featured2' + * @access public + */ + public $table = 'featured2'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array( + 'CategoryFeatured2' => array( + 'className' => 'CategoryFeatured2' + ) + ); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), + 'article_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'category_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'name' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20') + ); + } + return $this->_schema; + } +} + +/** + * Comment2 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class Comment2 extends CakeTestModel { + +/** + * name property + * + * @var string 'Comment2' + * @access public + */ + public $name = 'Comment2'; + +/** + * table property + * + * @var string 'comment' + * @access public + */ + public $table = 'comment'; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array('ArticleFeatured2', 'User2'); + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), + 'article_featured_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'user_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'name' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20') + ); + } + return $this->_schema; + } +} + +/** + * ArticleFeatured2 class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class ArticleFeatured2 extends CakeTestModel { + +/** + * name property + * + * @var string 'ArticleFeatured2' + * @access public + */ + public $name = 'ArticleFeatured2'; + +/** + * table property + * + * @var string 'article_featured' + * @access public + */ + public $table = 'article_featured'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * belongsTo property + * + * @var array + * @access public + */ + public $belongsTo = array( + 'CategoryFeatured2' => array('className' => 'CategoryFeatured2'), + 'User2' => array('className' => 'User2') + ); + +/** + * hasOne property + * + * @var array + * @access public + */ + public $hasOne = array( + 'Featured2' => array('className' => 'Featured2') + ); + +/** + * hasMany property + * + * @var array + * @access public + */ + public $hasMany = array( + 'Comment2' => array('className'=>'Comment2', 'dependent' => true) + ); + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + if (!isset($this->_schema)) { + $this->_schema = array( + 'id' => array('type' => 'integer', 'null' => false, 'default' => null, 'length' => '10'), + 'category_featured_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'user_id' => array('type' => 'integer', 'null' => false, 'default' => '0', 'length' => '10'), + 'title' => array('type' => 'string', 'null' => true, 'default' => null, 'length' => '20'), + 'body' => array('text' => 'string', 'null' => true, 'default' => '', 'length' => null), + 'published' => array('type' => 'boolean', 'null' => false, 'default' => '0', 'length' => '1'), + 'published_date' => array('type' => 'datetime', 'null' => true, 'default' => '', 'length' => null), + 'created' => array('type' => 'datetime', 'null' => false, 'default' => '0000-00-00 00:00:00', 'length' => null), + 'modified' => array('type' => 'datetime', 'null' => false, 'default' => '0000-00-00 00:00:00', 'length' => null) + ); + } + return $this->_schema; + } +} + +/** + * MysqlTestModel class + * + * @package cake + * @subpackage cake.tests.cases.libs.model.datasources + */ +class MysqlTestModel extends Model { + +/** + * name property + * + * @var string 'MysqlTestModel' + * @access public + */ + public $name = 'MysqlTestModel'; + +/** + * useTable property + * + * @var bool false + * @access public + */ + public $useTable = false; + +/** + * find method + * + * @param mixed $conditions + * @param mixed $fields + * @param mixed $order + * @param mixed $recursive + * @access public + * @return void + */ + function find($conditions = null, $fields = null, $order = null, $recursive = null) { + return $conditions; + } + +/** + * findAll method + * + * @param mixed $conditions + * @param mixed $fields + * @param mixed $order + * @param mixed $recursive + * @access public + * @return void + */ + function findAll($conditions = null, $fields = null, $order = null, $recursive = null) { + return $conditions; + } + +/** + * schema method + * + * @access public + * @return void + */ + function schema() { + return array( + 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'client_id' => array('type' => 'integer', 'null' => '', 'default' => '0', 'length' => '11'), + 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'login' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'passwd' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'addr_1' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'addr_2' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '25'), + 'zip_code' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'city' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'country' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'phone' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'fax' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'url' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'email' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'comments' => array('type' => 'text', 'null' => '1', 'default' => '', 'length' => ''), + 'last_login'=> array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => ''), + 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), + 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) + ); + } +} \ No newline at end of file