Passed
Pull Request — master (#12)
by Sergey
02:32
created

GetAreasTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
eloc 17
c 1
b 0
f 0
dl 0
loc 39
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 4 1
A testGetAreas() 0 5 1
A assertIsArea() 0 12 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SergeyNezbritskiy\NovaPoshta\Tests\Integration\Models\Address;
6
7
use PHPUnit\Framework\TestCase;
8
use SergeyNezbritskiy\NovaPoshta\Models\Address;
9
use SergeyNezbritskiy\NovaPoshta\NovaPoshtaApiException;
10
use SergeyNezbritskiy\NovaPoshta\Tests\UsesConnectionTrait;
11
12
class GetAreasTest extends TestCase
13
{
14
    use UsesConnectionTrait;
15
16
    private Address $model;
17
18
    protected function setUp(): void
19
    {
20
        $connection = $this->getConnection();
21
        $this->model = new Address($connection);
22
    }
23
24
    /**
25
     * @return void
26
     * @throws NovaPoshtaApiException
27
     */
28
    public function testGetAreas(): void
29
    {
30
        $actualResult = $this->model->getAreas();
31
        $this->assertNotEmpty($actualResult);
32
        $this->assertIsArea(array_shift($actualResult));
33
    }
34
35
    /**
36
     * @param array $area
37
     * @return void
38
     */
39
    private function assertIsArea(array $area): void
40
    {
41
        $expectedKeys = [
42
            'Ref',
43
            'AreasCenter',
44
            'DescriptionRu',
45
            'Description',
46
        ];
47
        $actualKeys = array_keys($area);
48
        sort($actualKeys);
49
        sort($expectedKeys);
50
        $this->assertSame($expectedKeys, $actualKeys);
51
    }
52
}
53