SearchServiceTest.php: add basic testign for the SearchService
This commit is contained in:
parent
99de3f875e
commit
72f0eff37b
1 changed files with 64 additions and 0 deletions
64
tests/SearchServiceTest.php
Normal file
64
tests/SearchServiceTest.php
Normal file
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use PHPUnit\Framework;
|
||||
use Vichan\Data\Driver\{LogDriver, StderrLogDriver};
|
||||
use Vichan\Data\UserPostQueries;
|
||||
use Vichan\Service\SearchService;
|
||||
|
||||
|
||||
class SearchServiceTest extends TestCase {
|
||||
public function testBasicSearch(): void {
|
||||
$srv = new SearchService(
|
||||
$this->createMock(LogDriver::class),
|
||||
$this->createMock(UserPostQueries::class),
|
||||
null,
|
||||
100,
|
||||
250,
|
||||
100,
|
||||
);
|
||||
|
||||
$filters = $srv->parse("free world all large board:kino board:\"poly\" name:coolie maybe subject:\"subj\" flag:\"pirate\" id:76 thread:8 but not so much");
|
||||
Framework\assertTrue($filters->body === [ 'free world all large', 'maybe', 'but not so much' ]);
|
||||
Framework\assertTrue($filters->subject === 'subj');
|
||||
Framework\assertTrue($filters->name === 'coolie');
|
||||
Framework\assertTrue($filters->flag === 'pirate');
|
||||
Framework\assertTrue($filters->id === 76);
|
||||
Framework\assertTrue($filters->thread === 8);
|
||||
}
|
||||
|
||||
public function testWeight() {
|
||||
$user_queries = $this->createMock(UserPostQueries::class);
|
||||
$user_queries->method('escapeSearchPosts')
|
||||
->willReturnMap([
|
||||
[ 'abcd', 'abcd' ],
|
||||
[ 'abc', 'abc' ],
|
||||
[ 'a*cd', 'a\\*cd' ],
|
||||
[ 'a*c', 'a\\*c' ],
|
||||
]);
|
||||
|
||||
$srv = new SearchService(
|
||||
new StderrLogDriver('test', LogDriver::DEBUG),
|
||||
$user_queries,
|
||||
null,
|
||||
100,
|
||||
250,
|
||||
100,
|
||||
);
|
||||
|
||||
$f = $srv->parse('abcd');
|
||||
$no_wildcards = $srv->reduceAndWeight($f)->weight;
|
||||
|
||||
$f = $srv->parse('abc*');
|
||||
$end_wildcard = $srv->reduceAndWeight($f)->weight;
|
||||
|
||||
$f = $srv->parse('a*cd');
|
||||
$middle_wildcard = $srv->reduceAndWeight($f)->weight;
|
||||
|
||||
$f = $srv->parse('a*c*');
|
||||
$wildcards = $srv->reduceAndWeight($f)->weight;
|
||||
|
||||
Framework\assertTrue($no_wildcards < $end_wildcard);
|
||||
Framework\assertTrue($end_wildcard < $middle_wildcard);
|
||||
Framework\assertTrue($middle_wildcard < $wildcards);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue