public function testReturnType() { $expected = "public function foo(): int {\n}\n"; $generator = new ModelGenerator(['generateReturnTypeHints' => true, 'generateDocblock' => false]); $method = PhpMethod::create('foo')->setType('int'); $this->assertEquals($expected, $generator->generate($method)); }
public function testSignature() { $expected = 'trait MyTrait {' . "\n" . '}'; $trait = PhpTrait::create('MyTrait'); $generator = new ModelGenerator(); $code = $generator->generate($trait); $this->assertEquals($expected, $code); }
public function testExtends() { $generator = new ModelGenerator(); $expected = 'interface MyInterface extends \\Iterator {' . "\n" . '}'; $interface = PhpInterface::create('MyInterface')->addInterface('\\Iterator'); $this->assertEquals($expected, $generator->generate($interface)); $expected = 'interface MyInterface extends \\Iterator, \\ArrayAccess {' . "\n" . '}'; $interface = PhpInterface::create('MyInterface')->addInterface('\\Iterator')->addInterface('\\ArrayAccess'); $this->assertEquals($expected, $generator->generate($interface)); }
public function testValues() { $generator = new ModelGenerator(); $prop = PhpParameter::create('foo')->setValue('string'); $this->assertEquals('$foo = \'string\'', $generator->generate($prop)); $prop = PhpParameter::create('foo')->setValue(300); $this->assertEquals('$foo = 300', $generator->generate($prop)); $prop = PhpParameter::create('foo')->setValue(162.5); $this->assertEquals('$foo = 162.5', $generator->generate($prop)); $prop = PhpParameter::create('foo')->setValue(true); $this->assertEquals('$foo = true', $generator->generate($prop)); $prop = PhpParameter::create('foo')->setValue(false); $this->assertEquals('$foo = false', $generator->generate($prop)); $prop = PhpParameter::create('foo')->setValue(null); $this->assertEquals('$foo = null', $generator->generate($prop)); $prop = PhpParameter::create('foo')->setValue(PhpConstant::create('BAR')); $this->assertEquals('$foo = BAR', $generator->generate($prop)); $prop = PhpParameter::create('foo')->setExpression("['bar' => 'baz']"); $this->assertEquals('$foo = [\'bar\' => \'baz\']', $generator->generate($prop)); }
public function testValues() { $generator = new ModelGenerator(); $prop = PhpProperty::create('foo')->setValue('string'); $this->assertEquals('public $foo = \'string\';' . "\n", $generator->generate($prop)); $prop = PhpProperty::create('foo')->setValue(300); $this->assertEquals('public $foo = 300;' . "\n", $generator->generate($prop)); $prop = PhpProperty::create('foo')->setValue(162.5); $this->assertEquals('public $foo = 162.5;' . "\n", $generator->generate($prop)); $prop = PhpProperty::create('foo')->setValue(true); $this->assertEquals('public $foo = true;' . "\n", $generator->generate($prop)); $prop = PhpProperty::create('foo')->setValue(false); $this->assertEquals('public $foo = false;' . "\n", $generator->generate($prop)); $prop = PhpProperty::create('foo')->setValue(null); $this->assertEquals('public $foo = null;' . "\n", $generator->generate($prop)); $prop = PhpProperty::create('foo')->setValue(PhpConstant::create('BAR')); $this->assertEquals('public $foo = BAR;' . "\n", $generator->generate($prop)); $prop = PhpProperty::create('foo')->setExpression("['bar' => 'baz']"); $this->assertEquals('public $foo = [\'bar\' => \'baz\'];' . "\n", $generator->generate($prop)); }
/** * @param AbstractModel $model * @return void */ protected function generate(AbstractModel $model) { $builder = $this->generator->getFactory()->getBuilder($model); $builder->build($model); }
public function testRequireTraitsClass() { $class = PhpClass::create('RequireTraitsClass')->addRequiredFile('FooBar.php')->addRequiredFile('ABClass.php')->addTrait('Iterator'); $generator = new ModelGenerator(); $code = $generator->generate($class); $this->assertEquals($this->getGeneratedContent('RequireTraitsClass.php'), $code); }
/** * Generates code from a given model * * @param GenerateableInterface $model * @return string the generated code */ public function generate(GenerateableInterface $model) { return $this->generator->generate($model); }