X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=vendor%2Fdoctrine%2Fdbal%2Ftests%2FDoctrine%2FTests%2FDBAL%2FFunctional%2FPortabilityTest.php;fp=vendor%2Fdoctrine%2Fdbal%2Ftests%2FDoctrine%2FTests%2FDBAL%2FFunctional%2FPortabilityTest.php;h=acf995bbc4af8dacbf5ed5c061c27d6af1ab8dc6;hb=8b04b2d11798dee4f3e1358e4f43e97a6df851f6;hp=0000000000000000000000000000000000000000;hpb=73568cf05a785a45f94ca3f2351d9e07bf917958;p=zf2.biz%2Fgalerie.git diff --git a/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Functional/PortabilityTest.php b/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Functional/PortabilityTest.php new file mode 100644 index 0000000..acf995b --- /dev/null +++ b/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Functional/PortabilityTest.php @@ -0,0 +1,97 @@ +portableConnection) { + $this->portableConnection->close(); + } + } + + private function getPortableConnection($portabilityMode = \Doctrine\DBAL\Portability\Connection::PORTABILITY_ALL, $case = \PDO::CASE_LOWER) + { + if (!$this->portableConnection) { + $params = $this->_conn->getParams(); + $params['wrapperClass'] = 'Doctrine\DBAL\Portability\Connection'; + $params['portability'] = $portabilityMode; + $params['fetch_case'] = $case; + $this->portableConnection = DriverManager::getConnection($params, $this->_conn->getConfiguration(), $this->_conn->getEventManager()); + + try { + /* @var $sm \Doctrine\DBAL\Schema\AbstractSchemaManager */ + $table = new \Doctrine\DBAL\Schema\Table("portability_table"); + $table->addColumn('Test_Int', 'integer'); + $table->addColumn('Test_String', 'string', array('fixed' => true, 'length' => 32)); + $table->addColumn('Test_Null', 'string', array('notnull' => false)); + $table->setPrimaryKey(array('Test_Int')); + + $sm = $this->portableConnection->getSchemaManager(); + $sm->createTable($table); + + $this->portableConnection->insert('portability_table', array('Test_Int' => 1, 'Test_String' => 'foo', 'Test_Null' => '')); + $this->portableConnection->insert('portability_table', array('Test_Int' => 2, 'Test_String' => 'foo ', 'Test_Null' => null)); + } catch(\Exception $e) { + + } + } + + return $this->portableConnection; + } + + public function testFullFetchMode() + { + $rows = $this->getPortableConnection()->fetchAll('SELECT * FROM portability_table'); + $this->assertFetchResultRows($rows); + + $stmt = $this->getPortableConnection()->query('SELECT * FROM portability_table'); + $stmt->setFetchMode(\PDO::FETCH_ASSOC); + foreach ($stmt as $row) { + $this->assertFetchResultRow($row); + } + + $stmt = $this->getPortableConnection()->query('SELECT * FROM portability_table'); + while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { + $this->assertFetchResultRow($row); + } + + $stmt = $this->getPortableConnection()->prepare('SELECT * FROM portability_table'); + $stmt->execute(); + + while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { + $this->assertFetchResultRow($row); + } + } + + public function assertFetchResultRows($rows) + { + $this->assertEquals(2, count($rows)); + foreach ($rows AS $row) { + $this->assertFetchResultRow($row); + } + } + + public function assertFetchResultRow($row) + { + $this->assertTrue(in_array($row['test_int'], array(1, 2)), "Primary key test_int should either be 1 or 2."); + $this->assertArrayHasKey('test_string', $row, "Case should be lowered."); + $this->assertEquals(3, strlen($row['test_string']), "test_string should be rtrimed to length of three for CHAR(32) column."); + $this->assertNull($row['test_null']); + } +}