Commit 42c55628 authored by jwage's avatar jwage

[2.0] Improving EntityGenerated: added normal doc blocks above...

[2.0] Improving EntityGenerated: added normal doc blocks above annotations(even if annotations aren't generated), adding type hinting, added generation of default values for properties
parent b73e3c06
...@@ -194,6 +194,17 @@ abstract class Type ...@@ -194,6 +194,17 @@ abstract class Type
self::$_typesMap[$name] = $className; self::$_typesMap[$name] = $className;
} }
/**
* Get the types array map which holds all registered types and the corresponding
* type class
*
* @return array $typesMap
*/
public static function getTypesMap()
{
return self::$_typesMap;
}
public function __toString() public function __toString()
{ {
$e = explode('\\', get_class($this)); $e = explode('\\', get_class($this));
......
This diff is collapsed.
...@@ -26,20 +26,20 @@ class EntityGeneratorTest extends \Doctrine\Tests\OrmTestCase ...@@ -26,20 +26,20 @@ class EntityGeneratorTest extends \Doctrine\Tests\OrmTestCase
{ {
$metadata = new ClassMetadataInfo('EntityGeneratorBook'); $metadata = new ClassMetadataInfo('EntityGeneratorBook');
$metadata->primaryTable['name'] = 'book'; $metadata->primaryTable['name'] = 'book';
$metadata->mapField(array('fieldName' => 'name', 'type' => 'varchar')); $metadata->mapField(array('fieldName' => 'name', 'type' => 'string'));
$metadata->mapField(array('fieldName' => 'status', 'type' => 'string', 'default' => 'published'));
$metadata->mapField(array('fieldName' => 'id', 'type' => 'integer', 'id' => true)); $metadata->mapField(array('fieldName' => 'id', 'type' => 'integer', 'id' => true));
$metadata->mapOneToOne(array('fieldName' => 'other', 'targetEntity' => 'Other', 'mappedBy' => 'this')); $metadata->mapOneToOne(array('fieldName' => 'author', 'targetEntity' => 'Doctrine\Tests\ORM\Tools\EntityGeneratorAuthor', 'mappedBy' => 'book'));
$joinColumns = array( $joinColumns = array(
array('name' => 'other_id', 'referencedColumnName' => 'id') array('name' => 'author_id', 'referencedColumnName' => 'id')
); );
$metadata->mapOneToOne(array('fieldName' => 'association', 'targetEntity' => 'Other', 'joinColumns' => $joinColumns));
$metadata->mapManyToMany(array( $metadata->mapManyToMany(array(
'fieldName' => 'author', 'fieldName' => 'comments',
'targetEntity' => 'Author', 'targetEntity' => 'Doctrine\Tests\ORM\Tools\EntityGeneratorComment',
'joinTable' => array( 'joinTable' => array(
'name' => 'book_author', 'name' => 'book_comment',
'joinColumns' => array(array('name' => 'bar_id', 'referencedColumnName' => 'id')), 'joinColumns' => array(array('name' => 'book_id', 'referencedColumnName' => 'id')),
'inverseJoinColumns' => array(array('name' => 'baz_id', 'referencedColumnName' => 'id')), 'inverseJoinColumns' => array(array('name' => 'comment_id', 'referencedColumnName' => 'id')),
), ),
)); ));
$metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO); $metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO);
...@@ -57,45 +57,44 @@ class EntityGeneratorTest extends \Doctrine\Tests\OrmTestCase ...@@ -57,45 +57,44 @@ class EntityGeneratorTest extends \Doctrine\Tests\OrmTestCase
* @depends testWriteEntityClass * @depends testWriteEntityClass
* @param ClassMetadata $metadata * @param ClassMetadata $metadata
*/ */
public function testGeneratedEntityClassMethods($metadata) public function testGeneratedEntityClass($metadata)
{ {
$this->assertTrue(method_exists('\EntityGeneratorBook', 'getId')); $this->assertTrue(method_exists('\EntityGeneratorBook', 'getId'));
$this->assertTrue(method_exists('\EntityGeneratorBook', 'setName')); $this->assertTrue(method_exists('\EntityGeneratorBook', 'setName'));
$this->assertTrue(method_exists('\EntityGeneratorBook', 'getName')); $this->assertTrue(method_exists('\EntityGeneratorBook', 'getName'));
$this->assertTrue(method_exists('\EntityGeneratorBook', 'setOther')); $this->assertTrue(method_exists('\EntityGeneratorBook', 'setAuthor'));
$this->assertTrue(method_exists('\EntityGeneratorBook', 'getOther'));
$this->assertTrue(method_exists('\EntityGeneratorBook', 'setAssociation'));
$this->assertTrue(method_exists('\EntityGeneratorBook', 'getAssociation'));
$this->assertTrue(method_exists('\EntityGeneratorBook', 'getAuthor')); $this->assertTrue(method_exists('\EntityGeneratorBook', 'getAuthor'));
$this->assertTrue(method_exists('\EntityGeneratorBook', 'addAuthor')); $this->assertTrue(method_exists('\EntityGeneratorBook', 'getComments'));
$this->assertTrue(method_exists('\EntityGeneratorBook', 'addComments'));
$book = new \EntityGeneratorBook(); $book = new \EntityGeneratorBook();
$this->assertEquals('published', $book->getStatus());
$book->setName('Jonathan H. Wage'); $book->setName('Jonathan H. Wage');
$this->assertEquals('Jonathan H. Wage', $book->getName()); $this->assertEquals('Jonathan H. Wage', $book->getName());
$book->setOther('Other'); $author = new EntityGeneratorAuthor();
$this->assertEquals('Other', $book->getOther()); $book->setAuthor($author);
$this->assertEquals($author, $book->getAuthor());
$book->setAssociation('Test'); $comment = new EntityGeneratorComment();
$this->assertEquals('Test', $book->getAssociation()); $book->addComments($comment);
$this->assertEquals(array($comment), $book->getComments());
$book->addAuthor('Test');
$this->assertEquals(array('Test'), $book->getAuthor());
return $metadata; return $metadata;
} }
/** /**
* @depends testGeneratedEntityClassMethods * @depends testGeneratedEntityClass
* @param ClassMetadata $metadata * @param ClassMetadata $metadata
*/ */
public function testEntityUpdatingWorks($metadata) public function testEntityUpdatingWorks($metadata)
{ {
$metadata->mapField(array('fieldName' => 'test', 'type' => 'varchar')); $metadata->mapField(array('fieldName' => 'test', 'type' => 'string'));
$this->_generator->writeEntityClass($metadata, __DIR__); $this->_generator->writeEntityClass($metadata, __DIR__);
$code = file_get_contents(__DIR__ . '/EntityGeneratorBook.php'); $code = file_get_contents(__DIR__ . '/EntityGeneratorBook.php');
$this->assertTrue(strstr($code, 'private $test;') !== false); $this->assertTrue(strstr($code, 'private $test;') !== false);
$this->assertTrue(strstr($code, 'private $test;') !== false); $this->assertTrue(strstr($code, 'private $test;') !== false);
$this->assertTrue(strstr($code, 'public function getTest(') !== false); $this->assertTrue(strstr($code, 'public function getTest(') !== false);
...@@ -104,3 +103,6 @@ class EntityGeneratorTest extends \Doctrine\Tests\OrmTestCase ...@@ -104,3 +103,6 @@ class EntityGeneratorTest extends \Doctrine\Tests\OrmTestCase
unlink(__DIR__ . '/EntityGeneratorBook.php'); unlink(__DIR__ . '/EntityGeneratorBook.php');
} }
} }
class EntityGeneratorAuthor {}
class EntityGeneratorComment {}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment