1
0
mirror of synced 2025-02-03 22:09:26 +03:00
Luís Cobucci 1bf884970f
Increment assertion count manually
Which is needed to test void methods that shouldn't raise any exception
on a certain condition. If the interpreter gets to the point where the
assertion count is incremented it means that no exceptions have been
thrown and our test is successful.

Important to note that some tests were slighly refactored to simplify
things a bit.
2017-06-12 23:04:56 +02:00

132 lines
3.1 KiB
PHP

<?php
namespace Doctrine\Tests\ORM\Functional\Ticket;
use Doctrine\Common\Cache\FilesystemCache;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @group non-cacheable
*/
class DDC742Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
/**
* {@inheritDoc}
*/
protected function setUp()
{
parent::setUp();
$testDir = sys_get_temp_dir() . '/DDC742Test' . uniqid();
mkdir($testDir);
// using a Filesystemcache to ensure that the cached data is serialized
$this->_em->getMetadataFactory()->setCacheDriver(new FilesystemCache($testDir));
try {
$this->_schemaTool->createSchema(
[
$this->_em->getClassMetadata(DDC742User::class),
$this->_em->getClassMetadata(DDC742Comment::class)
]
);
} catch(\Exception $e) {
}
// make sure classes will be deserialized from caches
$this->_em->getMetadataFactory()->setMetadataFor(DDC742User::class, null);
$this->_em->getMetadataFactory()->setMetadataFor(DDC742Comment::class, null);
}
public function testIssue()
{
$user = new DDC742User();
$user->title = "Foo";
$user->favoriteComments = new ArrayCollection();
$comment1 = new DDC742Comment();
$comment1->content = "foo";
$comment2 = new DDC742Comment();
$comment2->content = "bar";
$comment3 = new DDC742Comment();
$comment3->content = "baz";
$user->favoriteComments->add($comment1);
$user->favoriteComments->add($comment2);
$this->_em->persist($user);
$this->_em->persist($comment1);
$this->_em->persist($comment2);
$this->_em->persist($comment3);
$this->_em->flush();
$this->_em->clear();
$user = $this->_em->find(DDC742User::class, $user->id);
$user->favoriteComments->add($this->_em->find(DDC742Comment::class, $comment3->id));
$this->_em->flush();
$this->addToAssertionCount(1);
}
}
/**
* @Entity
* @Table(name="ddc742_users")
*/
class DDC742User
{
/**
* User Id
*
* @Id
* @GeneratedValue(strategy="AUTO")
* @Column(type="integer")
* @var int
*/
public $id;
/**
* @Column(length=100, type="string")
* @var string
*/
public $title;
/**
* @ManyToMany(targetEntity="DDC742Comment", cascade={"persist"}, fetch="EAGER")
* @JoinTable(
* name="user_comments",
* joinColumns={@JoinColumn(name="user_id",referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="comment_id", referencedColumnName="id")}
* )
*
* @var \Doctrine\ORM\PersistentCollection
*/
public $favoriteComments;
}
/**
* @Entity
* @Table(name="ddc742_comments")
*/
class DDC742Comment
{
/**
* User Id
*
* @Id
* @GeneratedValue(strategy="AUTO")
* @Column(type="integer")
* @var int
*/
public $id;
/**
* @Column(length=100, type="string")
* @var string
*/
public $content;
}