Completed
Push — master ( 77ee69...2c1ebc )
by Marco
14:18
created

GH6402Test::testFindWithSubClass()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 0
1
<?php
2
3
namespace Doctrine\Tests\ORM\Functional\Ticket;
4
5
use Doctrine\Tests\Models\Quote\Address;
6
use Doctrine\Tests\Models\Quote\City;
7
use Doctrine\Tests\Models\Quote\FullAddress;
8
use Doctrine\Tests\Models\Quote\Group;
9
use Doctrine\Tests\Models\Quote\Phone;
10
use Doctrine\Tests\Models\Quote\User;
11
use Doctrine\Tests\OrmFunctionalTestCase;
12
13
/**
14
 * @group 6402
15
 */
16
class GH6402Test extends OrmFunctionalTestCase
17
{
18
    protected function setUp()
19
    {
20
        $this->useModelSet('quote');
21
22
        parent::setUp();
23
    }
24
25
    public function testFind()
26
    {
27
        $id = $this->createAddress();
28
29
        $address = $this->_em->find(Address::class, $id);
30
        self::assertNotNull($address->user);
31
    }
32
33
    public function testQuery()
34
    {
35
        $id = $this->createAddress();
36
37
        $addresses = $this->_em->createQuery('SELECT a FROM ' . Address::class . ' a WHERE a.id = :id')
38
            ->setParameter('id', $id)
39
            ->getResult();
40
41
        self::assertCount(1, $addresses);
42
        self::assertNotNull($addresses[0]->user);
43
    }
44
45
    public function testFindWithSubClass()
46
    {
47
        $id = $this->createFullAddress();
48
49
        $address = $this->_em->find(FullAddress::class, $id);
50
        self::assertNotNull($address->user);
51
    }
52
53
    public function testQueryWithSubClass()
54
    {
55
        $id = $this->createFullAddress();
56
57
        $addresses = $this->_em->createQuery('SELECT a FROM ' . FullAddress::class . ' a WHERE a.id = :id')
58
            ->setParameter('id', $id)
59
            ->getResult();
60
61
        self::assertCount(1, $addresses);
62
        self::assertNotNull($addresses[0]->user);
63
    }
64
65
    private function createAddress()
66
    {
67
        $address = new Address();
68
        $address->zip = 'bar';
69
70
        $this->persistAddress($address);
71
72
        return $address->id;
73
    }
74
75
    private function createFullAddress()
76
    {
77
        $address = new FullAddress();
78
        $address->zip = 'bar';
79
        $address->city = new City('London');
80
81
        $this->persistAddress($address);
82
83
        return $address->id;
84
    }
85
86
    private function persistAddress(Address $address)
87
    {
88
        $user = new User();
89
        $user->name = "foo";
90
        $user->setAddress($address);
91
92
        $this->_em->persist($user);
93
        $this->_em->flush();
94
        $this->_em->clear();
95
    }
96
}
97