X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/a5d35d6e84d5de5f6ae98d09a7863cf50a84f586..e8caf8d78d046008b7a951f6b1ba5d015dafb6bc:/test/php/Nominatim/TokenListTest.php diff --git a/test/php/Nominatim/TokenListTest.php b/test/php/Nominatim/TokenListTest.php index ad91dff1..14a595ea 100644 --- a/test/php/Nominatim/TokenListTest.php +++ b/test/php/Nominatim/TokenListTest.php @@ -2,17 +2,16 @@ namespace Nominatim; -@define('CONST_BasePath', '../../'); +require_once(CONST_LibDir.'/TokenList.php'); -require_once '../../lib/db.php'; -require_once '../../lib/cmd.php'; -require_once '../../lib/TokenList.php'; class TokenTest extends \PHPUnit\Framework\TestCase { - protected function setUp() + protected function setUp(): void { - $this->oNormalizer = $this->getMock(\MockNormalizer::class, array('transliterate')); + $this->oNormalizer = $this->getMockBuilder(\MockNormalizer::class) + ->setMethods(array('transliterate')) + ->getMock(); $this->oNormalizer->method('transliterate') ->will($this->returnCallback(function ($text) { return strtolower($text); @@ -55,7 +54,18 @@ class TokenTest extends \PHPUnit\Framework\TestCase { $this->expectOutputRegex('/
/'); - $oDbStub = $this->getMock(\DB::class, array('getAll')); + $oDbStub = $this->getMockBuilder(Nominatim\DB::class) + ->setMethods(array('getAll', 'getDBQuotedList')) + ->getMock(); + + $oDbStub->method('getDBQuotedList') + ->will($this->returnCallback(function ($aVals) { + return array_map(function ($sVal) { + return "'".$sVal."'"; + }, $aVals); + })); + + $oDbStub->method('getAll') ->will($this->returnCallback(function ($sql) { $aResults = array(); @@ -67,6 +77,15 @@ class TokenTest extends \PHPUnit\Framework\TestCase 'type' => 'house' )); } + if (preg_match('/hauptstr/', $sql)) { + $aResults[] = $this->wordResult(array( + 'word_id' => 999, + 'word_token' => 'hauptstr', + 'class' => 'place', + 'type' => 'street', + 'operator' => true + )); + } if (preg_match('/64286/', $sql)) { $aResults[] = $this->wordResult(array( 'word_id' => 999, @@ -106,11 +125,12 @@ class TokenTest extends \PHPUnit\Framework\TestCase $TL = new TokenList; $TL->addTokensFromDB($oDbStub, $aTokens, $aCountryCodes, $sNormQuery, $this->oNormalizer); - $this->assertEquals(4, $TL->count()); + $this->assertEquals(5, $TL->count()); $this->assertEquals(array(new Token\HouseNumber(999, '1051')), $TL->get('1051')); $this->assertEquals(array(new Token\Country(999, 'de')), $TL->get('alemagne')); $this->assertEquals(array(new Token\Postcode(999, '64286')), $TL->get('64286')); - $this->assertEquals(array(new Token\Word(999, true, 533)), $TL->get('darmstadt')); + $this->assertEquals(array(new Token\Word(999, true, 533, 0)), $TL->get('darmstadt')); + $this->assertEquals(array(new Token\SpecialTerm(999, 'place', 'street', true)), $TL->get('hauptstr')); } }