/**
  * Prepares test environment.
  */
 public function setUp()
 {
     $finder = new Finder();
     $finder->files()->in(__DIR__ . '/config/');
     $finder->name('*.yml');
     $this->dummyParser = $this->getMock('Symfony\\Component\\Yaml\\Parser');
     $this->dummyDumper = $this->getMock('Symfony\\Component\\Yaml\\Dumper');
     $this->dummyFilesystem = $this->getMock('Symfony\\Component\\Filesystem\\Filesystem');
     $dummyDispatcher = $this->getMock('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface');
     $dummyDispatcher->expects($this->once())->method('dispatch')->willReturnCallback(function ($name, $event) {
         /** @var GroupOptionTypeEvent $event */
         $optionTypes = ['acp' => ['twomartens.core' => ['access' => new BooleanOptionType()]]];
         $event->addOptions($optionTypes);
     });
     $this->yamlData = [];
     $this->optionData = [];
     foreach ($finder as $file) {
         /** @var SplFileInfo $file */
         $basename = $file->getBasename('.yml');
         $this->yamlData[$basename] = Yaml::parse($file->getContents());
         $this->optionData[$basename] = ConfigUtil::convertToOptions($this->yamlData[$basename]);
     }
     $this->dummyParser->expects($this->any())->method('parse')->willReturnCallback(function ($content) {
         return Yaml::parse($content);
     });
     /** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $dummyDispatcher */
     $this->groupService = new GroupService($finder, $this->dummyParser, $this->dummyDumper, $this->dummyFilesystem, $dummyDispatcher);
 }
 /**
  * Sets the test environment up.
  */
 public function setUp()
 {
     $finder = new Finder();
     $finder->files()->in(__DIR__ . '/config/');
     $finder->name('config.yml');
     $this->dummyParser = $this->getMock('Symfony\\Component\\Yaml\\Parser');
     $this->dummyDumper = $this->getMock('Symfony\\Component\\Yaml\\Dumper');
     $this->dummyFilesystem = $this->getMock('Symfony\\Component\\Filesystem\\Filesystem');
     foreach ($finder as $file) {
         /** @var SplFileInfo $file */
         $this->yamlData = Yaml::parse($file->getContents());
         $this->optionData = ConfigUtil::convertToOptions($this->yamlData);
         $this->dummyParser->expects($this->once())->method('parse')->willReturn($this->yamlData);
         $this->dummyDumper->expects($this->any())->method('dump')->willReturn($file->getContents());
         $this->dummyFilesystem->expects($this->any())->method('dumpFile')->with($file->getRealPath(), $file->getContents());
     }
     $this->optionService = new OptionService($finder, $this->dummyParser, $this->dummyDumper, $this->dummyFilesystem);
 }
 /**
  * Tests the convertToOptions method.
  */
 public function testConvertToOptions()
 {
     $path = __DIR__ . '/config/config.yml';
     $contents = file_get_contents($path);
     $yamlProcessed = Yaml::parse($contents);
     $output = ConfigUtil::convertToOptions($yamlProcessed);
     $expectedOutput = new OptionCategory();
     // imports category
     $importsCategory = new OptionCategory('imports');
     $subOptions = [new Option(0, 'resource', 'string', 'parameters.yml'), new Option(0, 'resource', 'string', 'security.yml'), new Option(0, 'resource', 'string', '@TwoMartensCoreBundle/Resources/config/services.yml')];
     $importsCategory->setOptions($subOptions);
     // test category
     $testCategory = new OptionCategory('test');
     $subOptions = [new Option(0, 'jacob', 'null', null), new Option(0, 'hans', 'array', ['achim', 'jacob', 'manfred'])];
     $testCategory->setOptions($subOptions);
     $manfredCategory = new OptionCategory('michael');
     $subOptions = [new Option(0, 'security', 'boolean', true)];
     $manfredCategory->setOptions($subOptions);
     $testCategory->setCategories([$manfredCategory]);
     // fail category
     $failCategory = new OptionCategory('fail');
     $expectedOutput->setCategories([$importsCategory, $testCategory, $failCategory]);
     $this->assertEquals($expectedOutput, $output);
 }
 /**
  * Parses the config files.
  */
 private function parseConfig()
 {
     foreach ($this->finder as $configFile) {
         /** @var SplFileInfo $configFile */
         $configYAML = $this->parser->parse($configFile->getContents());
         $configOptions = ConfigUtil::convertToOptions($configYAML);
         $this->setOptionsFor(strtoupper($configFile->getBasename('.yml')), $configOptions);
     }
 }
 /**
  * {@inheritdoc}
  */
 public function getOptions()
 {
     return ConfigUtil::convertToOptions($this->optionsYAML);
 }