/** * @param State $state * @param Logger $logger * * @throws RuntimeException * @throws MarkupException */ public function run(State $state, Logger $logger) { $this->initDependencies(); $this->initFunctions($state->config); $exportDir = $state->config->getExportDir(); if (!is_dir($exportDir)) { $logger->log(0, 'skip parsing docs (no documentation files found)'); return; } $cacheDir = $state->config->getCacheDir(); $cacheNote = $cacheDir ? 'cache at ' . $cacheDir : 'cache disabled'; $logger->log(0, sprintf('parse documentation (%s)', $cacheNote)); $files = $this->markupParser->parse($state->config->getExportDir(), $state->config->getCacheDir()); foreach ($files as $file) { $this->replaceMarkupsInFile($file, $state, $logger); } }
/** * @param string $content * @param FileContext $expected * * @return FileContext[] */ private function assertParsed($content, FileContext $expected) { $file = $this->createMock(\SplFileInfo::class); $file->expects(self::any())->method('getRealPath')->willReturn($this->fakeFileName); $this->filesystem->expects(self::any())->method('getFilesOfDirs')->willReturn([$file]); $this->filesystem->expects(self::any())->method('readFile')->willReturn($content); $this->filesystem->expects(self::any())->method('getFileHash')->willReturn($this->fakeFileHash); $parsed = $this->parser->parse('dir'); self::assertEquals([$this->fakeFileHash => $expected], $parsed); }