Passed
Push — main ( 036cf0...c6d071 )
by Konstantin
02:04
created

QueryBuilderTest::testSetExcludeFields()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
c 1
b 0
f 0
dl 0
loc 6
rs 10
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 testSetExcludeFields(): void
24
    {
25
        $qb = new QueryBuilder();
26
27
        $qb->setExcludeFields(['gender', 'name', 'nat']);
28
        $this->assertEquals('/?exc=gender,name,nat', $qb->build()->build());
29
    }
30
31
    public function testSetGenderFilter(): void
32
    {
33
        $qb = new QueryBuilder();
34
35
        $qb->setGenderFilter('female');
36
        $this->assertEquals('/?gender=female', $qb->build()->build());
37
    }
38
39
    public function testSetIncludeFields(): void
40
    {
41
        $qb = new QueryBuilder();
42
43
        $qb->setIncludeFields(['gender', 'name', 'nat']);
44
        $this->assertEquals('/?inc=gender,name,nat', $qb->build()->build());
45
    }
46
47
    public function testSetNationalityFilter(): void
48
    {
49
        $qb = new QueryBuilder();
50
51
        $qb->setNationalityFilter(['us', 'dk', 'gb']);
52
        $this->assertEquals('/?nat=us,dk,gb', $qb->build()->build());
53
    }
54
55
    public function testSetMaxResult(): void
56
    {
57
        $qb = new QueryBuilder();
58
59
        $qb->setMaxResult(100);
60
        $this->assertEquals('/?results=100', $qb->build()->build());
61
    }
62
63
    public function testSetPage(): void
64
    {
65
        $qb = new QueryBuilder();
66
67
        $qb->setPage(3);
68
        $this->assertEquals('/?page=3', $qb->build()->build());
69
    }
70
71
    public function testSetPasswordFormat(): void
72
    {
73
        $qb = new QueryBuilder();
74
75
        $qb->setPasswordFormat(['upper', 'lower', '1-16']);
76
        $this->assertEquals('/?password=upper,lower,1-16', $qb->build()->build());
77
    }
78
}
79