public function testReset()
 {
     $foo = $this->getMock('JMS\\TranslationBundle\\Translation\\ExtractorInterface');
     $logger = new NullLogger();
     $extractor = new FileExtractor(new \Twig_Environment(), $logger, array());
     $extractor->setExcludedNames(array('foo', 'bar'));
     $extractor->setExcludedDirs(array('baz'));
     $manager = $this->getManager($extractor, array('foo' => $foo));
     $manager->setEnabledExtractors(array('foo' => true));
     $manager->setDirectories(array('/'));
     $managerReflection = new \ReflectionClass($manager);
     $extractorReflection = new \ReflectionClass($extractor);
     $enabledExtractorsProperty = $managerReflection->getProperty('enabledExtractors');
     $enabledExtractorsProperty->setAccessible(true);
     $directoriesProperty = $managerReflection->getProperty('directories');
     $directoriesProperty->setAccessible(true);
     $excludedNamesProperty = $extractorReflection->getProperty('excludedNames');
     $excludedNamesProperty->setAccessible(true);
     $excludedDirsProperty = $extractorReflection->getProperty('excludedDirs');
     $excludedDirsProperty->setAccessible(true);
     $this->assertEquals(array('foo' => true), $enabledExtractorsProperty->getValue($manager));
     $this->assertEquals(array('/'), $directoriesProperty->getValue($manager));
     $this->assertEquals(array('foo', 'bar'), $excludedNamesProperty->getValue($extractor));
     $this->assertEquals(array('baz'), $excludedDirsProperty->getValue($extractor));
     $manager->reset();
     $this->assertEquals(array(), $enabledExtractorsProperty->getValue($manager));
     $this->assertEquals(array(), $directoriesProperty->getValue($manager));
     $this->assertEquals(array(), $excludedNamesProperty->getValue($extractor));
     $this->assertEquals(array(), $excludedDirsProperty->getValue($extractor));
 }
 private function extract($directory)
 {
     $twig = new \Twig_Environment();
     $twig->addExtension(new SymfonyTranslationExtension($translator = new IdentityTranslator(new MessageSelector())));
     $twig->addExtension(new TranslationExtension($translator));
     $docParser = new DocParser();
     $docParser->setImports(array('desc' => 'JMS\\TranslationBundle\\Annotation\\Desc', 'meaning' => 'JMS\\TranslationBundle\\Annotation\\Meaning', 'ignore' => 'JMS\\TranslationBundle\\Annotation\\Ignore'));
     $docParser->setIgnoreNotImportedAnnotations(true);
     $factory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
     $extractor = new FileExtractor($twig, new NullLogger(), array(new DefaultPhpFileExtractor($docParser), new TranslationContainerExtractor(), new TwigFileExtractor($twig), new ValidationExtractor($factory), new FormExtractor($docParser)));
     $extractor->setDirectory($directory);
     return $extractor->extract();
 }
 private function extract($directory)
 {
     $twig = new \Twig_Environment();
     $twig->addExtension(new SymfonyTranslationExtension($translator = new IdentityTranslator(new MessageSelector())));
     $twig->addExtension(new TranslationExtension($translator));
     $loader = new \Twig_Loader_Filesystem(realpath(__DIR__ . "/Fixture/SimpleTest/Resources/views/"));
     $twig->setLoader($loader);
     $docParser = new DocParser();
     $docParser->setImports(array('desc' => 'JMS\\TranslationBundle\\Annotation\\Desc', 'meaning' => 'JMS\\TranslationBundle\\Annotation\\Meaning', 'ignore' => 'JMS\\TranslationBundle\\Annotation\\Ignore'));
     $docParser->setIgnoreNotImportedAnnotations(true);
     //use correct factory class depending on whether using Symfony 2 or 3
     if (class_exists('Symfony\\Component\\Validator\\Mapping\\Factory\\LazyLoadingMetadataFactory')) {
         $metadataFactoryClass = 'Symfony\\Component\\Validator\\Mapping\\Factory\\LazyLoadingMetadataFactory';
     } else {
         $metadataFactoryClass = 'Symfony\\Component\\Validator\\Mapping\\ClassMetadataFactory';
     }
     $factory = new $metadataFactoryClass(new AnnotationLoader(new AnnotationReader()));
     $extractor = new FileExtractor($twig, new NullLogger(), array(new DefaultPhpFileExtractor($docParser), new TranslationContainerExtractor(), new TwigFileExtractor($twig), new ValidationExtractor($factory), new FormExtractor($docParser)));
     $extractor->setDirectory($directory);
     return $extractor->extract();
 }