1
0
mirror of synced 2025-02-09 00:39:25 +03:00

Add a test reproducing GH7259

This commit is contained in:
Christophe Coevoet 2018-06-15 13:09:59 +02:00
parent 32efbd3edd
commit 145f1f5198

View File

@ -0,0 +1,165 @@
<?php
declare(strict_types=1);
namespace Doctrine\Tests\ORM\Functional\Ticket;
use Doctrine\Tests\OrmFunctionalTestCase;
final class GH7259Test extends OrmFunctionalTestCase
{
protected function setUp() : void
{
parent::setUp();
$this->setUpEntitySchema([GH7259Space::class, GH7259File::class, GH7259FileVersion::class, GH7259Feed::class]);
}
/**
* @group 7259
*/
public function testPersistFileBeforeVersion() : void
{
$space = new GH7259Space();
$this->_em->persist($space);
$this->_em->flush();
$feed = new GH7259Feed();
$feed->space = $space;
$file = new GH7259File();
$file->space = $space;
$fileVersion = new GH7259FileVersion();
$fileVersion->file = $file;
$this->_em->persist($file);
$this->_em->persist($fileVersion);
$this->_em->persist($feed);
$this->_em->flush();
self::assertNotNull($fileVersion->id);
}
/**
* @group 7259
*/
public function testPersistFileAfterVersion() : void
{
$space = new GH7259Space();
$this->_em->persist($space);
$this->_em->flush();
$this->_em->clear();
$space = $this->_em->find(GH7259Space::class, $space->id);
$feed = new GH7259Feed();
$feed->space = $space;
$file = new GH7259File();
$file->space = $space;
$fileVersion = new GH7259FileVersion();
$fileVersion->file = $file;
$this->_em->persist($fileVersion);
$this->_em->persist($file);
$this->_em->persist($feed);
$this->_em->flush();
self::assertNotNull($fileVersion->id);
}
}
/**
* @Entity()
*/
class GH7259File
{
/**
* @Id
* @GeneratedValue
* @Column(type="integer")
*
* @var int
*/
public $id;
/**
* @ManyToOne(targetEntity=GH7259Space::class)
* @JoinColumn(nullable=false)
*
* @var GH7259Space|null
*/
public $space;
}
/**
* @Entity()
*/
class GH7259FileVersion
{
/**
* @Id
* @GeneratedValue
* @Column(type="integer")
*
* @var int
*/
public $id;
/**
* @ManyToOne(targetEntity=GH7259File::class)
* @JoinColumn(nullable=false)
*
* @var GH7259File|null
*/
public $file;
}
/**
* @Entity()
*/
class GH7259Space
{
/**
* @Id
* @GeneratedValue
* @Column(type="integer")
*
* @var int
*/
public $id;
/**
* @ManyToOne(targetEntity=GH7259File::class)
* @JoinColumn(nullable=true)
*
* @var GH7259File|null
*/
public $ruleFile;
}
/**
* @Entity()
*/
class GH7259Feed
{
/**
* @Id
* @GeneratedValue
* @Column(type="integer")
*
* @var int
*/
public $id;
/**
* @ManyToOne(targetEntity=GH7259Space::class)
* @JoinColumn(nullable=false)
*
* @var GH7259Space|null
*/
public $space;
}