Commit 5a9c72c3 authored by zYne's avatar zYne

index tests

parent 0b3a3c38
...@@ -53,7 +53,7 @@ class Doctrine_Cache_TestCase extends Doctrine_UnitTestCase ...@@ -53,7 +53,7 @@ class Doctrine_Cache_TestCase extends Doctrine_UnitTestCase
$resultSet = array(array('name' => 'John'), array('name' => 'Arnold')); $resultSet = array(array('name' => 'John'), array('name' => 'Arnold'));
$this->cache->getDriver()->save(md5($query), $resultSet); $this->cache->getDriver()->save(md5(serialize($query)), $resultSet);
$count = $this->dbh->getAdapter()->count(); $count = $this->dbh->getAdapter()->count();
......
...@@ -253,6 +253,28 @@ class Doctrine_Export_Mysql_TestCase extends Doctrine_UnitTestCase ...@@ -253,6 +253,28 @@ class Doctrine_Export_Mysql_TestCase extends Doctrine_UnitTestCase
$this->assertEqual($this->adapter->pop(), 'CREATE TABLE sometable (id INT UNSIGNED AUTO_INCREMENT, content VARCHAR(4), FULLTEXT INDEX myindex (content DESC), PRIMARY KEY(id)) ENGINE = MYISAM'); $this->assertEqual($this->adapter->pop(), 'CREATE TABLE sometable (id INT UNSIGNED AUTO_INCREMENT, content VARCHAR(4), FULLTEXT INDEX myindex (content DESC), PRIMARY KEY(id)) ENGINE = MYISAM');
} }
public function testExportSupportsIndexes()
{
$r = new MysqlIndexTestRecord;
$this->assertEqual($this->adapter->pop(), 'CREATE TABLE mysql_index_test_record (id BIGINT AUTO_INCREMENT, name TEXT, code INT, content TEXT, FULLTEXT INDEX content_idx (content), UNIQUE INDEX namecode_idx (name, code), PRIMARY KEY(id)) ENGINE = MYISAM');
}
}
class MysqlIndexTestRecord extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('name', 'string', null);
$this->hasColumn('code', 'integer', 4);
$this->hasColumn('content', 'string', 4000);
$this->index('content', array('fields' => 'content', 'type' => 'fulltext'));
$this->index('namecode', array('fields' => array('name', 'code'),
'type' => 'unique'));
$this->option('type', 'MYISAM');
}
} }
class MysqlTestRecord extends Doctrine_Record class MysqlTestRecord extends Doctrine_Record
{ {
......
...@@ -30,8 +30,10 @@ ...@@ -30,8 +30,10 @@
* @since 1.0 * @since 1.0
* @version $Revision$ * @version $Revision$
*/ */
class Doctrine_Export_TestCase extends Doctrine_UnitTestCase { class Doctrine_Export_TestCase extends Doctrine_UnitTestCase
public function testCreateTableThrowsExceptionWithoutValidTableName() { {
public function testCreateTableThrowsExceptionWithoutValidTableName()
{
try { try {
$this->export->createTable(0, array(), array()); $this->export->createTable(0, array(), array());
...@@ -40,7 +42,8 @@ class Doctrine_Export_TestCase extends Doctrine_UnitTestCase { ...@@ -40,7 +42,8 @@ class Doctrine_Export_TestCase extends Doctrine_UnitTestCase {
$this->pass(); $this->pass();
} }
} }
public function testCreateTableThrowsExceptionWithEmptyFieldsArray() { public function testCreateTableThrowsExceptionWithEmptyFieldsArray()
{
try { try {
$this->export->createTable('sometable', array(), array()); $this->export->createTable('sometable', array(), array());
...@@ -49,28 +52,33 @@ class Doctrine_Export_TestCase extends Doctrine_UnitTestCase { ...@@ -49,28 +52,33 @@ class Doctrine_Export_TestCase extends Doctrine_UnitTestCase {
$this->pass(); $this->pass();
} }
} }
public function testDropConstraintExecutesSql() { public function testDropConstraintExecutesSql()
{
$this->export->dropConstraint('sometable', 'relevancy'); $this->export->dropConstraint('sometable', 'relevancy');
$this->assertEqual($this->adapter->pop(), 'ALTER TABLE sometable DROP CONSTRAINT relevancy_idx'); $this->assertEqual($this->adapter->pop(), 'ALTER TABLE sometable DROP CONSTRAINT relevancy_idx');
} }
public function testCreateIndexExecutesSql() { public function testCreateIndexExecutesSql()
{
$this->export->createIndex('sometable', 'relevancy', array('fields' => array('title' => array(), 'content' => array()))); $this->export->createIndex('sometable', 'relevancy', array('fields' => array('title' => array(), 'content' => array())));
$this->assertEqual($this->adapter->pop(), 'CREATE INDEX relevancy_idx ON sometable (title, content)'); $this->assertEqual($this->adapter->pop(), 'CREATE INDEX relevancy_idx ON sometable (title, content)');
} }
public function testDropIndexExecutesSql() { public function testDropIndexExecutesSql()
{
$this->export->dropIndex('sometable', 'relevancy'); $this->export->dropIndex('sometable', 'relevancy');
$this->assertEqual($this->adapter->pop(), 'DROP INDEX relevancy_idx'); $this->assertEqual($this->adapter->pop(), 'DROP INDEX relevancy_idx');
} }
public function testDropTableExecutesSql() { public function testDropTableExecutesSql()
{
$this->export->dropTable('sometable'); $this->export->dropTable('sometable');
$this->assertEqual($this->adapter->pop(), 'DROP TABLE sometable'); $this->assertEqual($this->adapter->pop(), 'DROP TABLE sometable');
} }
public function testRecordIsExportedProperly() { public function testRecordIsExportedProperly()
{
} }
} }
......
...@@ -38,6 +38,7 @@ class Doctrine_Query_Join_TestCase extends Doctrine_UnitTestCase ...@@ -38,6 +38,7 @@ class Doctrine_Query_Join_TestCase extends Doctrine_UnitTestCase
public function prepareData() public function prepareData()
{ {
} }
public function testInitData() public function testInitData()
{ {
$c = new Record_Country(); $c = new Record_Country();
...@@ -82,4 +83,23 @@ class Doctrine_Query_Join_TestCase extends Doctrine_UnitTestCase ...@@ -82,4 +83,23 @@ class Doctrine_Query_Join_TestCase extends Doctrine_UnitTestCase
$this->assertEqual($q->getQuery(), 'SELECT e.id AS e__id, e.name AS e__name FROM entity e INNER JOIN groupuser g ON e.id = g.user_id INNER JOIN entity e2 ON e2.id = g.group_id WHERE (e.type = 0 AND (e2.type = 1 OR e2.type IS NULL))'); $this->assertEqual($q->getQuery(), 'SELECT e.id AS e__id, e.name AS e__name FROM entity e INNER JOIN groupuser g ON e.id = g.user_id INNER JOIN entity e2 ON e2.id = g.group_id WHERE (e.type = 0 AND (e2.type = 1 OR e2.type IS NULL))');
} }
public function testSelfReferentialAssociationJoinsAreSupported()
{
$q = new Doctrine_Query();
$q->select('e.name')->from('Entity e INNER JOIN e.Entity e2');
$this->assertEqual($q->getQuery(), 'SELECT e.id AS e__id, e.name AS e__name FROM entity e INNER JOIN entity_reference e3 ON e.id = e3.entity1 OR e.id = e3.entity2 INNER JOIN entity e2 ON e2.id = e3.entity2 OR e2.id = e3.entity1');
}
/**
public function testSelfReferentialNestJoin()
{
$nest = new NestTest();
$rel = $nest->getTable()->getRelation('Parents');
$this->assertEqual($rel->getLocal(), 'parent_id');
$this->assertTrue($rel instanceof Doctrine_Association);
}
*/
} }
...@@ -119,7 +119,7 @@ class Doctrine_Table_TestCase extends Doctrine_UnitTestCase { ...@@ -119,7 +119,7 @@ class Doctrine_Table_TestCase extends Doctrine_UnitTestCase {
$this->assertTrue($this->objTable->getComponentName() == "User"); $this->assertTrue($this->objTable->getComponentName() == "User");
} }
public function testGetTableName() { public function testGetTableName() {
$this->assertTrue($this->objTable->getTableName() == "entity"); $this->assertTrue($this->objTable->tableName == "entity");
} }
public function testGetConnection() { public function testGetConnection() {
$this->assertTrue($this->objTable->getConnection() instanceof Doctrine_Connection); $this->assertTrue($this->objTable->getConnection() instanceof Doctrine_Connection);
...@@ -128,9 +128,9 @@ class Doctrine_Table_TestCase extends Doctrine_UnitTestCase { ...@@ -128,9 +128,9 @@ class Doctrine_Table_TestCase extends Doctrine_UnitTestCase {
$this->assertTrue($this->objTable->getData() == array()); $this->assertTrue($this->objTable->getData() == array());
} }
public function testSetSequenceName() { public function testSetSequenceName() {
$this->objTable->setSequenceName("test-seq"); $this->objTable->sequenceName = "test-seq";
$this->assertEqual($this->objTable->getSequenceName(),"test-seq"); $this->assertEqual($this->objTable->sequenceName, "test-seq");
$this->objTable->setSequenceName(null); $this->objTable->sequenceName = null;
} }
public function testCreate() { public function testCreate() {
$record = $this->objTable->create(); $record = $this->objTable->create();
......
...@@ -584,5 +584,22 @@ class PackageVersionNotes extends Doctrine_Record { ...@@ -584,5 +584,22 @@ class PackageVersionNotes extends Doctrine_Record {
$this->hasOne('PackageVersion', 'PackageVersionNotes.package_version_id'); $this->hasOne('PackageVersion', 'PackageVersionNotes.package_version_id');
} }
} }
class NestTest extends Doctrine_Record
{
public function setTableDefinition() {
$this->hasColumn('name', 'string');
}
public function setUp()
{
$this->hasMany('NestTest as Parents', 'NestReference.parent_id');
$this->hasMany('NestTest as Children', 'NestReference.child_id');
}
}
class NestReference extends Doctrine_Record
{
public function setTableDefinition() {
$this->hasColumn('parent_id', 'integer', 4, 'primary');
$this->hasColumn('child_id', 'integer', 4, 'primary');
}
}
?> ?>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment