/**
  * @covers \GeneratedHydrator\Configuration::doesAutoGenerateProxies
  * @covers \GeneratedHydrator\Configuration::setAutoGenerateProxies
  */
 public function testGetSetAutoGenerateProxies()
 {
     $this->assertTrue($this->configuration->doesAutoGenerateProxies(), 'Default setting check for BC');
     $this->configuration->setAutoGenerateProxies(false);
     $this->assertFalse($this->configuration->doesAutoGenerateProxies());
     $this->configuration->setAutoGenerateProxies(true);
     $this->assertTrue($this->configuration->doesAutoGenerateProxies());
 }
 /**
  * Retrieves the generated hydrator FQCN
  *
  * @return string
  */
 public function getHydratorClass()
 {
     $inflector = $this->configuration->getClassNameInflector();
     $realClassName = $inflector->getUserClassName($this->configuration->getHydratedClassName());
     $hydratorClassName = $inflector->getGeneratedClassName($realClassName, array('factory' => get_class($this)));
     if (!class_exists($hydratorClassName) && $this->configuration->doesAutoGenerateProxies()) {
         $generator = new HydratorGenerator();
         $originalClass = new ReflectionClass($realClassName);
         $generatedAst = $generator->generate($originalClass);
         $traverser = new NodeTraverser();
         $traverser->addVisitor(new ClassRenamerVisitor($originalClass, $hydratorClassName));
         $this->configuration->getGeneratorStrategy()->generate($traverser->traverse($generatedAst));
         $this->configuration->getGeneratedClassAutoloader()->__invoke($hydratorClassName);
     }
     return $hydratorClassName;
 }