/** * tests running the generation of a diff * * @group generator * @group sourcetest */ public function testRun() { $mock = $this->getMock('\\Monolog\\Logger', array(), array(), '', false); self::assertSame($this->object, $this->object->setLogger($mock)); $tmpfile = tempnam(sys_get_temp_dir(), 'browscaptest'); $in = <<<HERE ; comment [test] test=test HERE; file_put_contents($tmpfile, $in); self::assertNull($this->object->run($tmpfile, $tmpfile)); unlink($tmpfile); }
/** * Executes the current command. * * This method is not abstract because you can use this class * as a concrete class. In this case, instead of defining the * execute() method, you set the code to execute by passing * a Closure to the setCode() method. * * @param InputInterface $input An InputInterface instance * @param OutputInterface $output An OutputInterface instance * * @throws \LogicException When this abstract method is not implemented * @return null|int null or 0 if everything went fine, or an error code * * @see setCode() */ protected function execute(InputInterface $input, OutputInterface $output) { $leftFilename = $input->getArgument('left'); $rightFilename = $input->getArgument('right'); $debug = $input->getOption('debug'); $loggerHelper = new LoggerHelper(); $logger = $loggerHelper->create($debug); if (!$rightFilename || !file_exists($rightFilename)) { $logger->info('right file not set or invalid - creating right file from resources'); $cacheDir = sys_get_temp_dir() . '/browscap-diff/' . microtime(true) . '/'; $rightFilename = $cacheDir . 'full_php_browscap.ini'; if (!file_exists($cacheDir)) { mkdir($cacheDir, 0777, true); } $buildGenerator = new BuildGenerator($input->getOption('resources'), $cacheDir); $writerCollectionFactory = new FullPhpWriterFactory(); $writerCollection = $writerCollectionFactory->createCollection($logger, $cacheDir); $buildGenerator->setLogger($logger)->setCollectionCreator(new CollectionCreator())->setWriterCollection($writerCollection); $buildGenerator->run($input->getArgument('version'), false); } $generator = new DiffGenerator(); $generator->setLogger($logger)->run($leftFilename, $rightFilename); $logger->info('Diff done.'); }