/** * {@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(); }