Passed
Push — codeclean ( dc06b1...eb864a )
by Paweł
02:30
created

UrlTest::testToArray()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 12
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 18
rs 9.8666
1
<?php
2
declare(strict_types=1);
3
4
namespace Wszetko\Sitemap\Tests;
5
6
use DateTime;
7
use PHPUnit\Framework\TestCase;
8
use Wszetko\Sitemap\Items;
9
10
/**
11
 * Class UrlTest
12
 *
13
 * @package Wszetko\Sitemap\Tests
14
 *
15
 * @todo    : Extensions Test
16
 */
17
class UrlTest extends TestCase
18
{
19
    public function testConstructor()
20
    {
21
        $url = new Items\Url('test');
22
23
        $this->assertInstanceOf(Items\Url::class, $url);
24
    }
25
26
    public function testDomain()
27
    {
28
        $url = new Items\Url('test');
29
        $url->setDomain('https://example.com');
30
31
        $this->assertEquals('https://example.com', $url->getDomain());
32
33
        $url->setDomain('https://example.com/');
34
35
        $this->assertEquals('https://example.com', $url->getDomain());
36
    }
37
38
    public function testGetLoc()
39
    {
40
        $url = new Items\Url('test');
41
        $url->setDomain('https://example.com');
42
43
        $this->assertEquals('https://example.com/test', $url->getLoc());
44
    }
45
46
    public function testLastMod()
47
    {
48
        date_default_timezone_set('Europe/London');
49
50
        $url = new Items\Url('test');
51
        $url->setDomain('https://example.com');
52
53
        $url->setLastMod(new DateTime('2013-11-16'));
54
        $this->assertEquals('2013-11-16', $url->getLastMod());
55
56
        $url->setLastMod(new DateTime('2013-11-16 19:00'));
57
        $this->assertEquals('2013-11-16T19:00:00+00:00', $url->getLastMod());
58
    }
59
60
    public function testChangeFreq()
61
    {
62
        $url = new Items\Url('test');
63
        $url->setDomain('https://example.com');
64
65
        $url->setChangeFreq('invalid');
66
        $this->assertEquals(null, $url->getChangeFreq());
67
68
        $url->setChangeFreq('always');
69
        $this->assertEquals('always', $url->getChangeFreq());
70
    }
71
72
    public function testPriority()
73
    {
74
        $url = new Items\Url('test');
75
        $url->setDomain('https://example.com');
76
77
        $url->setPriority(1);
78
        $this->assertEquals('1.0', $url->getPriority());
79
80
        $url->setPriority(0);
81
        $this->assertEquals(0.0, $url->getPriority());
82
83
        $url->setPriority(.5);
84
        $this->assertEquals('0.5', $url->getPriority());
85
86
        $url->setPriority(2);
87
        $this->assertEquals(null, $url->getPriority());
88
89
        $url->setPriority(-1);
90
        $this->assertEquals(null, $url->getPriority());
91
    }
92
93
    public function testToArray()
94
    {
95
        date_default_timezone_set('Europe/London');
96
97
        $url = new Items\Url('test');
98
        $url->setDomain('https://example.com');
99
        $url->setLastMod(new DateTime('2013-11-16'));
100
        $url->setChangeFreq('always');
101
        $url->setPriority(1);
102
103
        $expectedResult = [
104
            'loc' => 'https://example.com/test',
105
            'lastmod' => '2013-11-16',
106
            'changefreq' => 'always',
107
            'priority' => '1.0'
108
        ];
109
110
        $this->assertEquals($expectedResult, $url->toArray());
111
    }
112
}
113