1
0
mirror of synced 2025-03-06 04:46:13 +03:00

#6759 cleaning up test case, using new models from the isolated namespace

This commit is contained in:
Marco Pivetta 2017-10-07 12:52:34 +02:00
parent d831f4fd9f
commit 83e00d5010
No known key found for this signature in database
GPG Key ID: 4167D3337FD9D629

View File

@ -1,112 +1,70 @@
<?php <?php
declare(strict_types=1);
namespace Doctrine\Tests\ORM\Functional; namespace Doctrine\Tests\ORM\Functional;
use Doctrine\ORM\Tools\SchemaTool;
use Doctrine\ORM\Tools\ToolsException; use Doctrine\ORM\Tools\ToolsException;
use Doctrine\Tests\Models\OneToOneInverseSideLoad\InverseSide;
use Doctrine\Tests\Models\OneToOneInverseSideLoad\OwningSide;
use Doctrine\Tests\OrmFunctionalTestCase; use Doctrine\Tests\OrmFunctionalTestCase;
class OneToOneInverseSideLoadAfterDqlQueryTest extends OrmFunctionalTestCase class OneToOneInverseSideLoadAfterDqlQueryTest extends OrmFunctionalTestCase
{ {
protected function setUp() protected function setUp()
{ {
parent::setUp(); parent::setUp();
try { try {
$this->_schemaTool->createSchema([ $this->_schemaTool->createSchema([
$this->_em->getClassMetadata(Bus::class), $this->_em->getClassMetadata(OwningSide::class),
$this->_em->getClassMetadata(BusOwner::class), $this->_em->getClassMetadata(InverseSide::class),
]); ]);
} catch(ToolsException $e) { } catch(ToolsException $e) {
// ignored // ignored
} }
} }
/**
* @group #6759
*/
public function testInverseSideOneToOneLoadedAfterDqlQuery(): void public function testInverseSideOneToOneLoadedAfterDqlQuery(): void
{ {
$owner = new BusOwner('Alexander'); $owner = new OwningSide();
$bus = new Bus($owner); $inverse = new InverseSide();
$this->_em->persist($bus); $owner->id = 'owner';
$inverse->id = 'inverse';
$owner->inverse = $inverse;
$inverse->owning = $owner;
$this->_em->persist($owner);
$this->_em->persist($inverse);
$this->_em->flush(); $this->_em->flush();
$this->_em->clear(); $this->_em->clear();
$bus = $this /* @var $fetchedInverse InverseSide */
$fetchedInverse = $this
->_em ->_em
->createQueryBuilder() ->createQueryBuilder()
->select('to') ->select('inverse')
->from(BusOwner::class, 'to') ->from(InverseSide::class, 'inverse')
->andWhere('to.id = :id') ->andWhere('inverse.id = :id')
->setParameter('id', $owner->id) ->setParameter('id', 'inverse')
->getQuery() ->getQuery()
->getResult(); ->getSingleResult();
self::assertInstanceOf(InverseSide::class, $fetchedInverse);
self::assertInstanceOf(OwningSide::class, $fetchedInverse->owning);
$this->assertSQLEquals( $this->assertSQLEquals(
'SELECT b0_.id AS id_0, b0_.name AS name_1 FROM BusOwner b0_ WHERE b0_.id = ?', 'select o0_.id as id_0 from one_to_one_inverse_side_load_inverse o0_ where o0_.id = ?',
$this->_sqlLoggerStack->queries[$this->_sqlLoggerStack->currentQuery - 1]['sql'] $this->_sqlLoggerStack->queries[$this->_sqlLoggerStack->currentQuery - 1]['sql']
); );
$this->assertSQLEquals( $this->assertSQLEquals(
'SELECT t0.id AS id_1, t0.owner AS owner_2 FROM Bus t0 WHERE t0.owner = ?', 'select t0.id as id_1, t0.inverse as inverse_2 from one_to_one_inverse_side_load_owning t0 WHERE t0.inverse = ?',
$this->_sqlLoggerStack->queries[$this->_sqlLoggerStack->currentQuery]['sql'] $this->_sqlLoggerStack->queries[$this->_sqlLoggerStack->currentQuery]['sql']
); );
} }
}
/**
* @Entity
*/
class Bus
{
/**
* @id @column(type="integer") @generatedValue
* @var int
*/
public $id;
/**
* Owning side
* @OneToOne(targetEntity="BusOwner", inversedBy="bus", cascade={"persist"})
* @JoinColumn(nullable=false, name="owner")
*/
public $owner;
public function __construct(BusOwner $owner)
{
$this->owner = $owner;
}
}
/**
* @Entity
*/
class BusOwner
{
/**
* @Id
* @Column(type="integer")
* @GeneratedValue
*/
public $id;
/** @column(type="string") */
public $name;
/**
* Inverse side
* @OneToOne(targetEntity="Bus", mappedBy="owner")
*/
public $bus;
public function __construct($name)
{
$this->name = $name;
}
public function setBus(Bus $t)
{
$this->bus = $t;
}
} }