Passed
Pull Request — main (#2)
by Konstantin
02:13
created

QueryBuilderTest::testSetPage()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Kosv\RandomUser\Tests\Client;
6
7
use Kosv\RandomUser\Client\QueryBuilder;
8
use PHPUnit\Framework\TestCase;
9
10
final class QueryBuilderTest extends TestCase
11
{
12
    public function testBuild(): void
13
    {
14
        $qb = (new QueryBuilder())
15
            ->setIncludeFields(['gender', 'name'])
16
            ->setNationalityFilter(['us'])
17
            ->setMaxResult(100)
18
            ->setPage(3);
19
20
        $this->assertEquals('/?inc=gender,name&nat=us&results=100&page=3', $qb->build()->build());
21
    }
22
23
    public function testSetGenderFilter(): void
24
    {
25
        $qb = new QueryBuilder();
26
27
        $qb->setGenderFilter('female');
28
        $this->assertEquals('/?gender=female', $qb->build()->build());
29
    }
30
31
    public function testSetIncludeFields(): void
32
    {
33
        $qb = new QueryBuilder();
34
35
        $qb->setIncludeFields(['gender', 'name', 'nat']);
36
        $this->assertEquals('/?inc=gender,name,nat', $qb->build()->build());
37
    }
38
39
    public function testSetNationalityFilter(): void
40
    {
41
        $qb = new QueryBuilder();
42
43
        $qb->setNationalityFilter(['us', 'dk', 'gb']);
44
        $this->assertEquals('/?nat=us,dk,gb', $qb->build()->build());
45
    }
46
47
    public function testSetMaxResult(): void
48
    {
49
        $qb = new QueryBuilder();
50
51
        $qb->setMaxResult(100);
52
        $this->assertEquals('/?results=100', $qb->build()->build());
53
    }
54
55
    public function testSetPage(): void
56
    {
57
        $qb = new QueryBuilder();
58
59
        $qb->setPage(3);
60
        $this->assertEquals('/?page=3', $qb->build()->build());
61
    }
62
63
    public function testSetPasswordFormat(): void
64
    {
65
        $qb = new QueryBuilder();
66
67
        $qb->setPasswordFormat(['upper', 'lower', '1-16']);
68
        $this->assertEquals('/?password=upper,lower,1-16', $qb->build()->build());
69
    }
70
}
71