Passed
Push — master ( 727475...c2e18b )
by Igor
04:07
created

LawyerTest::getPropertyValue()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 4
nc 1
nop 2
dl 0
loc 7
rs 10
c 1
b 0
f 0
1
<?php
2
3
namespace SomeWork\Minjust\Tests\Unit\Entity;
4
5
use ReflectionObject;
6
use PHPUnit\Framework\TestCase;
7
use SomeWork\Minjust\Entity\Lawyer;
8
9
/**
10
 * @covers \SomeWork\Minjust\Entity\Lawyer
11
 */
12
class LawyerTest extends TestCase
13
{
14
    public function testEmpty(): Lawyer
15
    {
16
        $lawyer = new Lawyer();
17
        $this->assertIsString($this->getPropertyValue($lawyer, 'fullName'));
18
        $this->assertIsString($this->getPropertyValue($lawyer, 'registerNumber'));
19
        $this->assertIsString($this->getPropertyValue($lawyer, 'certificateNumber'));
20
        $this->assertIsString($this->getPropertyValue($lawyer, 'status'));
21
        $this->assertIsString($this->getPropertyValue($lawyer, 'territorialSubject'));
22
        $this->assertIsString($this->getPropertyValue($lawyer, 'url'));
23
24
        return $lawyer;
25
    }
26
27
    protected function getPropertyValue(object $object, string $property)
28
    {
29
        $ref = new ReflectionObject($object);
30
        $property = $ref->getProperty($property);
31
        $property->setAccessible(true);
32
33
        return $property->getValue($object);
34
    }
35
36
    /**
37
     * @depends testEmpty
38
     *
39
     * @param \SomeWork\Minjust\Entity\Lawyer $lawyer
40
     *
41
     * @return \SomeWork\Minjust\Entity\Lawyer
42
     */
43
    public function testSet(Lawyer $lawyer): Lawyer
44
    {
45
        $lawyer
46
            ->setUrl('testUrl')
47
            ->setFullName('testFullName')
48
            ->setStatus('testStatus')
49
            ->setRegisterNumber('testRegisterNumber')
50
            ->setCertificateNumber('testCertificateNumber')
51
            ->setTerritorialSubject('testTerritorialSubject');
52
53
        $this->assertEquals('testUrl', $this->getPropertyValue($lawyer, 'url'));
54
        $this->assertEquals('testFullName', $this->getPropertyValue($lawyer, 'fullName'));
55
        $this->assertEquals('testStatus', $this->getPropertyValue($lawyer, 'status'));
56
        $this->assertEquals('testRegisterNumber', $this->getPropertyValue($lawyer, 'registerNumber'));
57
        $this->assertEquals('testCertificateNumber', $this->getPropertyValue($lawyer, 'certificateNumber'));
58
        $this->assertEquals('testTerritorialSubject', $this->getPropertyValue($lawyer, 'territorialSubject'));
59
60
        return $lawyer;
61
    }
62
63
    /**
64
     * @depends testSet
65
     *
66
     * @param \SomeWork\Minjust\Entity\Lawyer $lawyer
67
     */
68
    public function testGet(Lawyer $lawyer): void
69
    {
70
        $this->assertEquals('testUrl', $lawyer->getUrl());
71
        $this->assertEquals('testFullName', $lawyer->getFullName());
72
        $this->assertEquals('testStatus', $lawyer->getStatus());
73
        $this->assertEquals('testRegisterNumber', $lawyer->getRegisterNumber());
74
        $this->assertEquals('testCertificateNumber', $lawyer->getCertificateNumber());
75
        $this->assertEquals('testTerritorialSubject', $lawyer->getTerritorialSubject());
76
    }
77
}
78