/**
  * @param string $locale, e.g. 'en_GB'
  */
 private function addPolyglotListenerToDoctrineWithLocale($locale)
 {
     $annotationReader = new AnnotationReader();
     $defaultLocaleProvider = new DefaultLocaleProvider();
     $defaultLocaleProvider->setDefaultLocale($locale);
     $listener = new PolyglotListener($annotationReader, $defaultLocaleProvider);
     $this->infrastructure->getEntityManager()->getEventManager()->addEventSubscriber($listener);
 }
 /**
  * @param TestEntity $entity
  * @param LoggerInterface|null $logger
  * @return ManagedTranslationProxy
  */
 private function createProxy(TestEntity $entity, LoggerInterface $logger = null)
 {
     $localeProvider = new DefaultLocaleProvider();
     $localeProvider->setDefaultLocale('de');
     // We need a translation class without required constructor parameters.
     $translationClass = 'Webfactory\\Bundle\\PolyglotBundle\\Tests\\TestEntityTranslation';
     $proxy = new ManagedTranslationProxy($entity, 'en', $localeProvider, $this->makeAccessible(new \ReflectionProperty($translationClass, 'text')), $this->makeAccessible(new \ReflectionProperty($entity, 'translations')), new \ReflectionClass($translationClass), $this->makeAccessible(new \ReflectionProperty($translationClass, 'locale')), $this->makeAccessible(new \ReflectionProperty($translationClass, 'entity')), $logger);
     return $proxy;
 }