Passed
Push — master ( 108a4e...cc9e52 )
by Petr
10:08
created

BasicTest::testResults()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 6
c 0
b 0
f 0
dl 0
loc 9
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace BasicTests;
4
5
6
use CommonTestClass;
7
use kalanis\kw_pager\BasicPager;
8
use kalanis\kw_pager\DefaultSettings;
9
use kalanis\kw_pager\Interfaces\IActualInput;
10
use kalanis\kw_pager\InputPager;
11
12
13
class BasicTest extends CommonTestClass
14
{
15
    public function testBasic(): void
16
    {
17
        $pager = new BasicPager();
18
        $pager->setMaxResults(75)->setLimit(12)->setActualPage(4);
19
20
        $this->assertTrue($pager->pageExists(6));
21
        $this->assertTrue($pager->pageExists(7));
22
        $this->assertFalse($pager->pageExists(8));
23
        $this->assertFalse($pager->pageExists(-2));
24
        $this->assertEquals(7, $pager->getPagesCount());
25
26
        $this->assertEquals(75, $pager->getMaxResults());
27
        $this->assertEquals(12, $pager->getLimit());
28
        $this->assertEquals(4, $pager->getActualPage());
29
        $this->assertEquals(36, $pager->getOffset());
30
31
        // fun begins
32
        $pager->setActualPage(1); // okay
33
        $this->assertEquals(0, $pager->getOffset());
34
        $pager->setActualPage(2);
35
        $this->assertEquals(12, $pager->getOffset());
36
        $pager->setActualPage(0); // outside - too low
37
        $this->assertEquals(0, $pager->getOffset());
38
        $pager->setActualPage(9); // outside - too high
39
        $this->assertEquals(0, $pager->getOffset());
40
41
        // change limits
42
        $pager->setLimit(5);
43
        $this->assertEquals(15, $pager->getPagesCount());
44
        $pager->setActualPage(9);
45
        $this->assertEquals(40, $pager->getOffset());
46
    }
47
48
    public function testResults(): void
49
    {
50
        $pager = new BasicPager();
51
        $pager->setLimit(12);
52
        $pager->setMaxResults(0);
53
        $pager->setActualPage(7);
54
55
        $this->assertEquals(1, $pager->getPagesCount());
56
        $this->assertEquals(0, $pager->getOffset());
57
    }
58
59
    public function testInput(): void
60
    {
61
        $pager = new InputPager(new DefaultSettings(12, 75), new MockInput());
62
63
        $this->assertTrue($pager->pageExists(6));
64
        $this->assertTrue($pager->pageExists(7));
65
        $this->assertFalse($pager->pageExists(8));
66
        $this->assertFalse($pager->pageExists(-2));
67
        $this->assertEquals(7, $pager->getPagesCount());
68
69
        $this->assertEquals(75, $pager->getMaxResults());
70
        $this->assertEquals(12, $pager->getLimit());
71
        $this->assertEquals(4, $pager->getActualPage());
72
        $this->assertEquals(36, $pager->getOffset());
73
    }
74
}
75
76
77
class MockInput implements IActualInput
78
{
79
    public function getActualPage(): int
80
    {
81
        return 4;
82
    }
83
}