X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/38c21de0ee17bb0eacd6cc8f0e1ed71cbee0b0c9..dc700c25b66c9885acc719f7ec9761f52b586c20:/test/php/Nominatim/DBTest.php diff --git a/test/php/Nominatim/DBTest.php b/test/php/Nominatim/DBTest.php index e4791975..1a2ecc86 100644 --- a/test/php/Nominatim/DBTest.php +++ b/test/php/Nominatim/DBTest.php @@ -2,8 +2,8 @@ namespace Nominatim; -require_once(CONST_BasePath.'/lib/lib.php'); -require_once(CONST_BasePath.'/lib/DB.php'); +require_once(CONST_LibDir.'/lib.php'); +require_once(CONST_LibDir.'/DB.php'); // subclassing so we can set the protected connection variable class NominatimSubClassedDB extends \Nominatim\DB @@ -128,11 +128,19 @@ class DBTest extends \PHPUnit\Framework\TestCase public function testAgainstDatabase() { - if (getenv('UNIT_TEST_DSN') == false) $this->markTestSkipped('UNIT_TEST_DSN not set'); + $unit_test_dsn = getenv('UNIT_TEST_DSN') != false ? + getenv('UNIT_TEST_DSN') : + 'pgsql:dbname=nominatim_unit_tests'; + + $this->assertRegExp( + '/unit_test/', + $unit_test_dsn, + 'Test database will get destroyed, thus should have a name like unit_test to be safe' + ); ## Create the database. { - $aDSNParsed = \Nominatim\DB::parseDSN(getenv('UNIT_TEST_DSN')); + $aDSNParsed = \Nominatim\DB::parseDSN($unit_test_dsn); $sDbname = $aDSNParsed['database']; $aDSNParsed['database'] = 'postgres'; @@ -142,7 +150,7 @@ class DBTest extends \PHPUnit\Framework\TestCase $oDB->exec('CREATE DATABASE ' . $sDbname); } - $oDB = new \Nominatim\DB(getenv('UNIT_TEST_DSN')); + $oDB = new \Nominatim\DB($unit_test_dsn); $oDB->connect(); $this->assertTrue( @@ -151,31 +159,11 @@ class DBTest extends \PHPUnit\Framework\TestCase # Tables, Indices { - $this->assertEmpty($oDB->getListOfTables()); $oDB->exec('CREATE TABLE table1 (id integer, city varchar, country varchar)'); - $oDB->exec('CREATE TABLE table2 (id integer, city varchar, country varchar)'); - $this->assertEquals( - array('table1', 'table2'), - $oDB->getListOfTables() - ); - $this->assertTrue($oDB->deleteTable('table2')); - $this->assertTrue($oDB->deleteTable('table99')); - $this->assertEquals( - array('table1'), - $oDB->getListOfTables() - ); $this->assertTrue($oDB->tableExists('table1')); $this->assertFalse($oDB->tableExists('table99')); $this->assertFalse($oDB->tableExists(null)); - - $this->assertEmpty($oDB->getListOfIndices()); - $oDB->exec('CREATE UNIQUE INDEX table1_index ON table1 (id)'); - $this->assertEquals( - array('table1_index'), - $oDB->getListOfIndices() - ); - $this->assertEmpty($oDB->getListOfIndices('table2')); } # select queries