WebpageDTOArrayTest::testCount()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 4
nc 1
nop 2
dl 0
loc 8
rs 10
c 1
b 0
f 0
1
<?php
2
/**
3
 * File: WebpageDTOArrayTest.php
4
 *
5
 * @author      Maciej Sławik <[email protected]>
6
 * Github:      https://github.com/maciejslawik
7
 */
8
9
use MSlwk\Otomoto\Middleware\Webpage\Data\WebpageDTO;
10
use MSlwk\Otomoto\Middleware\Webpage\Data\WebpageDTOArray;
11
use PHPUnit\Framework\TestCase;
12
13
/**
14
 * Class WebpageDTOArrayTest
15
 * @package MSlwk\Otomoto\Middleware\Test\Unit\Webpage\Data
16
 */
17
class WebpageDTOArrayTest extends TestCase
18
{
19
    /**
20
     * @return array
21
     */
22
    public function htmlsDataProvider()
23
    {
24
        return [
25
            [
26
                'html1',
27
                'html132'
28
            ],
29
            [
30
                'html15',
31
                'html11'
32
            ],
33
            [
34
                'html1x',
35
                'html1566'
36
            ],
37
        ];
38
    }
39
40
    /**
41
     * @test
42
     * @dataProvider htmlsDataProvider
43
     * @param $firstHtml
44
     * @param $secondHtml
45
     */
46
    public function testGetHtmlsAddedViaConstructor($firstHtml, $secondHtml)
47
    {
48
        $firstHtmlDTO = new WebpageDTO($firstHtml);
49
        $secondHtmlDTO = new WebpageDTO($secondHtml);
50
51
        $webpageDTOArray = new WebpageDTOArray($firstHtmlDTO, $secondHtmlDTO);
52
53
        $this->assertEquals($firstHtml, $webpageDTOArray->get(0)->getHtml());
54
        $this->assertEquals($secondHtml, $webpageDTOArray->get(1)->getHtml());
55
    }
56
57
    /**
58
     * @test
59
     * @dataProvider htmlsDataProvider
60
     * @param $firstHtml
61
     * @param $secondHtml
62
     */
63
    public function testGetHtmlsAddedViaAdd($firstHtml, $secondHtml)
64
    {
65
        $firstHtmlDTO = new WebpageDTO($firstHtml);
66
        $secondHtmlDTO = new WebpageDTO($secondHtml);
67
68
        $webpageDTOArray = new WebpageDTOArray();
69
        $webpageDTOArray->add($firstHtmlDTO);
70
        $webpageDTOArray->add($secondHtmlDTO);
71
72
        $this->assertEquals($firstHtml, $webpageDTOArray->get(0)->getHtml());
73
        $this->assertEquals($secondHtml, $webpageDTOArray->get(1)->getHtml());
74
    }
75
76
    /**
77
     * @test
78
     * @dataProvider htmlsDataProvider
79
     * @param $firstHtml
80
     * @param $secondHtml
81
     */
82
    public function testGetHtmlsAddedViaSet($firstHtml, $secondHtml)
83
    {
84
        $firstHtmlDTO = new WebpageDTO($firstHtml);
85
        $secondHtmlDTO = new WebpageDTO($secondHtml);
86
87
        $webpageDTOArray = new WebpageDTOArray();
88
        $webpageDTOArray->set(4, $firstHtmlDTO);
89
        $webpageDTOArray->set(1, $secondHtmlDTO);
90
91
        $this->assertEquals($firstHtml, $webpageDTOArray->get(4)->getHtml());
92
        $this->assertEquals($secondHtml, $webpageDTOArray->get(1)->getHtml());
93
    }
94
95
    /**
96
     * @test
97
     * @dataProvider htmlsDataProvider
98
     * @param $firstHtml
99
     * @param $secondHtml
100
     */
101
    public function testCurrent($firstHtml, $secondHtml)
102
    {
103
        $firstHtmlDTO = new WebpageDTO($firstHtml);
104
        $secondHtmlDTO = new WebpageDTO($secondHtml);
105
106
        $webpageDTOArray = new WebpageDTOArray($firstHtmlDTO, $secondHtmlDTO);
107
108
        $this->assertEquals($firstHtml, $webpageDTOArray->current()->getHtml());
109
        $webpageDTOArray->next();
110
        $this->assertEquals($secondHtml, $webpageDTOArray->current()->getHtml());
111
    }
112
113
    /**
114
     * @test
115
     * @dataProvider htmlsDataProvider
116
     * @param $firstHtml
117
     * @param $secondHtml
118
     */
119
    public function testCount($firstHtml, $secondHtml)
120
    {
121
        $firstHtmlDTO = new WebpageDTO($firstHtml);
122
        $secondHtmlDTO = new WebpageDTO($secondHtml);
123
124
        $webpageDTOArray = new WebpageDTOArray($firstHtmlDTO, $secondHtmlDTO);
125
126
        $this->assertEquals(2, $webpageDTOArray->count());
127
    }
128
}