/**
  * @return void
  * @throws Exception\DomainException
  */
 public function build()
 {
     foreach ($this->options->getStrategies() as $strategyOptions) {
         $strategyOptions = new Options\Strategy($strategyOptions);
         if (!$this->isValidType($strategyOptions->getType())) {
             throw new Exception\DomainException('Invalid Type (' . $strategyOptions->getType() . ')');
         }
         $strategy = $this->getStrategy($strategyOptions->getName());
         foreach ($this->options->getLanguages() as $languageKey => $languageProjectKey) {
             $data = array('type' => $strategyOptions->getType(), 'language' => $languageKey);
             $content = file_get_contents($this->getFile($data));
             $content = $strategy->build($content);
             $extension = $strategyOptions->getExtension() ?: $strategyOptions->getType();
             $file = $languageProjectKey . '.' . $extension;
             $this->writeFile($strategyOptions->getSavePath() . '/' . $file, $content);
         }
     }
 }
 public function testMutateSavePath()
 {
     $value = 'data/php_array';
     $this->fixture->setSavePath($value);
     $this->assertSame($value, $this->fixture->getSavePath());
 }