namespace Nominatim;
-require_once('../../lib/Status.php');
-require_once('DB.php');
+require_once(CONST_LibDir.'/DB.php');
+require_once(CONST_LibDir.'/Status.php');
-use Exception;
class StatusTest extends \PHPUnit\Framework\TestCase
{
-
public function testNoDatabaseGiven()
{
- $this->setExpectedException(Exception::class, 'No database', 700);
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage('No database');
+ $this->expectExceptionCode(700);
$oDB = null;
$oStatus = new Status($oDB);
public function testNoDatabaseConnectionFail()
{
- $this->setExpectedException(Exception::class, 'No database', 700);
+ $this->expectException(\Exception::class);
+ $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());
}
public function testModuleFail()
{
- $this->setExpectedException(Exception::class, 'Module call failed', 702);
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage('Module call failed');
+ $this->expectExceptionCode(702);
// stub has getOne method but doesn't return anything
- $oDbStub = $this->getMock(\DB::class, array('getOne'));
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect', 'getOne'))
+ ->getMock();
$oStatus = new Status($oDbStub);
$this->assertNull($oStatus->status());
public function testWordIdQueryFail()
{
- $this->setExpectedException(Exception::class, 'No value', 704);
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage('No value');
+ $this->expectExceptionCode(704);
- $oDbStub = $this->getMock(\DB::class, array('getOne'));
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect', 'getOne'))
+ ->getMock();
// return no word_id
$oDbStub->method('getOne')
public function testOK()
{
- $oDbStub = $this->getMock(\DB::class, array('getOne'));
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect', 'getOne'))
+ ->getMock();
$oDbStub->method('getOne')
->will($this->returnCallback(function ($sql) {
public function testDataDate()
{
- $oDbStub = $this->getMock(\DB::class, array('getOne'));
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('getOne'))
+ ->getMock();
$oDbStub->method('getOne')
->willReturn(1519430221);