/**
  * {@inheritDoc}
  */
 public function setUp()
 {
     $this->generatedClassName = UniqueIdentifierGenerator::getIdentifier('foo');
     $this->config = new Configuration($this->generatedClassName);
     $generatorStrategy = new EvaluatingGeneratorStrategy();
     $reflection = new ReflectionClass('GeneratedHydratorTestAsset\\ClassWithMixedProperties');
     $generator = new ClassBuilder();
     $traverser = new NodeTraverser();
     $renamer = new ClassRenamerVisitor($reflection, $this->generatedClassName);
     $traverser->addVisitor($renamer);
     // evaluating the generated class
     //die(var_dump($traverser->traverse($generator->fromReflection($reflection))));
     $ast = $traverser->traverse($generator->fromReflection($reflection));
     $generatorStrategy->generate($ast);
     $this->config->setGeneratorStrategy($generatorStrategy);
 }
 /**
  * @covers \GeneratedHydrator\Configuration::getGeneratorStrategy
  * @covers \GeneratedHydrator\Configuration::setGeneratorStrategy
  */
 public function testSetGetGeneratorStrategy()
 {
     $this->assertInstanceOf('CodeGenerationUtils\\GeneratorStrategy\\GeneratorStrategyInterface', $this->configuration->getGeneratorStrategy());
     $strategy = $this->getMock('CodeGenerationUtils\\GeneratorStrategy\\GeneratorStrategyInterface');
     $this->configuration->setGeneratorStrategy($strategy);
     $this->assertSame($strategy, $this->configuration->getGeneratorStrategy());
 }
 /**
  * Generates a hydrator for the given class name, and retrieves an instance of it
  *
  * @param object $object
  *
  * @return \Zend\Stdlib\Hydrator\HydratorInterface
  */
 private function generateHydrator($object)
 {
     $config = new Configuration(get_class($object));
     $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     $generatedClass = $config->createFactory()->getHydratorClass();
     return new $generatedClass();
 }
 /**
  * Generates a hydrator for the given class name, and retrieves its class name
  *
  * @param object $instance
  *
  * @return \GeneratedHydratorTestAsset\HydratedObject|\Zend\Stdlib\Hydrator\HydratorInterface
  */
 private function generateHydrator($instance)
 {
     $parentClassName = get_class($instance);
     $generatedClassName = __NAMESPACE__ . '\\' . UniqueIdentifierGenerator::getIdentifier('Foo');
     $config = new Configuration($parentClassName);
     $inflector = $this->getMock('CodeGenerationUtils\\Inflector\\ClassNameInflectorInterface');
     $inflector->expects($this->any())->method('getGeneratedClassName')->with($parentClassName)->will($this->returnValue($generatedClassName));
     $inflector->expects($this->any())->method('getUserClassName')->with($parentClassName)->will($this->returnValue($parentClassName));
     $config->setClassNameInflector($inflector);
     $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     $generatedClass = $config->createFactory()->getHydratorClass();
     return new $generatedClass();
 }