ReferenceTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 3
c 0
b 0
f 0
lcom 1
cbo 3
dl 0
loc 41
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testReferenceUsesIdentityMap() 0 8 1
A testInitializeUnknownReferenceThrowsException() 0 8 1
A testLazyLoadReference() 0 20 1
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
}