Example #1
0
 /**
  * @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();
 }
Example #2
0
 /**
  * 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')));
 }