namespace Nominatim;
+require_once(CONST_BasePath.'/lib/DB.php');
require_once(CONST_BasePath.'/lib/Status.php');
public function testNoDatabaseConnectionFail()
{
$this->expectException(\Exception::class);
- $this->expectExceptionMessage('No database');
+ $this->expectExceptionMessage('Database connection failed');
$this->expectExceptionCode(700);
- // causes 'Non-static method should not be called statically, assuming $this from incompatible context'
- // failure on travis
- // $oDB = \DB::connect('', false); // returns a DB_Error instance
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect'))
+ ->getMock();
- $oDB = new \DB_Error;
- $oStatus = new Status($oDB);
- $this->assertEquals('No database', $oStatus->status());
+ $oDbStub->method('connect')
+ ->will($this->returnCallback(function () {
+ throw new \Nominatim\DatabaseError('psql connection problem', 500, null, 'unknown database');
+ }));
- $oDB = null;
- $oStatus = new Status($oDB);
+
+ $oStatus = new Status($oDbStub);
$this->assertEquals('No database', $oStatus->status());
}
$this->expectExceptionCode(702);
// stub has getOne method but doesn't return anything
- $oDbStub = $this->getMockBuilder(\DB::class)
- ->setMethods(array('getOne'))
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect', 'getOne'))
->getMock();
$oStatus = new Status($oDbStub);
$this->expectExceptionMessage('No value');
$this->expectExceptionCode(704);
- $oDbStub = $this->getMockBuilder(\DB::class)
- ->setMethods(array('getOne'))
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect', 'getOne'))
->getMock();
// return no word_id
public function testOK()
{
- $oDbStub = $this->getMockBuilder(\DB::class)
- ->setMethods(array('getOne'))
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect', 'getOne'))
->getMock();
$oDbStub->method('getOne')
public function testDataDate()
{
- $oDbStub = $this->getMockBuilder(\DB::class)
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
->setMethods(array('getOne'))
->getMock();