1
0
mirror of synced 2025-03-05 20:36:15 +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
declare(strict_types=1);
namespace Doctrine\Tests\ORM\Functional;
use Doctrine\ORM\Tools\SchemaTool;
use Doctrine\ORM\Tools\ToolsException;
use Doctrine\Tests\Models\OneToOneInverseSideLoad\InverseSide;
use Doctrine\Tests\Models\OneToOneInverseSideLoad\OwningSide;
use Doctrine\Tests\OrmFunctionalTestCase;
class OneToOneInverseSideLoadAfterDqlQueryTest extends OrmFunctionalTestCase
{
protected function setUp()
{
parent::setUp();
try {
$this->_schemaTool->createSchema([
$this->_em->getClassMetadata(Bus::class),
$this->_em->getClassMetadata(BusOwner::class),
$this->_em->getClassMetadata(OwningSide::class),
$this->_em->getClassMetadata(InverseSide::class),
]);
} catch(ToolsException $e) {
// ignored
}
}
/**
* @group #6759
*/
public function testInverseSideOneToOneLoadedAfterDqlQuery(): void
{
$owner = new BusOwner('Alexander');
$bus = new Bus($owner);
$owner = new OwningSide();
$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->clear();
$bus = $this
/* @var $fetchedInverse InverseSide */
$fetchedInverse = $this
->_em
->createQueryBuilder()
->select('to')
->from(BusOwner::class, 'to')
->andWhere('to.id = :id')
->setParameter('id', $owner->id)
->select('inverse')
->from(InverseSide::class, 'inverse')
->andWhere('inverse.id = :id')
->setParameter('id', 'inverse')
->getQuery()
->getResult();
->getSingleResult();
self::assertInstanceOf(InverseSide::class, $fetchedInverse);
self::assertInstanceOf(OwningSide::class, $fetchedInverse->owning);
$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->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']
);
}
}
/**
* @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;
}
}