From d877676a3b2432fccfc5ce97e42008f9ce20c94d Mon Sep 17 00:00:00 2001 From: xue <> Date: Sat, 25 Nov 2006 02:27:26 +0000 Subject: Further bug fixes. --- tests/unit/Data/TDbCommandTest.php | 152 ++++++++++++++++++++++++------------- 1 file changed, 101 insertions(+), 51 deletions(-) (limited to 'tests/unit') diff --git a/tests/unit/Data/TDbCommandTest.php b/tests/unit/Data/TDbCommandTest.php index ab94cb3f..40d871e3 100644 --- a/tests/unit/Data/TDbCommandTest.php +++ b/tests/unit/Data/TDbCommandTest.php @@ -85,86 +85,136 @@ class TDbCommandTest extends PHPUnit2_Framework_TestCase $command->cancel(); $this->assertEquals($command->PdoStatement,null); } -/* - public function testActive() - { - $this->assertFalse($this->_connection2->Active); - $this->_connection2->Active=true; - $this->assertTrue($this->_connection2->Active); - $pdo=$this->_connection2->PdoInstance; - // test setting Active repeatedly doesn't re-connect DB - $this->_connection2->Active=true; - $this->assertTrue($pdo===$this->_connection2->PdoInstance); + public function testBindParameter() + { + $sql='INSERT INTO foo (id,name) VALUES (3,:name)'; + $command=$this->_connection->createCommand($sql); + $name='new name'; + $command->bindParameter(':name',$name); + $command->execute(); + $insertedName=$this->_connection->createCommand('SELECT name FROM foo WHERE id=3')->queryScalar(); + $this->assertEquals($name,$insertedName); + } - $this->_connection2->Active=false; - $this->assertFalse($this->_connection2->Active); + public function testBindValue() + { + $sql='INSERT INTO foo (id,name) VALUES (3,:name)'; + $command=$this->_connection->createCommand($sql); + $command->bindValue(':name','new name'); + $command->execute(); + $insertedName=$this->_connection->createCommand('SELECT name FROM foo WHERE id=3')->queryScalar(); + $this->assertEquals('new name',$insertedName); } - public function testCreateCommand() + public function testExecute() { - $sql='CREATE TABLE foo (id INTEGER NOT NULL PRIMARY KEY, name VARCHAR(8))'; + // test unprepared SQL execution + $sql='INSERT INTO foo (name) VALUES (\'new name\')'; + $command=$this->_connection->createCommand($sql); + $command->execute(); + $command->execute(); + $count=$this->_connection->createCommand('SELECT COUNT(id) AS id_count FROM foo')->queryScalar(); + $this->assertEquals('4',$count); + + // test prepared SQL execution + $sql='INSERT INTO foo (name) VALUES (\'new name\')'; + $command=$this->_connection->createCommand($sql); + $command->prepare(); + $command->execute(); + $command->execute(); + $count=$this->_connection->createCommand('SELECT COUNT(id) AS id_count FROM foo')->queryScalar(); + $this->assertEquals('6',$count); + + // test exception raising try { - $this->_connection2->createCommand($sql); + $command=$this->_connection->createCommand('bad SQL'); + $command->execute(); $this->fail('Expected exception is not raised'); } catch(TDbException $e) { } - - $command=$this->_connection->createCommand($sql); - $this->assertTrue($command instanceof TDbCommand); } - public function testBeginTransaction() + public function testQuery() { - $sql='INSERT INTO foo(id,name) VALUES (1,\'my name\')'; - $transaction=$this->_connection->beginTransaction(); + // test unprepared SQL query + $sql='SELECT * FROM foo'; + $reader=$this->_connection->createCommand($sql)->query(); + $this->assertTrue($reader instanceof TDbDataReader); + + // test unprepared SQL query + $sql='SELECT * FROM foo'; + $command=$this->_connection->createCommand($sql); + $command->prepare(); + $reader=$command->query(); + $this->assertTrue($reader instanceof TDbDataReader); + + // test exception raising try { - $this->_connection->createCommand($sql)->execute(); - $this->_connection->createCommand($sql)->execute(); - $this->fail('Expected exception not raised'); - $transaction->commit(); + $command=$this->_connection->createCommand('bad SQL'); + $command->query(); + $this->fail('Expected exception is not raised'); } - catch(Exception $e) + catch(TDbException $e) { - $transaction->rollBack(); - $reader=$this->_connection->createCommand('SELECT * FROM foo')->query(); - $this->assertFalse($reader->read()); } } - public function testLastInsertID() + public function testQueryRow() { - $sql='INSERT INTO foo(name) VALUES (\'my name\')'; - $this->_connection->createCommand($sql)->execute(); - $value=$this->_connection->LastInsertID; - $this->assertEquals($this->_connection->LastInsertID,'1'); - } + // test unprepared SQL query + $sql='SELECT * FROM foo'; + $row=$this->_connection->createCommand($sql)->queryRow(); + $this->assertTrue($row['id']==='1' && $row['name']==='my name'); - public function testQuoteString() - { - $str="this is 'my' name"; - $expectedStr="'this is ''my'' name'"; - $this->assertEquals($expectedStr,$this->_connection->quoteString($str)); - } + // test unprepared SQL query + $sql='SELECT * FROM foo'; + $command=$this->_connection->createCommand($sql); + $command->prepare(); + $row=$command->queryRow(); + $this->assertTrue($row['id']==='1' && $row['name']==='my name'); - public function testColumnNameCase() - { - $this->assertEquals(TDbColumnCaseMode::Preserved,$this->_connection->ColumnCase); - $this->_connection->ColumnCase=TDbColumnCaseMode::LowerCase; - $this->assertEquals(TDbColumnCaseMode::LowerCase,$this->_connection->ColumnCase); + // test exception raising + try + { + $command=$this->_connection->createCommand('bad SQL'); + $command->queryRow(); + $this->fail('Expected exception is not raised'); + } + catch(TDbException $e) + { + } } - public function testNullConversion() + public function testQueryScalar() { - $this->assertEquals(TDbNullConversionMode::Preserved,$this->_connection->NullConversion); - $this->_connection->NullConversion=TDbNullConversionMode::NullToEmptyString; - $this->assertEquals(TDbNullConversionMode::NullToEmptyString,$this->_connection->NullConversion); + // test unprepared SQL query + $sql='SELECT * FROM foo'; + $id=$this->_connection->createCommand($sql)->queryScalar(); + $this->assertTrue($id==='1'); + + // test unprepared SQL query + $sql='SELECT * FROM foo'; + $command=$this->_connection->createCommand($sql); + $command->prepare(); + $row=$command->queryScalar(); + $this->assertTrue($id==='1'); + + // test exception raising + try + { + $command=$this->_connection->createCommand('bad SQL'); + $command->queryScalar(); + $this->fail('Expected exception is not raised'); + } + catch(TDbException $e) + { + } } - */ } ?> \ No newline at end of file -- cgit v1.2.3