123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <?php
- namespace Doctrine\Tests\ORM\Functional\Ticket;
- use Doctrine\ORM\Mapping\ClassMetadataInfo;
- require_once __DIR__ . '/../../../TestInit.php';
- /**
- * @author asm89
- */
- class DDC1301Test extends \Doctrine\Tests\OrmFunctionalTestCase
- {
- private $userId;
- public function setUp()
- {
- $this->useModelSet('legacy');
- parent::setUp();
- $class = $this->_em->getClassMetadata('Doctrine\Tests\Models\Legacy\LegacyUser');
- $class->associationMappings['_articles']['fetch'] = ClassMetadataInfo::FETCH_EXTRA_LAZY;
- $class->associationMappings['_references']['fetch'] = ClassMetadataInfo::FETCH_EXTRA_LAZY;
- $class->associationMappings['_cars']['fetch'] = ClassMetadataInfo::FETCH_EXTRA_LAZY;
- $this->loadFixture();
- }
- public function tearDown()
- {
- parent::tearDown();
- $class = $this->_em->getClassMetadata('Doctrine\Tests\Models\Legacy\LegacyUser');
- $class->associationMappings['_articles']['fetch'] = ClassMetadataInfo::FETCH_LAZY;
- $class->associationMappings['_references']['fetch'] = ClassMetadataInfo::FETCH_LAZY;
- $class->associationMappings['_cars']['fetch'] = ClassMetadataInfo::FETCH_LAZY;
- }
- public function testCountNotInitializesLegacyCollection()
- {
- $user = $this->_em->find('Doctrine\Tests\Models\Legacy\LegacyUser', $this->userId);
- $queryCount = $this->getCurrentQueryCount();
- $this->assertFalse($user->_articles->isInitialized());
- $this->assertEquals(2, count($user->_articles));
- $this->assertFalse($user->_articles->isInitialized());
- foreach ($user->_articles AS $article) { }
- $this->assertEquals($queryCount + 2, $this->getCurrentQueryCount(), "Expecting two queries to be fired for count, then iteration.");
- }
- public function testCountNotInitializesLegacyCollectionWithForeignIdentifier()
- {
- $user = $this->_em->find('Doctrine\Tests\Models\Legacy\LegacyUser', $this->userId);
- $queryCount = $this->getCurrentQueryCount();
- $this->assertFalse($user->_references->isInitialized());
- $this->assertEquals(2, count($user->_references));
- $this->assertFalse($user->_references->isInitialized());
- foreach ($user->_references AS $reference) { }
- $this->assertEquals($queryCount + 2, $this->getCurrentQueryCount(), "Expecting two queries to be fired for count, then iteration.");
- }
- public function testCountNotInitializesLegacyManyToManyCollection()
- {
- $user = $this->_em->find('Doctrine\Tests\Models\Legacy\LegacyUser', $this->userId);
- $queryCount = $this->getCurrentQueryCount();
- $this->assertFalse($user->_cars->isInitialized());
- $this->assertEquals(3, count($user->_cars));
- $this->assertFalse($user->_cars->isInitialized());
- foreach ($user->_cars AS $reference) { }
- $this->assertEquals($queryCount + 2, $this->getCurrentQueryCount(), "Expecting two queries to be fired for count, then iteration.");
- }
- public function loadFixture()
- {
- $user1 = new \Doctrine\Tests\Models\Legacy\LegacyUser();
- $user1->_username = "beberlei";
- $user1->_name = "Benjamin";
- $user1->_status = "active";
- $user2 = new \Doctrine\Tests\Models\Legacy\LegacyUser();
- $user2->_username = "jwage";
- $user2->_name = "Jonathan";
- $user2->_status = "active";
- $user3 = new \Doctrine\Tests\Models\Legacy\LegacyUser();
- $user3->_username = "romanb";
- $user3->_name = "Roman";
- $user3->_status = "active";
- $this->_em->persist($user1);
- $this->_em->persist($user2);
- $this->_em->persist($user3);
- $article1 = new \Doctrine\Tests\Models\Legacy\LegacyArticle();
- $article1->_topic = "Test";
- $article1->_text = "Test";
- $article1->setAuthor($user1);
- $article2 = new \Doctrine\Tests\Models\Legacy\LegacyArticle();
- $article2->_topic = "Test";
- $article2->_text = "Test";
- $article2->setAuthor($user1);
- $this->_em->persist($article1);
- $this->_em->persist($article2);
- $car1 = new \Doctrine\Tests\Models\Legacy\LegacyCar();
- $car1->_description = "Test1";
- $car2 = new \Doctrine\Tests\Models\Legacy\LegacyCar();
- $car2->_description = "Test2";
- $car3 = new \Doctrine\Tests\Models\Legacy\LegacyCar();
- $car3->_description = "Test3";
- $user1->addCar($car1);
- $user1->addCar($car2);
- $user1->addCar($car3);
- $user2->addCar($car1);
- $user3->addCar($car1);
- $this->_em->persist($car1);
- $this->_em->persist($car2);
- $this->_em->persist($car3);
- $this->_em->flush();
- $detail1 = new \Doctrine\Tests\Models\Legacy\LegacyUserReference($user1, $user2, "foo");
- $detail2 = new \Doctrine\Tests\Models\Legacy\LegacyUserReference($user1, $user3, "bar");
- $this->_em->persist($detail1);
- $this->_em->persist($detail2);
- $this->_em->flush();
- $this->_em->clear();
- $this->userId = $user1->getId();
- }
- }
|