Passed
Pull Request — 2.7 (#8055)
by Matthias
06:49
created

GH8055Test::testNumericDescriminatorColumn()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 12
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\Tests\ORM\Functional\Ticket;
6
7
use Doctrine\Tests\OrmFunctionalTestCase;
8
9
/**
10
 * @group GH8055
11
 */
12
final class GH8055Test extends OrmFunctionalTestCase
13
{
14
    /**
15
     * {@inheritDoc}
16
     */
17
    protected function setUp() : void
18
    {
19
        parent::setUp();
20
21
        $this->setUpEntitySchema([
22
            GH8055BaseClass::class,
23
            GH8055SubClass::class,
24
        ]);
25
    }
26
27
    public function testNumericDescriminatorColumn() : void
28
    {
29
        $entity = new GH8055SubClass();
30
        $entity->value = 'test';
31
        $this->_em->persist($entity);
32
        $this->_em->flush();
33
        $this->_em->clear();
34
35
        $repository = $this->_em->getRepository(GH8055SubClass::class);
36
        $hydrated = $repository->find($entity->id);
37
38
        self::assertSame('test', $hydrated->value);
39
    }
40
}
41
42
/**
43
 * @Entity()
44
 * @Table(name="gh8055")
45
 * @InheritanceType("JOINED")
46
 * @DiscriminatorColumn(name="discr", type="integer")
47
 * @DiscriminatorMap({
48
 *     "1" = GH8055BaseClass::class,
49
 *     "2" = GH8055SubClass::class
50
 * })
51
 */
52
class GH8055BaseClass
53
{
54
    /**
55
     * @Id @GeneratedValue
56
     * @Column(type="integer")
57
     */
58
    public $id;
59
}
60
61
/**
62
 * @Entity()
63
 */
64
class GH8055SubClass extends GH8055BaseClass
65
{
66
    /**
67
     * @Column(name="test", type="string")
68
     * @var string
69
     */
70
    public $value;
71
}
72