Completed
Push — master ( a4940f...ec1f20 )
by Ross
02:29
created

IpTypeTest::willThrowAnExceptionIfNoTypeIsSet()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 0
1
<?php
2
declare(strict_types = 1);
3
/**
4
 *
5
 * Copyright (C) 2018  Ross Mitchell
6
 *
7
 * This file is part of RossMitchell/UpdateCloudFlare.
8
 *
9
 * RossMitchell/UpdateCloudFlare is free software: you can redistribute
10
 * it and/or modify it under the terms of the GNU General Public License
11
 * as published by the Free Software Foundation, either version 3 of the
12
 * License, or (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
 * GNU General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU General Public License
20
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21
 */
22
23
namespace RossMitchell\UpdateCloudFlare\Tests\Data;
24
25
use RossMitchell\UpdateCloudFlare\Data\IpType;
26
use RossMitchell\UpdateCloudFlare\Tests\AbstractTestClass;
27
use Symfony\Component\Console\Exception\LogicException;
28
29
/**
30
 * Class IpTypeTest
31
 * @testdox RossMitchell\UpdateCloudFlare\Data\IpType
32
 * @package RossMitchell\UpdateCloudFlare\Tests\Data
33
 */
34
class IpTypeTest extends AbstractTestClass
35
{
36
37
    /**
38
     * @test
39
     */
40
    public function canSetIpv4Type()
41
    {
42
        $ip4 = IpType::IP_V4;
43
        $type = $this->getClass($ip4);
44
        $this->assertEquals($ip4, $type->getType());
45
    }
46
47
    /**
48
     * @test
49
     */
50
    public function canSetIPv6Type()
51
    {
52
        $ip6 = IpType::IP_V6;
53
        $type = $this->getClass($ip6);
54
        $this->assertEquals($ip6, $type->getType());
55
    }
56
57
    /**
58
     * @test
59
     */
60
    public function willThrowAnExceptionIfAnUnknownTypeIsSet()
61
    {
62
        $this->expectException(LogicException::class);
63
        $unknownType = 'Unknown';
64
        $this->getClass($unknownType);
65
    }
66
67
    /**
68
     * @return IpType
69
     */
70
    private function getClass(string $type): IpType
71
    {
72
        return new IpType($type);
73
    }
74
}
75