Changeset 1906
- Timestamp:
- 10/25/08 17:14:00 (2 months ago)
- Files:
-
- framework/trunk/projects/dist/config/xml/rdbms.xml (modified) (1 diff)
- framework/trunk/src/main/php/net/stubbles/rdbms/pdo/stubDatabasePDOConnection.php (modified) (4 diffs)
- framework/trunk/src/main/php/net/stubbles/rdbms/stubDatabaseConnectionData.php (modified) (3 diffs)
- framework/trunk/src/main/resources/xjconf/rdbms.xml (modified) (1 diff)
- framework/trunk/src/test/php/net/stubbles/integration/DatabaseTestCase.php (modified) (3 diffs)
- framework/trunk/src/test/php/net/stubbles/rdbms/pdo/stubDatabasePDOConnectionTestCase.php (modified) (2 diffs)
- framework/trunk/src/test/php/net/stubbles/rdbms/stubDatabaseConnectionDataTestCase.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
framework/trunk/projects/dist/config/xml/rdbms.xml
r1670 r1906 8 8 <userName>root</userName> 9 9 <password>foo</password> 10 <initialQuery>set names utf8</initialQuery> 10 11 </connection> 11 12 </pool> framework/trunk/src/main/php/net/stubbles/rdbms/pdo/stubDatabasePDOConnection.php
r1754 r1906 64 64 { 65 65 if (null !== $this->pdo) { 66 throw new stubDatabaseException('Already connected, can not connect twice.');66 return; 67 67 } 68 68 … … 70 70 $this->createPDO(); 71 71 $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 72 if ($this->connectionData->hasInitialQuery() === true) { 73 $this->pdo->query($this->connectionData->getInitialQuery()); 74 } 72 75 } catch (PDOException $pdoe) { 73 76 throw new stubDatabaseException($pdoe->getMessage(), $pdoe); … … 80 83 * @throws PDOException 81 84 */ 85 // @codeCoverageIgnoreStart 82 86 protected function createPDO() 83 87 { … … 96 100 } 97 101 } 102 // @codeCoverageIgnoreEnd 98 103 99 104 /** framework/trunk/src/main/php/net/stubbles/rdbms/stubDatabaseConnectionData.php
r1763 r1906 6 6 * @package stubbles 7 7 * @subpackage rdbms 8 * @version $Id$ 8 9 */ 9 10 /** … … 55 56 */ 56 57 protected $driverOptions = array(); 58 /** 59 * initial query to be executed after commit 60 * 61 * @var string 62 */ 63 protected $initialQuery; 57 64 58 65 /** … … 198 205 return $this->driverOptions; 199 206 } 207 208 /** 209 * sets initial query to be send after establishing the connection 210 * 211 * @param string $initialQuery 212 */ 213 public function setInitialQuery($initialQuery) 214 { 215 $this->initialQuery = $initialQuery; 216 } 217 218 /** 219 * checks if an initial query should be send 220 * 221 * @return string 222 */ 223 public function hasInitialQuery() 224 { 225 return (null != $this->initialQuery); 226 } 227 228 /** 229 * returns initial query to be send after establishing the connection 230 * 231 * @return string 232 */ 233 public function getInitialQuery() 234 { 235 return $this->initialQuery; 236 } 200 237 } 201 238 ?> framework/trunk/src/main/resources/xjconf/rdbms.xml
r1670 r1906 2 2 <defines> 3 3 <namespace uri="http://stubbles.net/rdbms"> 4 <tag name="pool" type="net::stubbles::rdbms::stubDatabaseConnectionPool" static="true" />5 <tag name="connection" type="net::stubbles::rdbms::stubDatabaseConnectionData" setter="addConnectionData" />6 <tag name="id" type="string" />7 <tag name="connectionClassName" type="string" />8 <tag name="dsn" type="string" />9 <tag name="userName" type="string" />10 <tag name="password" type="string" />11 <tag name="driverOptions" type="array" />4 <tag name="pool" type="net::stubbles::rdbms::stubDatabaseConnectionPool" static="true"/> 5 <tag name="connection" type="net::stubbles::rdbms::stubDatabaseConnectionData" setter="addConnectionData"/> 6 <tag name="id" type="string"/> 7 <tag name="connectionClassName" type="string"/> 8 <tag name="dsn" type="string"/> 9 <tag name="userName" type="string"/> 10 <tag name="password" type="string"/> 11 <tag name="driverOptions" type="array"/> 12 12 <tag name="driverOption" keyAttribute="name" type="string"> 13 <attribute name="name" type="string" />13 <attribute name="name" type="string"/> 14 14 </tag> 15 <tag name="initialQuery" type="string"/> 15 16 </namespace> 16 17 </defines> framework/trunk/src/test/php/net/stubbles/integration/DatabaseTestCase.php
r1763 r1906 6 6 * @package stubbles 7 7 * @subpackage test_integration 8 * @version $Id$ 8 9 */ 9 10 stubClassLoader::load('net::stubbles::rdbms::stubDatabaseXJConfInitializer'); … … 38 39 $this->assertEquals('root', $connectionData->getUserName()); 39 40 $this->assertEquals('foo', $connectionData->getPassword()); 41 $this->assertTrue($connectionData->hasInitialQuery()); 42 $this->assertEquals('set names utf8', $connectionData->getInitialQuery()); 40 43 41 44 // cached … … 46 49 $this->assertEquals('root', $connectionData->getUserName()); 47 50 $this->assertEquals('foo', $connectionData->getPassword()); 51 $this->assertTrue($connectionData->hasInitialQuery()); 52 $this->assertEquals('set names utf8', $connectionData->getInitialQuery()); 48 53 } 49 54 } framework/trunk/src/test/php/net/stubbles/rdbms/pdo/stubDatabasePDOConnectionTestCase.php
r1754 r1906 112 112 113 113 /** 114 * connect() can be called anytime, but with not initial query nothing is done 115 * 116 * @test 117 */ 118 public function connectCanBeCalledAnytime() 119 { 120 $this->mockPDO->expects($this->never())->method('query'); 121 $this->pdoConnection->connect(); 122 $this->pdoConnection->connect(); 123 } 124 125 /** 126 * if an initial query is present it should be executed when connection is established 127 * 128 * @test 129 */ 130 public function connectShouldSetInitialQuery() 131 { 132 $this->connectionData->setInitialQuery('set names utf8'); 133 $this->mockPDO->expects($this->once())->method('query')->with($this->equalTo('set names utf8')); 134 $this->pdoConnection->connect(); 135 } 136 137 /** 114 138 * assert that a call to the methods delivers the expected result 115 139 * … … 262 286 $this->assertType('stubDatabasePDOStatement', $statement); 263 287 } 288 289 /** 290 * the database type should be returned 291 * 292 * @test 293 */ 294 public function databaseTypeIsReturned() 295 { 296 $this->connectionData->setDSN('mysql:host=localhost;dbname=example'); 297 $this->assertEquals('mysql', $this->pdoConnection->getDatabase()); 298 } 264 299 } 265 300 ?> framework/trunk/src/test/php/net/stubbles/rdbms/stubDatabaseConnectionDataTestCase.php
r1763 r1906 6 6 * @package stubbles 7 7 * @subpackage rdbms_test 8 * @version $Id$ 8 9 */ 9 10 stubClassLoader::load('net::stubbles::rdbms::stubDatabaseConnectionData'); … … 31 32 $this->assertEquals('', $connectionData->getPassword()); 32 33 $this->assertEquals(array(), $connectionData->getDriverOptions()); 34 $this->assertFalse($connectionData->hasInitialQuery()); 35 $this->assertNull($connectionData->getInitialQuery()); 33 36 } 34 37 … … 47 50 $connectionData->setPassword('example'); 48 51 $connectionData->setDriverOptions(array('key' => 'value')); 52 $connectionData->setInitialQuery('set names utf8'); 49 53 $this->assertEquals('foo', $connectionData->getId()); 50 54 $this->assertEquals('bar', $connectionData->getConnectionClassName()); … … 53 57 $this->assertEquals('example', $connectionData->getPassword()); 54 58 $this->assertEquals(array('key' => 'value'), $connectionData->getDriverOptions()); 59 $this->assertTrue($connectionData->hasInitialQuery()); 60 $this->assertEquals('set names utf8', $connectionData->getInitialQuery()); 55 61 } 56 62
