X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/f45b3fa3f243de8894c03d8c9377157d01092c8c..e8caf8d78d046008b7a951f6b1ba5d015dafb6bc:/test/php/Nominatim/TokenListTest.php?ds=sidebyside diff --git a/test/php/Nominatim/TokenListTest.php b/test/php/Nominatim/TokenListTest.php index fa1331e8..14a595ea 100644 --- a/test/php/Nominatim/TokenListTest.php +++ b/test/php/Nominatim/TokenListTest.php @@ -2,14 +2,12 @@ namespace Nominatim; -require_once(CONST_BasePath.'/lib/db.php'); -require_once(CONST_BasePath.'/lib/cmd.php'); -require_once(CONST_BasePath.'/lib/TokenList.php'); +require_once(CONST_LibDir.'/TokenList.php'); class TokenTest extends \PHPUnit\Framework\TestCase { - protected function setUp() + protected function setUp(): void { $this->oNormalizer = $this->getMockBuilder(\MockNormalizer::class) ->setMethods(array('transliterate')) @@ -56,9 +54,18 @@ class TokenTest extends \PHPUnit\Framework\TestCase { $this->expectOutputRegex('/

/'); - $oDbStub = $this->getMockBuilder(\DB::class) - ->setMethods(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(); @@ -70,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, @@ -109,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')); } }