1
0
mirror of synced 2025-02-03 13:59:27 +03:00

219 lines
5.0 KiB
PHP
Raw Normal View History

2010-10-30 08:43:15 +02:00
<?php
namespace Doctrine\Tests\ORM\Functional\Ticket;
class DDC832Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
public function setUp()
{
parent::setUp();
2017-05-31 07:59:04 +02:00
$platform = $this->_em->getConnection()->getDatabasePlatform();
2017-05-31 07:59:04 +02:00
if ($platform->getName() === 'oracle') {
$this->markTestSkipped('Doesnt run on Oracle.');
}
$this->_em->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger());
2017-05-31 07:59:04 +02:00
2010-10-30 08:43:15 +02:00
try {
$this->_schemaTool->createSchema(
[
2017-05-31 07:59:04 +02:00
$this->_em->getClassMetadata(DDC832JoinedIndex::class),
$this->_em->getClassMetadata(DDC832JoinedTreeIndex::class),
$this->_em->getClassMetadata(DDC832Like::class),
]
);
2010-10-30 08:43:15 +02:00
} catch(\Exception $e) {
}
}
public function tearDown()
{
/* @var $sm \Doctrine\DBAL\Schema\AbstractSchemaManager */
$platform = $this->_em->getConnection()->getDatabasePlatform();
2017-05-31 07:59:04 +02:00
$sm = $this->_em->getConnection()->getSchemaManager();
$sm->dropTable($platform->quoteIdentifier('TREE_INDEX'));
$sm->dropTable($platform->quoteIdentifier('INDEX'));
$sm->dropTable($platform->quoteIdentifier('LIKE'));
}
2010-10-30 08:43:15 +02:00
/**
* @group DDC-832
*/
public function testQuotedTableBasicUpdate()
{
2017-05-31 07:59:04 +02:00
$like = new DDC832Like('test');
2010-10-30 08:43:15 +02:00
$this->_em->persist($like);
$this->_em->flush();
2017-05-31 07:59:04 +02:00
$like->word = 'test2';
2010-10-30 08:43:15 +02:00
$this->_em->flush();
$this->_em->clear();
self::assertEquals($like, $this->_em->find(DDC832Like::class, $like->id));
2010-10-30 08:43:15 +02:00
}
/**
* @group DDC-832
*/
public function testQuotedTableBasicRemove()
{
2017-05-31 07:59:04 +02:00
$like = new DDC832Like('test');
2010-10-30 08:43:15 +02:00
$this->_em->persist($like);
$this->_em->flush();
$idToBeRemoved = $like->id;
2010-10-30 08:43:15 +02:00
$this->_em->remove($like);
$this->_em->flush();
$this->_em->clear();
self::assertNull($this->_em->find(DDC832Like::class, $idToBeRemoved));
2010-10-30 08:43:15 +02:00
}
/**
* @group DDC-832
*/
public function testQuotedTableJoinedUpdate()
{
2017-05-31 07:59:04 +02:00
$index = new DDC832JoinedIndex('test');
$this->_em->persist($index);
$this->_em->flush();
2017-05-31 07:59:04 +02:00
$index->name = 'asdf';
$this->_em->flush();
$this->_em->clear();
self::assertEquals($index, $this->_em->find(DDC832JoinedIndex::class, $index->id));
2010-10-30 08:43:15 +02:00
}
/**
* @group DDC-832
*/
public function testQuotedTableJoinedRemove()
{
2017-05-31 07:59:04 +02:00
$index = new DDC832JoinedIndex('test');
$this->_em->persist($index);
$this->_em->flush();
$idToBeRemoved = $index->id;
$this->_em->remove($index);
$this->_em->flush();
$this->_em->clear();
self::assertNull($this->_em->find(DDC832JoinedIndex::class, $idToBeRemoved));
}
/**
* @group DDC-832
*/
public function testQuotedTableJoinedChildUpdate()
{
2017-05-31 07:59:04 +02:00
$index = new DDC832JoinedTreeIndex('test', 1, 2);
$this->_em->persist($index);
$this->_em->flush();
2017-05-31 07:59:04 +02:00
$index->name = 'asdf';
$this->_em->flush();
$this->_em->clear();
self::assertEquals($index, $this->_em->find(DDC832JoinedTreeIndex::class, $index->id));
}
/**
* @group DDC-832
*/
public function testQuotedTableJoinedChildRemove()
{
2017-05-31 07:59:04 +02:00
$index = new DDC832JoinedTreeIndex('test', 1, 2);
$this->_em->persist($index);
$this->_em->flush();
$idToBeRemoved = $index->id;
$this->_em->remove($index);
$this->_em->flush();
$this->_em->clear();
self::assertNull($this->_em->find(DDC832JoinedTreeIndex::class, $idToBeRemoved));
2010-10-30 08:43:15 +02:00
}
}
/**
* @Entity
* @Table(name="`LIKE`")
*/
class DDC832Like
{
/**
* @Id @Column(type="integer") @GeneratedValue
2010-10-30 08:43:15 +02:00
*/
public $id;
/** @Column(type="string") */
public $word;
/**
* @version
* @Column(type="integer")
*/
public $version;
public function __construct($word)
{
$this->word = $word;
}
}
/**
* @Entity
* @Table(name="`INDEX`")
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"like" = "DDC832JoinedIndex", "fuzzy" = "DDC832JoinedTreeIndex"})
*/
class DDC832JoinedIndex
{
/**
* @Id @Column(type="integer") @GeneratedValue
2010-10-30 08:43:15 +02:00
*/
public $id;
/** @Column(type="string") */
public $name;
/**
* @version
* @Column(type="integer")
*/
public $version;
public function __construct($name)
{
$this->name = $name;
}
}
/**
* @Entity
* @Table(name="`TREE_INDEX`")
*/
class DDC832JoinedTreeIndex extends DDC832JoinedIndex
{
/** @Column(type="integer") */
public $lft;
2017-05-31 07:59:04 +02:00
2010-10-30 08:43:15 +02:00
/** @Column(type="integer") */
public $rgt;
public function __construct($name, $lft, $rgt)
{
$this->name = $name;
$this->lft = $lft;
$this->rgt = $rgt;
}
}