1
0
mirror of synced 2025-02-02 21:41:45 +03:00

#6303 #6304 simplified tests, removing references to contract naming

This commit is contained in:
Marco Pivetta 2017-08-19 16:48:50 +02:00
parent f6ce69fe29
commit 328467c226
No known key found for this signature in database
GPG Key ID: 4167D3337FD9D629

View File

@ -3,6 +3,7 @@
namespace Doctrine\Tests\ORM\Functional\Ticket; namespace Doctrine\Tests\ORM\Functional\Ticket;
use Doctrine\DBAL\Schema\SchemaException; use Doctrine\DBAL\Schema\SchemaException;
use Doctrine\ORM\Tools\ToolsException;
use Doctrine\Tests\OrmFunctionalTestCase; use Doctrine\Tests\OrmFunctionalTestCase;
/** /**
@ -13,29 +14,33 @@ class DDC6303Test extends OrmFunctionalTestCase
public function setUp() public function setUp()
{ {
parent::setUp(); parent::setUp();
try { try {
$this->_schemaTool->createSchema([ $this->_schemaTool->createSchema([
$this->_em->getClassMetadata(DDC6303Contract::class), $this->_em->getClassMetadata(DDC6303BaseClass::class),
$this->_em->getClassMetadata(DDC6303ContractA::class), $this->_em->getClassMetadata(DDC6303ChildA::class),
$this->_em->getClassMetadata(DDC6303ContractB::class), $this->_em->getClassMetadata(DDC6303ChildB::class),
]); ]);
} catch (SchemaException $ignored) { } catch (ToolsException $ignored) {
} }
} }
public function testMixedTypeHydratedCorrectlyInJoinedInheritance() public function testMixedTypeHydratedCorrectlyInJoinedInheritance()
{ {
$contractA = new DDC6303ContractA(); $a = new DDC6303ChildA();
$contractAData = 'authorized'; $b = new DDC6303ChildB();
$contractA->originalData = $contractAData;
$contractB = new DDC6303ContractB(); $aData = 'authorized';
//contractA and contractB have an inheritance from Contract, but one has a string originalData and the second has an array $bData = ['accepted', 'authorized'];
$contractBData = ['accepted', 'authorized'];
$contractB->originalData = $contractBData;
$this->_em->persist($contractA); // DDC6303ChildA and DDC6303ChildB have an inheritance from DDC6303BaseClass,
$this->_em->persist($contractB); // but one has a string originalData and the second has an array, since the fields
// are mapped differently
$a->originalData = $aData;
$b->originalData = $bData;
$this->_em->persist($a);
$this->_em->persist($b);
$this->_em->flush(); $this->_em->flush();
@ -43,11 +48,11 @@ class DDC6303Test extends OrmFunctionalTestCase
// instead of just returning the existing managed entities // instead of just returning the existing managed entities
$this->_em->clear(); $this->_em->clear();
$repository = $this->_em->getRepository(DDC6303Contract::class); $repository = $this->_em->getRepository(DDC6303BaseClass::class);
$dataMap = [ $dataMap = [
$contractA->id => $contractAData, $a->id => $aData,
$contractB->id => $contractBData, $b->id => $bData,
]; ];
$contracts = $repository $contracts = $repository
@ -71,9 +76,9 @@ class DDC6303Test extends OrmFunctionalTestCase
$contractStringZeroData = 0; $contractStringZeroData = 0;
$contractArrayEmptyData = []; $contractArrayEmptyData = [];
$contractStringEmpty = new DDC6303ContractA(); $contractStringEmpty = new DDC6303ChildA();
$contractStringZero = new DDC6303ContractA(); $contractStringZero = new DDC6303ChildA();
$contractArrayEmpty = new DDC6303ContractB(); $contractArrayEmpty = new DDC6303ChildB();
$contractStringEmpty->originalData = $contractStringEmptyData; $contractStringEmpty->originalData = $contractStringEmptyData;
$contractStringZero->originalData = $contractStringZeroData; $contractStringZero->originalData = $contractStringZeroData;
@ -89,13 +94,14 @@ class DDC6303Test extends OrmFunctionalTestCase
// instead of just returning the existing managed entities // instead of just returning the existing managed entities
$this->_em->clear(); $this->_em->clear();
$repository = $this->_em->getRepository(DDC6303Contract::class); $repository = $this->_em->getRepository(DDC6303BaseClass::class);
$dataMap = [ $dataMap = [
$contractStringZero->id => $contractStringZeroData, $contractStringZero->id => $contractStringZeroData,
$contractStringEmpty->id => $contractStringEmptyData, $contractStringEmpty->id => $contractStringEmptyData,
$contractArrayEmpty->id => $contractArrayEmptyData, $contractArrayEmpty->id => $contractArrayEmptyData,
]; ];
/* @var $contracts DDC6303ChildA[]|DDC6303ChildB[] */
$contracts = $repository $contracts = $repository
->createQueryBuilder('p') ->createQueryBuilder('p')
->where('p.id IN(:ids)') ->where('p.id IN(:ids)')
@ -119,26 +125,25 @@ class DDC6303Test extends OrmFunctionalTestCase
* @InheritanceType("JOINED") * @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string") * @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({ * @DiscriminatorMap({
* "contract" = "DDC6303Contract", * DDC6303ChildA::class = DDC6303ChildA::class,
* "contract_b" = "DDC6303ContractB", * DDC6303ChildB::class = DDC6303ChildB::class,
* "contract_a" = "DDC6303ContractA"
* }) * })
*/ */
class DDC6303Contract abstract class DDC6303BaseClass
{ {
/** @Id @Column(type="integer") @GeneratedValue */ /** @Id @Column(type="integer") @GeneratedValue */
public $id; public $id;
} }
/** @Entity @Table */ /** @Entity @Table */
class DDC6303ContractA extends DDC6303Contract class DDC6303ChildA extends DDC6303BaseClass
{ {
/** @Column(type="string", nullable=true) */ /** @Column(type="string", nullable=true) */
public $originalData; public $originalData;
} }
/** @Entity @Table */ /** @Entity @Table */
class DDC6303ContractB extends DDC6303Contract class DDC6303ChildB extends DDC6303BaseClass
{ {
/** @Column(type="simple_array", nullable=true) */ /** @Column(type="simple_array", nullable=true) */
public $originalData; public $originalData;