Completed
Push — master ( 72b670...3b819e )
by Sam
05:26 queued 03:37
created

NaptrTest   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 95
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 7
lcom 1
cbo 3
dl 0
loc 95
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A getDataProvider() 0 10 1
A testGetType() 0 5 1
A testGetTypeCode() 0 5 1
A testToText() 0 12 1
A testToAndFromWire() 0 19 1
A testFromText() 0 12 1
A testFactory() 0 11 1
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of Badcow DNS Library.
7
 *
8
 * (c) Samuel Williams <[email protected]>
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace Badcow\DNS\Tests\Rdata;
15
16
use Badcow\DNS\Rdata\Factory;
17
use Badcow\DNS\Rdata\NAPTR;
18
use PHPUnit\Framework\TestCase;
19
20
class NaptrTest extends TestCase
21
{
22
    public function getDataProvider(): array
23
    {
24
        return [
25
            //Text                                                 Order Pref Flags Service             Regexp                                 Replacement
26
            ['100 50 "s" "http+N2L+N2C+N2R" "" www.example.com.',  100,  50,  's',  'http+N2L+N2C+N2R', '',                                    'www.example.com.'],
27
            ['100 10 "" "" "!^urn:cid:.+@([^\.]+\.)(.*)$!\2!i" .', 100,  10,  '',   '',                 '!^urn:cid:.+@([^\.]+\.)(.*)$!\2!i',   '.'],
28
            ['100 50 "s" "SIP+D2U" "" _sip2._udp.testnaptr.at.',   100,  50,  's',  'SIP+D2U',          '',                                    '_sip2._udp.testnaptr.at.'],
29
            ['100 10 "u" "sip+E2U" "!^.*$!sip:[email protected]!i" .', 100, 10, 'u', 'sip+E2U',        '!^.*$!sip:[email protected]!i',      '.'],
30
        ];
31
    }
32
33
    public function testGetType(): void
34
    {
35
        $naptr = new NAPTR();
36
        $this->assertEquals('NAPTR', $naptr->getType());
37
    }
38
39
    public function testGetTypeCode(): void
40
    {
41
        $naptr = new NAPTR();
42
        $this->assertEquals(35, $naptr->getTypeCode());
43
    }
44
45
    /**
46
     * @dataProvider getDataProvider
47
     */
48
    public function testToText(string $text, int $order, int $preference, string $flags, string $services, string $regexp, string $replacement): void
49
    {
50
        $naptr = new NAPTR();
51
        $naptr->setOrder($order);
52
        $naptr->setPreference($preference);
53
        $naptr->setFlags($flags);
54
        $naptr->setServices($services);
55
        $naptr->setRegexp($regexp);
56
        $naptr->setReplacement($replacement);
57
58
        $this->assertEquals($text, $naptr->toText());
59
    }
60
61
    /**
62
     * @dataProvider getDataProvider
63
     */
64
    public function testToAndFromWire(string $text, int $order, int $preference, string $flags, string $services, string $regexp, string $replacement): void
0 ignored issues
show
Unused Code introduced by
The parameter $text is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
65
    {
66
        $naptr = new NAPTR();
67
        $naptr->setOrder($order);
68
        $naptr->setPreference($preference);
69
        $naptr->setFlags($flags);
70
        $naptr->setServices($services);
71
        $naptr->setRegexp($regexp);
72
        $naptr->setReplacement($replacement);
73
        $wireFormat = $naptr->toWire();
74
        $rdLength = strlen($wireFormat);
75
        $wireFormat = 'abc'.$wireFormat;
76
        $offset = 3;
77
78
        $fromWire = new NAPTR();
79
        $fromWire->fromWire($wireFormat, $offset, $rdLength);
80
        $this->assertEquals($naptr, $fromWire);
81
        $this->assertEquals(3 + $rdLength, $offset);
82
    }
83
84
    /**
85
     * @dataProvider getDataProvider
86
     */
87
    public function testFromText(string $text, int $order, int $preference, string $flags, string $services, string $regexp, string $replacement): void
88
    {
89
        $naptr = new NAPTR();
90
        $naptr->fromText($text);
91
92
        $this->assertEquals($order, $naptr->getOrder());
93
        $this->assertEquals($preference, $naptr->getPreference());
94
        $this->assertEquals($flags, $naptr->getFlags());
95
        $this->assertEquals($services, $naptr->getServices());
96
        $this->assertEquals($regexp, $naptr->getRegexp());
97
        $this->assertEquals($replacement, $naptr->getReplacement());
98
    }
99
100
    /**
101
     * @dataProvider getDataProvider
102
     */
103
    public function testFactory(string $text, int $order, int $preference, string $flags, string $services, string $regexp, string $replacement): void
0 ignored issues
show
Unused Code introduced by
The parameter $text is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
104
    {
105
        $naptr = Factory::NAPTR($order, $preference, $flags, $services, $regexp, $replacement);
106
107
        $this->assertEquals($order, $naptr->getOrder());
108
        $this->assertEquals($preference, $naptr->getPreference());
109
        $this->assertEquals($flags, $naptr->getFlags());
110
        $this->assertEquals($services, $naptr->getServices());
111
        $this->assertEquals($regexp, $naptr->getRegexp());
112
        $this->assertEquals($replacement, $naptr->getReplacement());
113
    }
114
}
115