]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/php/Nominatim/DBTest.php
add tests for migration
[nominatim.git] / test / php / Nominatim / DBTest.php
index e47919758a449175683fa5721d3ab75d1ec7fa38..1a2ecc861fe0ea68d15cb33a176692b5e1a37838 100644 (file)
@@ -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