MultispacedHeadersParserTest   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 91
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

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

7 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 11 1
A getRowsFromSampleData() 0 12 1
A getRowsFromEmptyData() 0 5 1
A getRowsFromOnlyHeaderData() 0 5 1
A getHeadersFromSampleData() 0 5 1
A getHeadersFromEmptyData() 0 5 1
A getHeadersFromOnlyHeaderData() 0 5 1
1
<?php
2
3
namespace TraderInteractive\ColumnParser;
4
5
use PHPUnit\Framework\TestCase;
6
7
/**
8
 * @coversDefaultClass \TraderInteractive\ColumnParser\MultispacedHeadersParser
9
 */
10
class MultispacedHeadersParserTest extends TestCase
11
{
12
    private $emptyData;
13
    private $onlyHeaderData;
14
    private $sampleData;
15
16
    public function setUp()
17
    {
18
        $this->emptyData = '';
19
        $this->onlyHeaderData = 'Name  Age  City of Birth';
20
        $this->sampleData = <<<EOS
21
Name     Age  City of Birth
22
James    17   San Francisco, CA
23
Mary     18   Washington, D.C.
24
William  22   Dallas, TX
25
EOS;
26
    }
27
28
    /**
29
     * @test
30
     * @covers ::__construct
31
     * @covers ::getRows
32
     */
33
    public function getRowsFromSampleData()
34
    {
35
        $parser = new MultispacedHeadersParser($this->sampleData);
36
        $this->assertSame(
37
            [
38
                ['Name' => 'James', 'Age' => '17', 'City of Birth' => 'San Francisco, CA'],
39
                ['Name' => 'Mary', 'Age' => '18', 'City of Birth' => 'Washington, D.C.'],
40
                ['Name' => 'William', 'Age' => '22', 'City of Birth' => 'Dallas, TX'],
41
            ],
42
            $parser->getRows()
43
        );
44
    }
45
46
    /**
47
     * @test
48
     * @covers ::__construct
49
     * @covers ::getRows
50
     */
51
    public function getRowsFromEmptyData()
52
    {
53
        $parser = new MultispacedHeadersParser($this->emptyData);
54
        $this->assertSame([], $parser->getRows());
55
    }
56
57
    /**
58
     * @test
59
     * @covers ::__construct
60
     * @covers ::getRows
61
     */
62
    public function getRowsFromOnlyHeaderData()
63
    {
64
        $parser = new MultispacedHeadersParser($this->onlyHeaderData);
65
        $this->assertSame([], $parser->getRows());
66
    }
67
68
    /**
69
     * @test
70
     * @covers ::__construct
71
     * @covers ::getHeaders
72
     */
73
    public function getHeadersFromSampleData()
74
    {
75
        $parser = new MultispacedHeadersParser($this->sampleData);
76
        $this->assertSame(['Name', 'Age', 'City of Birth'], $parser->getHeaders());
77
    }
78
79
    /**
80
     * @test
81
     * @covers ::__construct
82
     * @covers ::getHeaders
83
     */
84
    public function getHeadersFromEmptyData()
85
    {
86
        $parser = new MultispacedHeadersParser($this->emptyData);
87
        $this->assertSame([], $parser->getHeaders());
88
    }
89
90
    /**
91
     * @test
92
     * @covers ::__construct
93
     * @covers ::getHeaders
94
     */
95
    public function getHeadersFromOnlyHeaderData()
96
    {
97
        $parser = new MultispacedHeadersParser($this->onlyHeaderData);
98
        $this->assertSame(['Name', 'Age', 'City of Birth'], $parser->getHeaders());
99
    }
100
}
101