diff --git a/library/Icinga/Test/BaseTestCase.php b/library/Icinga/Test/BaseTestCase.php index 9d104c749..d58adbe26 100644 --- a/library/Icinga/Test/BaseTestCase.php +++ b/library/Icinga/Test/BaseTestCase.php @@ -23,13 +23,10 @@ namespace Icinga\Test { use \Exception; use \RuntimeException; - use \Zend_Test_PHPUnit_ControllerTestCase; use \Zend_Config; - use \Zend_Db_Adapter_Pdo_Abstract; - use \Zend_Db_Adapter_Pdo_Mysql; - use \Zend_Db_Adapter_Pdo_Pgsql; - use \Zend_Db_Adapter_Pdo_Oci; + use \Zend_Test_PHPUnit_ControllerTestCase; use Icinga\Data\ResourceFactory; + use Icinga\Data\Db\Connection; use Icinga\User\Preferences; use Icinga\Web\Form; @@ -167,65 +164,64 @@ namespace Icinga\Test { } /** - * Creates an array of Zend Database Adapter + * Creates an array of Icinga\Data\Db\Connection * * @param string $name * * @return array */ - private function createDbAdapterFor($name) + private function createDbConnectionFor($name) { try { - $adapter = ResourceFactory::createResource($this->createDbConfigFor($name))->getConnection(); + $conn = ResourceFactory::createResource($this->createDbConfigFor($name)); } catch (Exception $e) { - $adapter = $e->getMessage(); + $conn = $e->getMessage(); } return array( - array($adapter) + array($conn) ); } /** * PHPUnit provider for mysql * - * @return Zend_Db_Adapter_Pdo_Mysql + * @return Connection */ public function mysqlDb() { - return $this->createDbAdapterFor('mysql'); + return $this->createDbConnectionFor('mysql'); } /** * PHPUnit provider for pgsql * - * @return Zend_Db_Adapter_Pdo_Pgsql + * @return Connection */ public function pgsqlDb() { - return $this->createDbAdapterFor('pgsql'); + return $this->createDbConnectionFor('pgsql'); } /** * PHPUnit provider for oracle * - * @return Zend_Db_Adapter_Pdo_Oci + * @return Connection */ public function oracleDb() { - return $this->createDbAdapterFor('oracle'); + return $this->createDbConnectionFor('oracle'); } /** - * Executes sql file on PDO object + * Executes sql file by using the database connection * - * @param Zend_Db_Adapter_Pdo_Abstract $resource - * @param string $filename + * @param Connection $resource + * @param string $filename * - * @return boolean Operational success flag * @throws RuntimeException */ - public function loadSql(Zend_Db_Adapter_Pdo_Abstract $resource, $filename) + public function loadSql(Connection $resource, $filename) { if (!is_file($filename)) { throw new RuntimeException( @@ -241,17 +237,17 @@ namespace Icinga\Test { ); } - $resource->exec($sqlData); + $resource->getConnection()->exec($sqlData); } /** * Setup provider for testcase * - * @param string|Zend_Db_Adapter_PDO_Abstract|null $resource + * @param string|Connection|null $resource */ public function setupDbProvider($resource) { - if (!$resource instanceof Zend_Db_Adapter_Pdo_Abstract) { + if (!$resource instanceof Connection) { if (is_string($resource)) { $this->markTestSkipped('Could not initialize provider: ' . $resource); } else { @@ -260,15 +256,17 @@ namespace Icinga\Test { return; } + $adapter = $resource->getConnection(); + try { - $resource->getConnection(); + $adapter->getConnection(); } catch (Exception $e) { $this->markTestSkipped('Could not connect to provider: '. $e->getMessage()); } - $tables = $resource->listTables(); + $tables = $adapter->listTables(); foreach ($tables as $table) { - $resource->exec('DROP TABLE ' . $table . ';'); + $adapter->exec('DROP TABLE ' . $table . ';'); } } diff --git a/library/Icinga/Test/DbTest.php b/library/Icinga/Test/DbTest.php index ef385d9da..12cea240c 100644 --- a/library/Icinga/Test/DbTest.php +++ b/library/Icinga/Test/DbTest.php @@ -29,48 +29,45 @@ namespace Icinga\Test; -use \Zend_Db_Adapter_Pdo_Abstract; -use \Zend_Db_Adapter_Pdo_Mysql; -use \Zend_Db_Adapter_Pdo_Pgsql; -use \Zend_Db_Adapter_Pdo_Oci; +use Icinga\Data\Db\Connection; interface DbTest { /** * PHPUnit provider for mysql * - * @return Zend_Db_Adapter_Pdo_Mysql + * @return Connection */ public function mysqlDb(); /** * PHPUnit provider for pgsql * - * @return Zend_Db_Adapter_Pdo_Pgsql + * @return Connection */ public function pgsqlDb(); /** * PHPUnit provider for oracle * - * @return Zend_Db_Adapter_Pdo_Oci + * @return Connection */ public function oracleDb(); /** * Executes sql file on PDO object * - * @param Zend_Db_Adapter_PDO_Abstract $resource - * @param string $filename + * @param Connection $resource + * @param string $filename * * @return boolean Operational success flag */ - public function loadSql(Zend_Db_Adapter_PDO_Abstract $resource, $filename); + public function loadSql(Connection $resource, $filename); /** * Setup provider for testcase * - * @param string|Zend_Db_Adapter_PDO_Abstract|null $resource + * @param string|Connection|null $resource */ public function setupDbProvider($resource); } diff --git a/test/php/library/Icinga/Authentication/DbUserBackendTest.php b/test/php/library/Icinga/Authentication/DbUserBackendTest.php index bcfced590..6b59a6128 100644 --- a/test/php/library/Icinga/Authentication/DbUserBackendTest.php +++ b/test/php/library/Icinga/Authentication/DbUserBackendTest.php @@ -5,9 +5,9 @@ namespace Tests\Icinga\Authentication; use \PDO; -use \Zend_Db_Adapter_Pdo_Abstract; use \Zend_Config; use Icinga\Test\BaseTestCase; +use Icinga\Data\Db\Connection; use Icinga\Authentication\Backend\DbUserBackend; /** @@ -56,7 +56,7 @@ class DbUserBackendTest extends BaseTestCase ) ); - private function createDbBackendConfig($resource, $name = null) + private function createDbConnection($resource, $name = null) { if ($name === null) { $name = 'TestDbUserBackend-' . uniqid(); @@ -77,11 +77,10 @@ class DbUserBackendTest extends BaseTestCase * * @dataProvider pgsqlDb */ - public function testCorrectUserLoginForPgsql($db) + public function testCorrectUserLoginForPgsql($resource) { - $this->setupDbProvider($db); - $backend = new DbUserBackend($this->createDbBackendConfig($db)); - $backend->connect(); + $this->setupDbProvider($resource); + $backend = new DbUserBackend($resource); $this->runBackendAuthentication($backend); $this->runBackendUsername($backend); } @@ -91,23 +90,23 @@ class DbUserBackendTest extends BaseTestCase * * @dataProvider mysqlDb */ - public function testCorrectUserLoginForMySQL($db) + public function testCorrectUserLoginForMySQL($resource) { - $this->setupDbProvider($db); - $backend = new DbUserBackend($this->createDbBackendConfig($db)); - $backend->connect(); + $this->setupDbProvider($resource); + $backend = new DbUserBackend($resource); $this->runBackendAuthentication($backend); $this->runBackendUsername($backend); } /** - * @param Zend_Db_Adapter_Pdo_Abstract $resource + * @param Connection $resource */ public function setupDbProvider($resource) { parent::setupDbProvider($resource); - $type = $resource->getConnection()->getAttribute(PDO::ATTR_DRIVER_NAME); + $adapter = $resource->getConnection(); + $type = $adapter->getConnection()->getAttribute(PDO::ATTR_DRIVER_NAME); $dumpFile = BaseTestCase::$etcDir . '/schema/accounts.' . $type . '.sql'; @@ -127,7 +126,7 @@ class DbUserBackendTest extends BaseTestCase self::ACTIVE_COLUMN => $usr[self::ACTIVE_COLUMN], self::SALT_COLUMN => $usr[self::SALT_COLUMN] ); - $resource->insert($this->testTable, $data); + $adapter->insert($this->testTable, $data); } } @@ -229,39 +228,22 @@ class DbUserBackendTest extends BaseTestCase /** * @dataProvider mysqlDb */ - public function testBackendNameAssignment($db) + public function testCountUsersMySql($resource) { - $this->setupDbProvider($db); + $this->setupDbProvider($resource); + $backend = new DbUserBackend($resource); - $testName = 'test-name-123123'; - $backend = new DbUserBackend($this->createDbBackendConfig($db, $testName)); - $backend->connect(); - $this->assertSame($testName, $backend->getName()); - } - - /** - * @dataProvider mysqlDb - */ - public function testCountUsersMySql($db) - { - $this->setupDbProvider($db); - $testName = 'test-name-123123'; - $backend = new DbUserBackend($this->createDbBackendConfig($db, $testName)); - $backend->connect(); - - $this->assertGreaterThan(0, $backend->getUserCount()); + $this->assertGreaterThan(0, $backend->count()); } /** * @dataProvider pgsqlDb */ - public function testCountUsersPgSql($db) + public function testCountUsersPgSql($resource) { - $this->setupDbProvider($db); - $testName = 'test-name-123123'; - $backend = new DbUserBackend($this->createDbBackendConfig($db, $testName)); - $backend->connect(); + $this->setupDbProvider($resource); + $backend = new DbUserBackend($resource); - $this->assertGreaterThan(0, $backend->getUserCount()); + $this->assertGreaterThan(0, $backend->count()); } } diff --git a/test/php/library/Icinga/Test/BaseTestCaseDbTest.php b/test/php/library/Icinga/Test/BaseTestCaseDbTest.php index 1900550c6..df4dc6978 100644 --- a/test/php/library/Icinga/Test/BaseTestCaseDbTest.php +++ b/test/php/library/Icinga/Test/BaseTestCaseDbTest.php @@ -23,7 +23,7 @@ class BaseTestCaseDbTest extends BaseTestCase public function testMySqlProviderAnnotation($resource) { $this->setupDbProvider($resource); - $this->assertInstanceOf('Zend_Db_Adapter_Pdo_Mysql', $resource); + $this->assertInstanceOf('Zend_Db_Adapter_Pdo_Mysql', $resource->getConnection()); } /** @@ -32,9 +32,10 @@ class BaseTestCaseDbTest extends BaseTestCase public function testMySqlCreateTablePart1($resource) { $this->setupDbProvider($resource); - $resource->exec('CREATE TABLE test(uid INT NOT NULL PRIMARY KEY);'); + $adapter = $resource->getConnection(); + $adapter->exec('CREATE TABLE test(uid INT NOT NULL PRIMARY KEY);'); - $tables = $resource->listTables(); + $tables = $adapter->listTables(); $this->assertCount(1, $tables); } @@ -44,13 +45,12 @@ class BaseTestCaseDbTest extends BaseTestCase public function testMySqlCreateTablePart2($resource) { $this->setupDbProvider($resource); - $tables = $resource->listTables(); + $tables = $resource->getConnection()->listTables(); $this->assertCount(0, $tables); } private function dbAdapterSqlLoadTable($resource) { - /** @var $resource \Zend_Db_Adapter_Pdo_Abstract **/ $this->setupDbProvider($resource); $sqlContent = array(); @@ -64,7 +64,7 @@ class BaseTestCaseDbTest extends BaseTestCase $this->loadSql($resource, $tempFile); - $count = (int)$resource->fetchOne('SELECT COUNT(*) as cntX from dummyData;'); + $count = (int) $resource->getConnection()->fetchOne('SELECT COUNT(*) as cntX from dummyData;'); $this->assertSame(20, $count); $this->assertTrue(unlink($tempFile)); @@ -84,7 +84,7 @@ class BaseTestCaseDbTest extends BaseTestCase public function testPgSqlProviderAnnotation($resource) { $this->setupDbProvider($resource); - $this->assertInstanceOf('Zend_Db_Adapter_Pdo_Pgsql', $resource); + $this->assertInstanceOf('Zend_Db_Adapter_Pdo_Pgsql', $resource->getConnection()); } /** @@ -93,10 +93,10 @@ class BaseTestCaseDbTest extends BaseTestCase public function testPgSqlCreateTablePart1($resource) { $this->setupDbProvider($resource); - /** @var \Zend_Db_Adapter_Pdo_Abstract $resource **/ - $resource->exec('CREATE TABLE test(uid INT NOT NULL PRIMARY KEY);'); + $adapter = $resource->getConnection(); + $adapter->exec('CREATE TABLE test(uid INT NOT NULL PRIMARY KEY);'); - $tables = $resource->listTables(); + $tables = $adapter->listTables(); $this->assertCount(1, $tables); } @@ -106,7 +106,7 @@ class BaseTestCaseDbTest extends BaseTestCase public function testPgSqlCreateTablePart2($resource) { $this->setupDbProvider($resource); - $tables = $resource->listTables(); + $tables = $resource->getConnection()->listTables(); $this->assertCount(0, $tables); }