Passed
Push — master ( 9dbeef...fdd166 )
by Petr
07:45
created

SimplifiedPagerTest   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 32
c 2
b 0
f 0
dl 0
loc 66
rs 10
wmc 7
1
<?php
2
3
namespace BasicTests;
4
5
6
use CommonTestClass;
7
use kalanis\kw_paging\Render;
8
use MockLink;
9
10
11
class SimplifiedPagerTest extends CommonTestClass
12
{
13
    /**
14
     * @param Render\SimplifiedPager\CurrentPage|Render\SimplifiedPager\AnotherPage|Render\SimplifiedPager\DisabledPage $class
15
     * @param int $page
16
     * @param string $code
17
     * @dataProvider simpleProvider
18
     */
19
    public function testPages($class, int $page, string $code): void
20
    {
21
        $link = new MockLink();
22
        $link->setPageNumber($page);
23
        $class->setData($link, strval($page));
24
        $this->assertEquals($code . PHP_EOL, $class->render());
25
    }
26
27
    public function simpleProvider()
28
    {
29
        return [
30
            [new Render\SimplifiedPager\CurrentPage(), 4, '<li class="active"><a href="/foo/bar/4">4</a></li>'],
31
            [new Render\SimplifiedPager\CurrentPage(), 1, '<li class="active"><a href="/foo/bar/">1</a></li>'],
32
            [new Render\SimplifiedPager\AnotherPage(), 4, '<li><a href="/foo/bar/4">4</a></li>'],
33
            [new Render\SimplifiedPager\AnotherPage(), 1, '<li><a href="/foo/bar/">1</a></li>'],
34
            [new Render\SimplifiedPager\DisabledPage(), 4, '<li class="disabled"><span>4</span></li>'],
35
            [new Render\SimplifiedPager\DisabledPage(), 1, '<li class="disabled"><span>1</span></li>'],
36
        ];
37
    }
38
39
    public function testInstance(): void
40
    {
41
        $position = $this->getPositions();
42
        $position->getPager()->setActualPage(4);
43
        $pager = new Render\SimplifiedPager($position, new MockLink());
44
        $this->assertInstanceOf('\kalanis\kw_pager\Interfaces\IPager', $pager->getPager());
45
    }
46
47
    public function testMiddle(): void
48
    {
49
        $position = $this->getPositions();
50
        $position->getPager()->setActualPage(4);
51
        $pager = new Render\SimplifiedPager($position, new MockLink());
52
        $this->assertNotEmpty(strval($pager));
53
    }
54
55
    public function testStart(): void
56
    {
57
        $position = $this->getPositions();
58
        $position->getPager()->setActualPage($position->getFirstPage());
59
        $pager = new Render\SimplifiedPager($position, new MockLink());
60
        $this->assertNotEmpty(strval($pager));
61
    }
62
63
    public function testEnd(): void
64
    {
65
        $position = $this->getPositions();
66
        $position->getPager()->setActualPage($position->getLastPage());
67
        $pager = new Render\SimplifiedPager($position, new MockLink());
68
        $this->assertNotEmpty(strval($pager));
69
    }
70
71
    public function testNothing(): void
72
    {
73
        $position = $this->getPositions();
74
        $position->getPager()->setMaxResults(10)->setActualPage($position->getFirstPage());
75
        $pager = new Render\SimplifiedPager($position, new MockLink());
76
        $this->assertEmpty(strval($pager));
77
    }
78
}
79