ReferenceTest::testLazyLoadReference()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 20
rs 9.6
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Doctrine\Tests\ODM\CouchDB\Functional;
4
5
class ReferenceTest extends \Doctrine\Tests\ODM\CouchDB\CouchDBFunctionalTestCase
6
{
7
    public function testReferenceUsesIdentityMap()
8
    {
9
        $dm = $this->createDocumentManager();
10
        $user1 = $dm->getReference('Doctrine\Tests\Models\CMS\CmsUser', 1);
11
        $user2 = $dm->getReference('Doctrine\Tests\Models\CMS\CmsUser', 1);
12
13
        $this->assertSame($user1, $user2);
14
    }
15
16
    public function testInitializeUnknownReferenceThrowsException()
17
    {
18
        $dm = $this->createDocumentManager();
19
        $user1 = $dm->getReference('Doctrine\Tests\Models\CMS\CmsUser', 1);
20
21
        $this->setExpectedException('Doctrine\ODM\CouchDB\DocumentNotFoundException');
22
        $user1->getUsername();
23
    }
24
25
    public function testLazyLoadReference()
26
    {
27
        $user = new \Doctrine\Tests\Models\CMS\CmsUser();
28
        $user->username = "beberlei";
29
        $user->name = "Benjamin";
30
        $user->status = "active";
31
32
        $dm = $this->createDocumentManager();
33
        $dm->persist($user);
34
        $dm->flush();
35
        $dm->clear();
36
37
        $lazyUser = $dm->getReference('Doctrine\Tests\Models\CMS\CmsUser', $user->id);
38
        $this->assertFalse($lazyUser->__isInitialized__);
39
40
        // Trigger lazyload
41
        $lazyUser->getUsername();
42
43
        $this->assertTrue($lazyUser->__isInitialized__);
44
    }
45
}