Failed Conditions
Push — master ( 62de42...7c9ab7 )
by Marco
29s queued 18s
created

Tests/ORM/Functional/Ticket/DDC142Test.php (1 issue)

Labels
Severity
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\Tests\ORM\Functional\Ticket;
6
7
use Doctrine\Tests\Models\Quote\Address;
8
use Doctrine\Tests\Models\Quote\User;
9
use Doctrine\Tests\OrmFunctionalTestCase;
10
11
/**
12
 * @group DDC-1845
13
 * @group DDC-142
14
 */
15
class DDC142Test extends OrmFunctionalTestCase
16
{
17
    protected function setUp() : void
18
    {
19
        $this->useModelSet('quote');
20
21
        parent::setUp();
22
    }
23
24
    public function testCreateRetrieveUpdateDelete() : void
25
    {
26
        $user       = new User();
27
        $user->name = 'FabioBatSilva';
28
        $this->em->persist($user);
29
30
        $address      = new Address();
31
        $address->zip = '12345';
32
        $this->em->persist($address);
33
34
        $this->em->flush();
35
36
        $addressRef = $this->em->getReference(Address::class, $address->getId());
37
38
        $user->setAddress($addressRef);
0 ignored issues
show
It seems like $addressRef can also be of type null; however, parameter $address of Doctrine\Tests\Models\Quote\User::setAddress() does only seem to accept Doctrine\Tests\Models\Quote\Address, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

38
        $user->setAddress(/** @scrutinizer ignore-type */ $addressRef);
Loading history...
39
40
        $this->em->flush();
41
        $this->em->clear();
42
43
        $id = $user->id;
44
        self::assertNotNull($id);
45
46
        $user    = $this->em->find(User::class, $id);
47
        $address = $user->getAddress();
48
49
        self::assertInstanceOf(User::class, $user);
50
        self::assertInstanceOf(Address::class, $user->getAddress());
51
52
        self::assertEquals('FabioBatSilva', $user->name);
53
        self::assertEquals('12345', $address->zip);
54
55
        $user->name    = 'FabioBatSilva1';
56
        $user->address = null;
57
58
        $this->em->persist($user);
59
        $this->em->remove($address);
60
        $this->em->flush();
61
        $this->em->clear();
62
63
        $user = $this->em->find(User::class, $id);
64
        self::assertInstanceOf(User::class, $user);
65
        self::assertNull($user->getAddress());
66
67
        self::assertEquals('FabioBatSilva1', $user->name);
68
69
        $this->em->remove($user);
70
        $this->em->flush();
71
        $this->em->clear();
72
73
        self::assertNull($this->em->find(User::class, $id));
74
    }
75
}
76