getMock(Structure::class); $queryVisitorFactory = function () use ($structure) { return new QueryVisitor($structure); }; $thesaurus = $this->getMockBuilder(Thesaurus::class) ->disableOriginalConstructor() ->getMock(); $this->compiler = new QueryCompiler($parser, $queryVisitorFactory, $thesaurus); } /** * @dataProvider queryProvider */ public function testQueryParsing($query, $expected) { $this->assertEquals($expected, $this->compiler->parse($query)->dump()); } public function queryProvider() { return new CsvFileIterator(sprintf('%s/resources/queries.csv', __DIR__), '|', '\''); } }