/** * @param string $aggregateClassName * @param Version $version * * @return string */ protected function render($aggregateClassName, Version $version) { $template = new Template(sprintf('%s/Templates/MigrationClass.tpl', __DIR__)); $namespace = 'namespace ' . $this->getNamespace($aggregateClassName, $version) . ";\n"; $shortClassName = $this->shortClassName($aggregateClassName); $migrationClassName = $shortClassName . 'Migration'; $aggregateClassNamespace = $this->getAggregateClassNamespace($aggregateClassName); if ($aggregateClassNamespace != '') { $aggregateClassNamespace = 'use ' . $aggregateClassNamespace . ";\n"; } // If class name doesn't has a namespace separator if (strpos($aggregateClassName, '\\') === false) { $aggregateClassName = '\\' . $shortClassName; } else { $aggregateClassName = $shortClassName; } $template->setVar(array('namespace' => $namespace, 'migrationClassName' => $migrationClassName, 'use' => $aggregateClassNamespace, 'aggregateClassName' => $aggregateClassName, 'date' => date('Y-m-d'), 'time' => date('H:i:s'))); return $template->render(); }
/** * Test Render method. */ public function testRender() { $this->given($template = new Template($this->filename()))->and($values = array('namespace' => 'namespace Some\\ClassNamespace;', 'migrationClassName' => 'FooMigration', 'use' => 'use Some\\AggregateRoot\\ClassName;', 'aggregateClassName' => 'ClassName', 'date' => '2016-08-16', 'time' => '11:31:00'))->and($template->setVar($values))->and($keys = array_map(function ($key) { return '{' . $key . '}'; }, array_keys($values)))->when($result = $template->render())->then()->string($result)->isEqualTo(str_replace($keys, $values, file_get_contents($this->filename() . '.dist'))); }