Fixup DI of QueryCompiler.

As compiler was not using structure on its own, extract it and replace instantiation by a factory.
This commit is contained in:
Benoît Burnichon
2015-11-16 13:08:32 +01:00
parent 3b2d6b05a0
commit 88427efa4c
4 changed files with 22 additions and 9 deletions

View File

@@ -3,6 +3,8 @@
namespace Alchemy\Tests\Phrasea\SearchEngine;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryCompiler;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryVisitor;
use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Structure;
use Alchemy\Phrasea\SearchEngine\Elastic\Thesaurus;
use Alchemy\Tests\Tools\CsvFileIterator;
use Hoa\Compiler;
@@ -23,11 +25,17 @@ class QueryCompilerTest extends \PHPUnit_Framework_TestCase
$grammar_path = realpath(implode('/', [__DIR__, $project_root, $grammar_path]));
$parser = Compiler\Llk\Llk::load(new File\Read($grammar_path));
$structure = $this->getMock(Structure::class);
$queryVisitorFactory = function () use ($structure) {
return new QueryVisitor($structure);
};
$thesaurus = $this->getMockBuilder(Thesaurus::class)
->disableOriginalConstructor()
->getMock();
$this->compiler = new QueryCompiler($parser, $thesaurus);
$this->compiler = new QueryCompiler($parser, $queryVisitorFactory, $thesaurus);
}
/**