diff options
author | ignace nyamagana butera <nyamsprod@gmail.com> | 2015-11-24 09:09:13 +0100 |
---|---|---|
committer | ignace nyamagana butera <nyamsprod@gmail.com> | 2015-11-24 09:09:13 +0100 |
commit | 1cdaccb17a3de81f208724429c0ec3527982657b (patch) | |
tree | 1238dcb2b84b25ebb6865a4dcc28e51ee909bc4f /test | |
parent | 825481f581dccb97bf57f08cb93816a26eed3669 (diff) | |
download | csv-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.php | 41 |
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; }]], + ]; } } |