<?php
+/**
+ * SPDX-License-Identifier: GPL-2.0-only
+ *
+ * This file is part of Nominatim. (https://nominatim.org)
+ *
+ * Copyright (C) 2022 by the Nominatim developer community.
+ * For a full list of authors see the git log.
+ */
namespace Nominatim;
-require_once(CONST_BasePath.'/lib/init-website.php');
-require_once(CONST_BasePath.'/lib/DatabaseError.php');
+require_once(CONST_LibDir.'/init-website.php');
+require_once(CONST_LibDir.'/DatabaseError.php');
class DatabaseErrorTest extends \PHPUnit\Framework\TestCase
{
public function testSqlMessage()
{
- $oSqlStub = $this->getMockBuilder(\DB_Error::class)
+ $oSqlStub = $this->getMockBuilder(PDOException::class)
->setMethods(array('getMessage'))
->getMock();
$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'));
+ $this->assertStringContainsString('two', $oErr->getSqlDebugDump());
}
}