Passed
Pull Request — master (#6)
by Andrew
02:29
created

RealWorldTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 5
lcom 1
cbo 2
dl 0
loc 45
rs 10
c 1
b 0
f 1

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 5 1
A testConsolidateSubnets() 0 7 1
A testConsolidateSubnetsVerbose() 0 11 1
A testConsolidateSubnetsVerboseWithMaxRules() 0 14 2
1
<?php
2
3
namespace AndrewAndante\SubMuncher\Test;
4
5
use AndrewAndante\SubMuncher\SubMuncher;
6
7
class RealWorldTest extends \PHPUnit_Framework_TestCase
8
{
9
    private $data;
0 ignored issues
show
Comprehensibility introduced by
Consider using a different property name as you override a private property of the parent class.
Loading history...
10
11
    protected function setUp()
12
    {
13
        parent::setUp();
14
        $this->data = json_decode(file_get_contents(__DIR__ . '/../data/real_world_data.json'), true);
15
    }
16
17
    public function testConsolidateSubnets()
18
    {
19
        $this->assertEquals(
20
            $this->data['consolidated_subnets'],
21
            SubMuncher::consolidate_subnets($this->data['subnets'])
22
        );
23
    }
24
25
    public function testConsolidateSubnetsVerbose()
26
    {
27
        $this->assertEquals(
28
            [
29
                'consolidated_subnets' => $this->data['consolidated_subnets'],
30
                'initial_IPs' => $this->data['raw_ips'],
31
                'total_IPs' => $this->data['raw_ips'],
32
            ],
33
            SubMuncher::consolidate_subnets_verbose($this->data['subnets'])
34
        );
35
    }
36
37
    public function testConsolidateSubnetsVerboseWithMaxRules()
38
    {
39
        $result = SubMuncher::consolidate_subnets_verbose($this->data['subnets'], 25);
40
        $this->assertCount(25, $result['consolidated_subnets']);
41
        $this->assertEquals($this->data['raw_ips'], $result['initial_IPs']);
42
        $this->assertGreaterThanOrEqual(count($this->data['raw_ips']), count($result['total_IPs']));
43
        foreach ($this->data['raw_ips'] as $raw_ip) {
44
            $this->assertContains($raw_ip, $result['total_IPs']);
45
        }
46
        $this->assertEquals(
47
            ['205.234.225.128', '205.234.225.131', '60.254.186.52', '60.254.186.55'],
48
            array_values(array_diff($result['total_IPs'], $result['initial_IPs']))
49
        );
50
    }
51
}
52