set exception handler by request format, not always HTML

This commit is contained in:
marc tobias
2018-09-16 17:16:42 +02:00
committed by Marc Tobias Metten
parent 2467e9996e
commit e4a51e460e
20 changed files with 247 additions and 80 deletions

View File

@@ -0,0 +1,44 @@
<?php
namespace Nominatim;
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/DatabaseError.php');
class DatabaseErrorTest extends \PHPUnit\Framework\TestCase
{
public function testSqlMessage()
{
$oSqlStub = $this->getMockBuilder(\DB_Error::class)
->setMethods(array('getMessage'))
->getMock();
$oSqlStub->method('getMessage')
->willReturn('Unknown table.');
$oErr = new DatabaseError('Sql error', 123, null, $oSqlStub);
$this->assertEquals('Sql error', $oErr->getMessage());
$this->assertEquals(123, $oErr->getCode());
$this->assertEquals('Unknown table.', $oErr->getSqlError());
// causes a circular reference warning during dump
// $this->assertRegExp('/Mock_DB_Error/', $oErr->getSqlDebugDump());
}
public function testSqlObjectDump()
{
$oErr = new DatabaseError('Sql error', 123, null, array('one' => 'two'));
$this->assertRegExp('/two/', $oErr->getSqlDebugDump());
}
public function testChksqlThrows()
{
$this->expectException(DatabaseError::class);
$this->expectExceptionMessage('My custom error message');
$this->expectExceptionCode(500);
$oDB = new \DB_Error;
$this->assertEquals(false, chksql($oDB, 'My custom error message'));
}
}