From ff5c84a0801015277ff044f74c05b1bd7b2c19ac Mon Sep 17 00:00:00 2001 From: zYne Date: Wed, 27 Dec 2006 21:27:25 +0000 Subject: [PATCH] Moved some tests --- tests/Db/ProfilerTestCase.php | 138 +++++++++++++++++++++++++++++ tests/ExportFirebirdTestCase.php | 53 ----------- tests/ExportMysqlTestCase.php | 145 ------------------------------- tests/ExportOracleTestCase.php | 91 ------------------- tests/ExportPgsqlTestCase.php | 47 ---------- tests/ExportReporterTestCase.php | 26 ------ tests/ExportSqliteTestCase.php | 63 -------------- 7 files changed, 138 insertions(+), 425 deletions(-) create mode 100644 tests/Db/ProfilerTestCase.php delete mode 100644 tests/ExportFirebirdTestCase.php delete mode 100644 tests/ExportMysqlTestCase.php delete mode 100644 tests/ExportOracleTestCase.php delete mode 100644 tests/ExportPgsqlTestCase.php delete mode 100644 tests/ExportReporterTestCase.php delete mode 100644 tests/ExportSqliteTestCase.php diff --git a/tests/Db/ProfilerTestCase.php b/tests/Db/ProfilerTestCase.php new file mode 100644 index 000000000..f04a28017 --- /dev/null +++ b/tests/Db/ProfilerTestCase.php @@ -0,0 +1,138 @@ +dbh = Doctrine_Db2::getConnection('sqlite::memory:'); + + $this->profiler = new Doctrine_Db_Profiler(); + + $this->dbh->setListener($this->profiler); + + $this->dbh->query('CREATE TABLE test (id INT)'); + + $this->assertEqual($this->profiler->lastEvent()->getQuery(), 'CREATE TABLE test (id INT)'); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::QUERY); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + + $this->assertEqual($this->dbh->count(), 1); + } + public function testPrepareAndExecute() { + + $stmt = $this->dbh->prepare('INSERT INTO test (id) VALUES (?)'); + $event = $this->profiler->lastEvent(); + + $this->assertEqual($event->getQuery(), 'INSERT INTO test (id) VALUES (?)'); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::PREPARE); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + + $stmt->execute(array(1)); + + $this->assertEqual($this->profiler->lastEvent()->getQuery(), 'INSERT INTO test (id) VALUES (?)'); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::EXECUTE); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + + $this->assertEqual($this->dbh->count(), 2); + } + public function testMultiplePrepareAndExecute() { + + $stmt = $this->dbh->prepare('INSERT INTO test (id) VALUES (?)'); + $this->assertEqual($this->profiler->lastEvent()->getQuery(), 'INSERT INTO test (id) VALUES (?)'); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::PREPARE); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + + $stmt2 = $this->dbh->prepare('INSERT INTO test (id) VALUES (?)'); + $this->assertEqual($this->profiler->lastEvent()->getQuery(), 'INSERT INTO test (id) VALUES (?)'); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::PREPARE); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + + $stmt->execute(array(1)); + $stmt2->execute(array(1)); + + $this->assertEqual($this->profiler->lastEvent()->getQuery(), 'INSERT INTO test (id) VALUES (?)'); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::EXECUTE); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + + $this->assertEqual($this->dbh->count(), 4); + } + public function testExecuteStatementMultipleTimes() { + try { + $stmt = $this->dbh->prepare('INSERT INTO test (id) VALUES (?)'); + $stmt->execute(array(1)); + $stmt->execute(array(1)); + $this->pass(); + } catch(Doctrine_Db_Exception $e) { + + $this->fail($e->__toString()); + } + $this->assertEqual($this->profiler->lastEvent()->getQuery(), 'INSERT INTO test (id) VALUES (?)'); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::EXECUTE); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + + $this->assertEqual($this->profiler->lastEvent()->getQuery(), 'INSERT INTO test (id) VALUES (?)'); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::EXECUTE); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + } + public function testTransactionRollback() { + try { + $this->dbh->beginTransaction(); + $this->pass(); + } catch(Doctrine_Db_Exception $e) { + $this->fail($e->__toString()); + } + $this->assertEqual($this->profiler->lastEvent()->getQuery(), null); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::BEGIN); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + + try { + $this->dbh->rollback(); + $this->pass(); + } catch(Doctrine_Db_Exception $e) { + $this->fail($e->__toString()); + } + + $this->assertEqual($this->profiler->lastEvent()->getQuery(), null); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::ROLLBACK); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + } + public function testTransactionCommit() { + try { + $this->dbh->beginTransaction(); + $this->pass(); + } catch(Doctrine_Db_Exception $e) { + $this->fail($e->__toString()); + } + $this->assertEqual($this->profiler->lastEvent()->getQuery(), null); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::BEGIN); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + + try { + $this->dbh->commit(); + $this->pass(); + } catch(Doctrine_Db_Exception $e) { + $this->fail($e->__toString()); + $this->dbh->rollback(); + } + + $this->assertEqual($this->profiler->lastEvent()->getQuery(), null); + $this->assertTrue($this->profiler->lastEvent()->hasEnded()); + $this->assertEqual($this->profiler->lastEvent()->getType(), Doctrine_Db_Event::COMMIT); + $this->assertTrue(is_numeric($this->profiler->lastEvent()->getElapsedSecs())); + } +} +?> diff --git a/tests/ExportFirebirdTestCase.php b/tests/ExportFirebirdTestCase.php deleted file mode 100644 index cbe165b07..000000000 --- a/tests/ExportFirebirdTestCase.php +++ /dev/null @@ -1,53 +0,0 @@ -export->createDatabase('db'); - $this->fail(); - } catch(Doctrine_Export_Firebird_Exception $e) { - $this->pass(); - } - } - public function testDropDatabaseDoesNotExecuteSql() { - try { - $this->export->dropDatabase('db'); - $this->fail(); - } catch(Doctrine_Export_Firebird_Exception $e) { - $this->pass(); - } - } - public function testCreateTableSupportsAutoincPks() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'integer', 'unsigned' => 1, 'autoincrement' => true)); - - $this->export->createTable($name, $fields); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id SERIAL PRIMARY KEY)'); - } - public function testCreateTableSupportsDefaultAttribute() { - $name = 'mytable'; - $fields = array('name' => array('type' => 'char', 'length' => 10, 'default' => 'def'), - 'type' => array('type' => 'integer', 'length' => 3, 'default' => 12) - ); - - $options = array('primary' => array('name', 'type')); - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (name CHAR(10) DEFAULT \'def\', type INT DEFAULT 12, PRIMARY KEY(name, type))'); - } - public function testCreateTableSupportsMultiplePks() { - $name = 'mytable'; - $fields = array('name' => array('type' => 'char', 'length' => 10), - 'type' => array('type' => 'integer', 'length' => 3)); - - $options = array('primary' => array('name', 'type')); - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (name CHAR(10), type INT, PRIMARY KEY(name, type))'); - } -} -?> diff --git a/tests/ExportMysqlTestCase.php b/tests/ExportMysqlTestCase.php deleted file mode 100644 index 6b14db2e5..000000000 --- a/tests/ExportMysqlTestCase.php +++ /dev/null @@ -1,145 +0,0 @@ -export->alterTable(0,0,array()); - - $this->fail(); - } catch(Doctrine_Export_Exception $e) { - $this->pass(); - } - } - public function testCreateTableExecutesSql() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'integer', 'unsigned' => 1)); - $options = array('type' => 'MYISAM'); - - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id INT UNSIGNED) ENGINE = MYISAM'); - } - public function testCreateTableSupportsDefaultTableType() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'integer', 'unsigned' => 1)); - - $this->export->createTable($name, $fields); - - // INNODB is the default type - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id INT UNSIGNED) ENGINE = INNODB'); - } - public function testCreateTableSupportsMultiplePks() { - $name = 'mytable'; - $fields = array('name' => array('type' => 'char', 'length' => 10), - 'type' => array('type' => 'integer', 'length' => 3)); - - $options = array('primary' => array('name', 'type')); - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (name CHAR(10), type MEDIUMINT, PRIMARY KEY(name, type)) ENGINE = INNODB'); - } - public function testCreateTableSupportsAutoincPks() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'integer', 'unsigned' => 1, 'autoincrement' => true)); - $options = array('type' => 'INNODB'); - - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY) ENGINE = INNODB'); - } - public function testCreateTableSupportsCharType() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'char', 'length' => 3)); - $options = array('type' => 'MYISAM'); - - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id CHAR(3)) ENGINE = MYISAM'); - } - public function testCreateTableSupportsCharType2() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'char')); - $options = array('type' => 'MYISAM'); - - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id CHAR(255)) ENGINE = MYISAM'); - } - public function testCreateTableSupportsVarcharType() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'varchar', 'length' => '100')); - $options = array('type' => 'MYISAM'); - - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id VARCHAR(100)) ENGINE = MYISAM'); - } - public function testCreateTableSupportsIntegerType() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'integer', 'length' => '10')); - $options = array('type' => 'MYISAM'); - - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id BIGINT) ENGINE = MYISAM'); - } - public function testCreateTableSupportsBlobType() { - $name = 'mytable'; - - $fields = array('content' => array('type' => 'blob')); - $options = array('type' => 'MYISAM'); - - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (content LONGBLOB) ENGINE = MYISAM'); - } - public function testCreateTableSupportsBlobType2() { - $name = 'mytable'; - - $fields = array('content' => array('type' => 'blob', 'length' => 2000)); - $options = array('type' => 'MYISAM'); - - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (content BLOB) ENGINE = MYISAM'); - } - - public function testCreateTableSupportsBooleanType() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'boolean')); - $options = array('type' => 'MYISAM'); - - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id TINYINT(1)) ENGINE = MYISAM'); - } - public function testCreateDatabaseExecutesSql() { - $this->export->createDatabase('db'); - - $this->assertEqual($this->adapter->pop(), 'CREATE DATABASE db'); - } - public function testDropDatabaseExecutesSql() { - $this->export->dropDatabase('db'); - - $this->assertEqual($this->adapter->pop(), 'DROP DATABASE db'); - } - - public function testDropIndexExecutesSql() { - $this->export->dropIndex('sometable', 'relevancy'); - - $this->assertEqual($this->adapter->pop(), 'DROP INDEX relevancy_idx ON sometable'); - } - -} -?> diff --git a/tests/ExportOracleTestCase.php b/tests/ExportOracleTestCase.php deleted file mode 100644 index f153030fa..000000000 --- a/tests/ExportOracleTestCase.php +++ /dev/null @@ -1,91 +0,0 @@ -export->createSequence($sequenceName, $start); - - $this->assertEqual($this->adapter->pop(), $query); - } - - public function testDropSequenceExecutesSql() { - $sequenceName = 'sequence'; - - $query = 'DROP SEQUENCE ' . $sequenceName; - - $this->export->dropSequence($sequenceName); - - $this->assertEqual($this->adapter->pop(), $query . '_seq'); - } - public function testCreateTableExecutesSql() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'integer')); - $options = array('type' => 'MYISAM'); - - $this->export->createTable($name, $fields); - - $this->assertEqual($this->adapter->pop(), 'COMMIT'); - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id INT)'); - $this->assertEqual($this->adapter->pop(), 'BEGIN TRANSACTION'); - } - public function testCreateTableSupportsDefaultAttribute() { - $name = 'mytable'; - $fields = array('name' => array('type' => 'char', 'length' => 10, 'default' => 'def'), - 'type' => array('type' => 'integer', 'length' => 3, 'default' => 12) - ); - - $options = array('primary' => array('name', 'type')); - $this->export->createTable($name, $fields, $options); - - - $this->assertEqual($this->adapter->pop(), 'COMMIT'); - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (name CHAR(10) DEFAULT \'def\', type NUMBER(3) DEFAULT 12, PRIMARY KEY(name, type))'); - $this->assertEqual($this->adapter->pop(), 'BEGIN TRANSACTION'); - } - public function testCreateTableSupportsMultiplePks() { - $name = 'mytable'; - $fields = array('name' => array('type' => 'char', 'length' => 10), - 'type' => array('type' => 'integer', 'length' => 3)); - - $options = array('primary' => array('name', 'type')); - $this->export->createTable($name, $fields, $options); - - - $this->assertEqual($this->adapter->pop(), 'COMMIT'); - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (name CHAR(10), type NUMBER(3), PRIMARY KEY(name, type))'); - $this->assertEqual($this->adapter->pop(), 'BEGIN TRANSACTION'); - } - public function testCreateTableSupportsAutoincPks() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'integer', 'autoincrement' => true)); - - - $this->export->createTable($name, $fields); - - $this->assertEqual($this->adapter->pop(), 'COMMIT'); - $this->assertEqual(substr($this->adapter->pop(),0, 14), 'CREATE TRIGGER'); - $this->assertEqual($this->adapter->pop(), 'CREATE SEQUENCE MYTABLE_seq START WITH 1 INCREMENT BY 1 NOCACHE'); - $this->assertEqual($this->adapter->pop(), 'ALTER TABLE MYTABLE ADD CONSTRAINT MYTABLE_AI_PK_idx PRIMARY KEY (id)'); - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id INT)'); - $this->assertEqual($this->adapter->pop(), 'BEGIN TRANSACTION'); - } - - public function testCreateTableSupportsCharType() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'char', 'length' => 3)); - - $this->export->createTable($name, $fields); - - $this->adapter->pop(); - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id CHAR(3))'); - } -} -?> diff --git a/tests/ExportPgsqlTestCase.php b/tests/ExportPgsqlTestCase.php deleted file mode 100644 index bdc837200..000000000 --- a/tests/ExportPgsqlTestCase.php +++ /dev/null @@ -1,47 +0,0 @@ -export->createDatabase('db'); - - $this->assertEqual($this->adapter->pop(), 'CREATE DATABASE db'); - } - public function testDropDatabaseExecutesSql() { - $this->export->dropDatabase('db'); - - $this->assertEqual($this->adapter->pop(), 'DROP DATABASE db'); - } - public function testCreateTableSupportsAutoincPks() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'integer', 'unsigned' => 1, 'autoincrement' => true)); - - $this->export->createTable($name, $fields); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id SERIAL PRIMARY KEY)'); - } - public function testCreateTableSupportsDefaultAttribute() { - $name = 'mytable'; - $fields = array('name' => array('type' => 'char', 'length' => 10, 'default' => 'def'), - 'type' => array('type' => 'integer', 'length' => 3, 'default' => 12) - ); - - $options = array('primary' => array('name', 'type')); - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (name CHAR(10) DEFAULT \'def\', type INT DEFAULT 12, PRIMARY KEY(name, type))'); - } - public function testCreateTableSupportsMultiplePks() { - $name = 'mytable'; - $fields = array('name' => array('type' => 'char', 'length' => 10), - 'type' => array('type' => 'integer', 'length' => 3)); - - $options = array('primary' => array('name', 'type')); - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (name CHAR(10), type INT, PRIMARY KEY(name, type))'); - } -} -?> diff --git a/tests/ExportReporterTestCase.php b/tests/ExportReporterTestCase.php deleted file mode 100644 index 76fd6144c..000000000 --- a/tests/ExportReporterTestCase.php +++ /dev/null @@ -1,26 +0,0 @@ -export->export('BadLyNamed__Class'); - - // Class name is not valid. Double underscores are not allowed - - $this->assertEqual($reporter->pop(), array(E_WARNING, 'Badly named class.')); - } - public function testExportReportsExceptions() { - - $reporter = $this->export->export('User'); - // Class name is not valid. Double underscores are not allowed - - $this->assertEqual($reporter->pop(), array(E_WARNING, Doctrine::ERR_CLASS_NAME)); - } -} diff --git a/tests/ExportSqliteTestCase.php b/tests/ExportSqliteTestCase.php deleted file mode 100644 index 267f2973d..000000000 --- a/tests/ExportSqliteTestCase.php +++ /dev/null @@ -1,63 +0,0 @@ -manager->setAttribute(Doctrine::ATTR_CREATE_TABLES, false); - $this->adapter->forceException('PDOException', 'table already exist', 123); - - $reporter = $this->export->export('User'); - - // Class name is not valid. Double underscores are not allowed - - $this->assertEqual($reporter->pop(), array(E_ERROR, Doctrine::ERR_ALREADY_EXISTS)); - } - public function testCreateDatabaseDoesNotExecuteSql() { - try { - $this->export->createDatabase('db'); - $this->fail(); - } catch(Doctrine_Export_Exception $e) { - $this->pass(); - } - } - public function testDropDatabaseDoesNotExecuteSql() { - try { - $this->export->dropDatabase('db'); - $this->fail(); - } catch(Doctrine_Export_Exception $e) { - $this->pass(); - } - } - public function testCreateTableSupportsAutoincPks() { - $name = 'mytable'; - - $fields = array('id' => array('type' => 'integer', 'unsigned' => 1, 'autoincrement' => true)); - - $this->export->createTable($name, $fields); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (id INTEGER UNSIGNED PRIMARY KEY AUTOINCREMENT)'); - } - public function testCreateTableSupportsDefaultAttribute() { - $name = 'mytable'; - $fields = array('name' => array('type' => 'char', 'length' => 10, 'default' => 'def'), - 'type' => array('type' => 'integer', 'length' => 3, 'default' => 12) - ); - - $options = array('primary' => array('name', 'type')); - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (name CHAR(10) DEFAULT \'def\', type INTEGER DEFAULT 12, PRIMARY KEY(name, type))'); - } - public function testCreateTableSupportsMultiplePks() { - $name = 'mytable'; - $fields = array('name' => array('type' => 'char', 'length' => 10), - 'type' => array('type' => 'integer', 'length' => 3)); - - $options = array('primary' => array('name', 'type')); - $this->export->createTable($name, $fields, $options); - - $this->assertEqual($this->adapter->pop(), 'CREATE TABLE mytable (name CHAR(10), type INTEGER, PRIMARY KEY(name, type))'); - } -} -?>