FindRequestTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 117
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 59
c 1
b 0
f 0
dl 0
loc 117
rs 10
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetFormData() 0 13 1
A testSet() 0 22 1
A testGet() 0 27 1
A testEmpty() 0 17 1
A getPropertyValue() 0 8 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SomeWork\Minjust\Tests\Unit;
6
7
use PHPUnit\Framework\TestCase;
8
use ReflectionObject;
9
use SomeWork\Minjust\FindRequest;
10
11
/**
12
 * @covers \SomeWork\Minjust\FindRequest
13
 * @coversDefaultClass FindRequest
14
 */
15
class FindRequestTest extends TestCase
16
{
17
    public function testEmpty(): FindRequest
18
    {
19
        $request = new FindRequest();
20
21
        $this->assertIsString($this->getPropertyValue($request, 'fullName'));
22
        $this->assertIsString($this->getPropertyValue($request, 'registerNumber'));
23
        $this->assertIsString($this->getPropertyValue($request, 'certificateNumber'));
24
25
        $this->assertNull($this->getPropertyValue($request, 'status'));
26
        $this->assertNull($this->getPropertyValue($request, 'formOfLegalPractice'));
27
        $this->assertNull($this->getPropertyValue($request, 'territorialSubject'));
28
29
        $this->assertIsBool($this->getPropertyValue($request, 'fullData'));
30
31
        $this->assertEquals(0, $this->getPropertyValue($request, 'territorialSubject'));
32
33
        return $request;
34
    }
35
36
    protected function getPropertyValue(object $object, string $property)
37
    {
38
        $ref = new ReflectionObject($object);
39
        /** @noinspection PhpUnhandledExceptionInspection */
40
        $property = $ref->getProperty($property);
41
        $property->setAccessible(true);
42
43
        return $property->getValue($object);
44
    }
45
46
    /**
47
     * @depends testEmpty
48
     *
49
     * @param FindRequest $request
50
     *
51
     * @return FindRequest
52
     */
53
    public function testSet(FindRequest $request): FindRequest
54
    {
55
        $request
56
            ->setTerritorialSubject('01')
57
            ->setCertificateNumber('testCertificateNumber')
58
            ->setRegisterNumber('testRegisterNumber')
59
            ->setStatus(1)
60
            ->setFullName('testFullName')
61
            ->setFullData()
62
            ->setFormOfLegalPractice(2)
63
            ->setPage(123);
64
65
        $this->assertEquals(1, $this->getPropertyValue($request, 'territorialSubject'));
66
        $this->assertEquals('testCertificateNumber', $this->getPropertyValue($request, 'certificateNumber'));
67
        $this->assertEquals('testRegisterNumber', $this->getPropertyValue($request, 'registerNumber'));
68
        $this->assertEquals(1, $this->getPropertyValue($request, 'status'));
69
        $this->assertEquals('testFullName', $this->getPropertyValue($request, 'fullName'));
70
        $this->assertEquals(true, $this->getPropertyValue($request, 'fullData'));
71
        $this->assertEquals(2, $this->getPropertyValue($request, 'formOfLegalPractice'));
72
        $this->assertEquals(123, $this->getPropertyValue($request, 'page'));
73
74
        return $request;
75
    }
76
77
    /**
78
     * @depends testSet
79
     *
80
     * @param FindRequest $request
81
     *
82
     * @return FindRequest
83
     */
84
    public function testGet(FindRequest $request): FindRequest
85
    {
86
        $this->assertEquals('01', $request->getTerritorialSubject());
87
        $this->assertIsString($request->getTerritorialSubject());
88
89
        $this->assertEquals('testCertificateNumber', $request->getCertificateNumber());
90
        $this->assertIsString($request->getCertificateNumber());
91
92
        $this->assertEquals('testRegisterNumber', $request->getRegisterNumber());
93
        $this->assertIsString($request->getRegisterNumber());
94
95
        $this->assertEquals(1, $request->getStatus());
96
        $this->assertIsInt($request->getStatus());
97
98
        $this->assertEquals('testFullName', $request->getFullName());
99
        $this->assertIsString($request->getFullName());
100
101
        $this->assertEquals(true, $request->isFullData());
102
        $this->assertIsBool($request->isFullData());
103
104
        $this->assertEquals(2, $request->getFormOfLegalPractice());
105
        $this->assertIsInt($request->getFormOfLegalPractice());
106
107
        $this->assertEquals(123, $request->getPage());
108
        $this->assertIsInt($request->getPage());
109
110
        return $request;
111
    }
112
113
    /**
114
     * @depends testSet
115
     * @covers ::getFormData
116
     *
117
     * @param FindRequest $findRequest
118
     */
119
    public function testGetFormData(FindRequest $findRequest): void
120
    {
121
        $request = [
122
            FindRequest::FULL_NAME              => $findRequest->getFullName(),
123
            FindRequest::REGISTER_NUMBER        => $findRequest->getRegisterNumber(),
124
            FindRequest::CERTIFICATE_NUMBER     => $findRequest->getCertificateNumber(),
125
            FindRequest::STATUS                 => $findRequest->getStatus(),
126
            FindRequest::FORM_OF_LEGAL_PRACTICE => $findRequest->getFormOfLegalPractice(),
127
            FindRequest::TERRITORIAL_SUBJECT    => $findRequest->getTerritorialSubject(),
128
            FindRequest::PAGE                   => $findRequest->getPage() - 1,
129
        ];
130
131
        $this->assertEquals($request, $findRequest->getFormData());
132
    }
133
}
134