private function createConfiguration(array $tagConfiguration)
 {
     $configuration = new Configuration($tagConfiguration['cassette_path'], $tagConfiguration['cassette_storage'], $tagConfiguration['tags'], new ExtensionDecoratorFileNamingStrategy($this->cassetteFileNamingStrategyFactory->createFileNamingStrategy($tagConfiguration['cassette_filenaming_strategy']), $this->guessExtensionFromCassetteStorage($tagConfiguration['cassette_storage'])));
     if (isset($tagConfiguration['library_hooks'])) {
         $configuration->setLibraryHooks($tagConfiguration['library_hooks']);
     }
     if (isset($tagConfiguration['match_requests_on'])) {
         $configuration->setRequestMatchers($tagConfiguration['match_requests_on']);
     }
     if (isset($tagConfiguration['mode'])) {
         $configuration->setMode($tagConfiguration['mode']);
     }
     return $configuration;
 }
 private function configureVCR(Configuration $configuration, ScenarioTested $event)
 {
     $currentVcrConfiguration = $this->videorecorder->configure();
     if ($configuration->getCassettePath()) {
         $currentVcrConfiguration->setCassettePath($configuration->getCassettePath());
     }
     if ($configuration->getCassetteStorage()) {
         $currentVcrConfiguration->setStorage($configuration->getCassetteStorage());
     }
     if ($configuration->getLibraryHooks()) {
         $currentVcrConfiguration->enableLibraryHooks($configuration->getLibraryHooks());
     }
     if ($configuration->getRequestMatchers()) {
         $currentVcrConfiguration->enableRequestMatchers($configuration->getRequestMatchers());
     }
     if ($configuration->getMode()) {
         $currentVcrConfiguration->setMode($configuration->getMode());
     }
     $filename = $configuration->getFileNamingStrategy()->createFilename($event->getFeature(), $event->getScenario(), $this->outline);
     $this->videorecorder->insertCassette($filename);
 }