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
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';
$oDB->exec('CREATE DATABASE ' . $sDbname);
}
- $oDB = new \Nominatim\DB(getenv('UNIT_TEST_DSN'));
+ $oDB = new \Nominatim\DB($unit_test_dsn);
$oDB->connect();
$this->assertTrue(
# 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