1
0
mirror of synced 2025-02-20 22:23:14 +03:00

DDC-3346 failing test example

This commit is contained in:
Pavel Batanov 2015-01-22 17:32:03 +03:00 committed by Marco Pivetta
parent 3f360d7fbc
commit e36c7b0c2a
3 changed files with 127 additions and 0 deletions

View File

@ -0,0 +1,31 @@
<?php
namespace Doctrine\Tests\Models\DDC3346;
/**
* @Entity
* @Table(name="ddc3346_articles")
*/
class DDC3346Article
{
/**
* @Id
* @Column(type="integer")
* @GeneratedValue(strategy="AUTO")
*/
public $id;
/**
* @ManyToOne(targetEntity="DDC3346Author", inversedBy="articles")
* @JoinColumn(name="user_id", referencedColumnName="id")
*/
public $user;
/**
* @Column(type="text")
*/
public $text;
public function setAuthor(DDC3346Author $author)
{
$this->user = $author;
}
}

View File

@ -0,0 +1,32 @@
<?php
namespace Doctrine\Tests\Models\DDC3346;
/**
* @Entity
* @Table(name="ddc3346_users")
*/
class DDC3346Author
{
/**
* @Id @Column(type="integer")
* @GeneratedValue
*/
public $id;
/**
* @Column(type="string", length=50, nullable=true)
*/
public $status;
/**
* @Column(type="string", length=255, unique=true)
*/
public $username;
/**
* @Column(type="string", length=255)
*/
public $name;
/**
* @OneToMany(targetEntity="DDC3346Article", mappedBy="user", fetch="EAGER", cascade={"detach"})
*/
public $articles;
}

View File

@ -0,0 +1,64 @@
<?php
namespace Doctrine\Tests\ORM\Functional\Ticket;
use Doctrine\Tests\Models\DDC3346\DDC3346Article;
use Doctrine\Tests\Models\DDC3346\DDC3346Author;
/**
* @group DDC-3346
*/
class DDC3346Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
public function setUp()
{
parent::setUp();
$this->setUpEntitySchema(
array(
'Doctrine\Tests\Models\DDC3346\DDC3346Article',
'Doctrine\Tests\Models\DDC3346\DDC3346Author',
)
);
}
public function testFindOneByWithEagerFetch()
{
$user = new DDC3346Author();
$user->name = "Buggy Woogy";
$user->username = "bwoogy";
$user->status = "active";
$article1 = new DDC3346Article();
$article1->text = "First content";
$article1->setAuthor($user);
$article2 = new DDC3346Article();
$article2->text = "Second content";
$article2->setAuthor($user);
$this->_em->persist($user);
$this->_em->persist($article1);
$this->_em->persist($article2);
$this->_em->flush();
$this->_em->close();
/** @var DDC3346Author[] $authors */
$authors = $this->_em->getRepository('Doctrine\Tests\Models\DDC3346\DDC3346Author')->findBy(
array('username' => "bwoogy")
);
$this->assertCount(1, $authors);
$this->assertCount(2, $authors[0]->articles);
$this->_em->close();
/** @var DDC3346Author $author */
$author = $this->_em->getRepository('Doctrine\Tests\Models\DDC3346\DDC3346Author')->findOneBy(
array('username' => "bwoogy")
);
$this->assertCount(2, $author->articles);
}
}