summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorignace nyamagana butera <nyamsprod@gmail.com>2015-11-24 09:09:13 +0100
committerignace nyamagana butera <nyamsprod@gmail.com>2015-11-24 09:09:13 +0100
commit1cdaccb17a3de81f208724429c0ec3527982657b (patch)
tree1238dcb2b84b25ebb6865a4dcc28e51ee909bc4f /test
parent825481f581dccb97bf57f08cb93816a26eed3669 (diff)
downloadcsv-1cdaccb17a3de81f208724429c0ec3527982657b.zip
csv-1cdaccb17a3de81f208724429c0ec3527982657b.tar.gz
csv-1cdaccb17a3de81f208724429c0ec3527982657b.tar.bz2
Improve Reader rewrite
- fetchMode is renamed returnType for clarity of intent - returnType reset to TYPE_ARRAY is enforced for all query methods regardless of them using the returnType at all for consistency
Diffstat (limited to 'test')
-rw-r--r--test/ReaderTest.php41
1 files changed, 31 insertions, 10 deletions
diff --git a/test/ReaderTest.php b/test/ReaderTest.php
index 4ff96dc..9a0c630 100644
--- a/test/ReaderTest.php
+++ b/test/ReaderTest.php
@@ -165,7 +165,7 @@ class ReaderTest extends AbstractTestCase
public function testFetchAssocReturnsIterator()
{
$keys = ['firstname', 'lastname', 'email'];
- $res = $this->csv->setFetchMode(Reader::FETCH_ITERATOR)->fetchAssoc($keys);
+ $res = $this->csv->setReturnType(Reader::TYPE_ITERATOR)->fetchAssoc($keys);
$this->assertInstanceof('\Iterator', $res);
foreach ($res as $offset => $row) {
$this->assertSame($keys, array_keys($row));
@@ -375,8 +375,8 @@ class ReaderTest extends AbstractTestCase
public function testFetchColumnReturnsIterator()
{
- $this->assertContains('john', $this->csv->setFetchMode(Reader::FETCH_ITERATOR)->fetchColumn(0));
- $this->assertContains('jane', $this->csv->setFetchMode(Reader::FETCH_ITERATOR)->fetchColumn());
+ $this->assertContains('john', $this->csv->setReturnType(Reader::TYPE_ITERATOR)->fetchColumn(0));
+ $this->assertContains('jane', $this->csv->setReturnType(Reader::TYPE_ITERATOR)->fetchColumn());
}
public function testFetchColumnInconsistentColumnCSV()
@@ -478,7 +478,7 @@ class ReaderTest extends AbstractTestCase
*/
public function testFetchPairsIteratorMode($key, $value, $callable, $expected)
{
- $iterator = $this->csv->setFetchMode(Reader::FETCH_ITERATOR)->fetchPairs($key, $value, $callable);
+ $iterator = $this->csv->setReturnType(Reader::TYPE_ITERATOR)->fetchPairs($key, $value, $callable);
foreach ($iterator as $key => $value) {
$res = current($expected);
$this->assertSame($value, $res[$key]);
@@ -563,13 +563,34 @@ class ReaderTest extends AbstractTestCase
}
/**
- * @expectedException \InvalidArgumentException
+ * @expectedException \UnexpectedValueException
+ */
+ public function testReturnTypeThrowsException()
+ {
+ $this->csv->setReturnType('toto');
+ }
+
+ /**
+ * @dataProvider readerReturnTypeProvider
*/
- public function testFetchMode()
+ public function testReturnTypeResetBetweenCallToArray($method, array $args = [])
{
- $this->assertSame(Reader::FETCH_ARRAY, $this->csv->getFetchMode());
- $this->csv->setFetchMode(Reader::FETCH_ITERATOR);
- $this->assertSame(Reader::FETCH_ITERATOR, $this->csv->getFetchMode());
- $this->csv->setFetchMode('toto');
+ $this->assertSame(Reader::TYPE_ARRAY, $this->csv->getReturnType());
+ $this->csv->setReturnType(Reader::TYPE_ITERATOR);
+ call_user_func_array([$this->csv, $method], $args);
+ $this->assertSame(Reader::TYPE_ARRAY, $this->csv->getReturnType());
+ }
+
+ public function readerReturnTypeProvider()
+ {
+ return [
+ ['fetch'],
+ ['fetchOne'],
+ ['fetchAll'],
+ ['fetchColumn'],
+ ['fetchPairs'],
+ ['fetchAssoc'],
+ ['each', [function (array $row) { return true; }]],
+ ];
}
}