Skip to content

Commit c2ffdb8

Browse files
committed
Get code coverage to 100%
1 parent ca822d2 commit c2ffdb8

3 files changed

Lines changed: 85 additions & 0 deletions

File tree

tests/DeriveHeaderStrategyTest.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,30 @@ public function rowNotIsHeaderRow()
5050
$this->assertFalse($strategy->isHeaderRow($fileObject->fgetcsv()));
5151
}
5252

53+
/**
54+
* @test
55+
* @covers ::createDataRow
56+
*/
57+
public function createDataRow()
58+
{
59+
$fileObject = $this->getFileObject();
60+
$strategy = new DeriveHeaderStrategy();
61+
$strategy->getHeaders($fileObject);
62+
$fileObject->fgetcsv();//skip header line
63+
$this->assertSame(
64+
[
65+
'id' => 'bk101',
66+
'author' => 'Gambardella, Matthew',
67+
'title' => 'XML Developer\'s Guide',
68+
'genre' => 'Computer',
69+
'price' => '44.95',
70+
'publish_date' => '2000-10-01',
71+
'description' => 'An in-depth look at creating applications with XML.',
72+
],
73+
$strategy->createDataRow($fileObject->fgetcsv())
74+
);
75+
}
76+
5377
private function getFileObject() : SplFileObject
5478
{
5579
$fileObject = new SplFileObject(__DIR__ . '/_files/pipe_delimited.txt');

tests/NoHeaderStrategyTest.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,35 @@ public function isHeaderRowAlwaysReturnsFalse()
4040
$this->assertFalse($strategy->isHeaderRow($fileObject->fgetcsv()));
4141
$this->assertFalse($strategy->isHeaderRow($fileObject->fgetcsv()));
4242
}
43+
44+
/**
45+
* @test
46+
* @covers ::createDataRow
47+
*/
48+
public function createDataRow()
49+
{
50+
$row = [
51+
'bk101',
52+
'Gambardella, Matthew',
53+
'XML Developer\'s Guide',
54+
'Computer',
55+
'44.95',
56+
'2000-10-01',
57+
'An in-depth look at creating applications with XML.',
58+
];
59+
$strategy = new NoHeaderStrategy();
60+
$this->assertSame(
61+
[
62+
'bk101',
63+
'Gambardella, Matthew',
64+
'XML Developer\'s Guide',
65+
'Computer',
66+
'44.95',
67+
'2000-10-01',
68+
'An in-depth look at creating applications with XML.',
69+
],
70+
$strategy->createDataRow($row)
71+
);
72+
}
73+
4374
}

tests/ProvidedHeaderStrategyTest.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,36 @@ public function rowIsNotHeaderRow()
4747
$this->assertFalse($strategy->isHeaderRow($fileObject->fgetcsv()));
4848
}
4949

50+
/**
51+
* @test
52+
* @covers ::createDataRow
53+
*/
54+
public function createDataRow()
55+
{
56+
$row = [
57+
'bk101',
58+
'Gambardella, Matthew',
59+
'XML Developer\'s Guide',
60+
'Computer',
61+
'44.95',
62+
'2000-10-01',
63+
'An in-depth look at creating applications with XML.',
64+
];
65+
$strategy = $this->getStrategy();
66+
$this->assertSame(
67+
[
68+
'id' => 'bk101',
69+
'author' => 'Gambardella, Matthew',
70+
'title' => 'XML Developer\'s Guide',
71+
'genre' => 'Computer',
72+
'price' => '44.95',
73+
'publish_date' => '2000-10-01',
74+
'description' => 'An in-depth look at creating applications with XML.',
75+
],
76+
$strategy->createDataRow($row)
77+
);
78+
}
79+
5080
private function getFileObject() : SplFileObject
5181
{
5282
$fileObject = new SplFileObject(__DIR__ . '/_files/basic.csv');

0 commit comments

Comments
 (0)