summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgnace Nyamagana Butera <nyamsprod@gmail.com>2014-08-07 14:41:34 +0200
committerIgnace Nyamagana Butera <nyamsprod@gmail.com>2014-08-07 14:41:34 +0200
commit82d6820a92b92f682fffbbcfcc0baf2c9de4cf49 (patch)
tree41747a2cf03d66573b2af4c42525bc4fcc8a86b1
parent4ab385ed037458b4b24f61815bca3d22188c72b1 (diff)
downloadcsv-82d6820a92b92f682fffbbcfcc0baf2c9de4cf49.zip
csv-82d6820a92b92f682fffbbcfcc0baf2c9de4cf49.tar.gz
csv-82d6820a92b92f682fffbbcfcc0baf2c9de4cf49.tar.bz2
remove direct call to constructor in test
-rw-r--r--src/AbstractCsv.php25
-rw-r--r--test/CsvTest.php54
-rw-r--r--test/ReaderTest.php6
-rw-r--r--test/WriterTest.php4
4 files changed, 41 insertions, 48 deletions
diff --git a/src/AbstractCsv.php b/src/AbstractCsv.php
index e384bd3..066f1a5 100644
--- a/src/AbstractCsv.php
+++ b/src/AbstractCsv.php
@@ -100,14 +100,15 @@ abstract class AbstractCsv implements JsonSerializable, IteratorAggregate
public static function createFromPath($path, $open_mode = 'r+')
{
if ($path instanceof SplTempFileObject) {
- throw new InvalidArgumentException(
- 'an `SplTempFileObject` object does not contain a valid path'
- );
+ throw new InvalidArgumentException('an `SplTempFileObject` object does not contain a valid path');
} elseif ($path instanceof SplFileInfo) {
$path = $path->getPath().'/'.$path->getBasename();
+ } elseif (! self::isValidString($path)) {
+ throw new InvalidArgumentException('path must be a valid string');
}
+ $path = (string) $path;
- return new static((string) $path, $open_mode);
+ return new static($path, $open_mode);
}
/**
@@ -133,15 +134,15 @@ abstract class AbstractCsv implements JsonSerializable, IteratorAggregate
*/
public static function createFromString($str)
{
- if (self::isValidString($str)) {
- $obj = new SplTempFileObject;
- $obj->fwrite((string) $str.PHP_EOL);
-
- return static::createFromFileObject($obj);
+ if (! self::isValidString($str)) {
+ throw new InvalidArgumentException(
+ 'the submitted data must be a string or an object implementing the `__toString` method'
+ );
}
- throw new InvalidArgumentException(
- 'the submitted data must be a string or an object implementing the `__toString` method'
- );
+ $obj = new SplTempFileObject;
+ $obj->fwrite((string) $str.PHP_EOL);
+
+ return static::createFromFileObject($obj);
}
/**
diff --git a/test/CsvTest.php b/test/CsvTest.php
index 4477105..3cd34ea 100644
--- a/test/CsvTest.php
+++ b/test/CsvTest.php
@@ -31,7 +31,7 @@ class CsvTest extends PHPUnit_Framework_TestCase
$csv->fputcsv($row);
}
- $this->csv = new Reader($csv);
+ $this->csv = Reader::createFromFileObject($csv);
}
public function tearDown()
@@ -43,7 +43,7 @@ class CsvTest extends PHPUnit_Framework_TestCase
{
$path = __DIR__.'/foo.csv';
- $csv = new Reader($path);
+ $csv = Reader::createFromPath($path);
$this->assertSame($path, $csv->getIterator()->getRealPath());
}
@@ -51,7 +51,7 @@ class CsvTest extends PHPUnit_Framework_TestCase
{
$path = __DIR__.'/foo.csv';
- $csv = new Reader(new SplFileInfo($path));
+ $csv = Reader::createFromPath(new SplFileInfo($path));
$this->assertSame($path, $csv->getIterator()->getRealPath());
}
@@ -59,7 +59,7 @@ class CsvTest extends PHPUnit_Framework_TestCase
{
$path = __DIR__.'/foo.csv';
- $csv = new Reader('php://filter/read=string.toupper/resource='.$path);
+ $csv = Reader::createFromPath('php://filter/read=string.toupper/resource='.$path);
$this->assertFalse($csv->getIterator()->getRealPath());
}
@@ -68,7 +68,7 @@ class CsvTest extends PHPUnit_Framework_TestCase
*/
public function testConstructorWithNotWritablePath()
{
- (new Reader('/usr/bin/foo.csv'))->getIterator();
+ Reader::createFromPath('/usr/bin/foo.csv')->getIterator();
}
/**
@@ -76,15 +76,7 @@ class CsvTest extends PHPUnit_Framework_TestCase
*/
public function testConstructorWithWrongType()
{
- new Reader(['/usr/bin/foo.csv']);
- }
-
- public function testCreateFromPath()
- {
- $path = __DIR__.'/foo.csv';
-
- $csv = Reader::createFromPath(new SplFileInfo($path));
- $this->assertSame($path, $csv->getIterator()->getRealPath());
+ Reader::createFromPath(['/usr/bin/foo.csv']);
}
/**
@@ -132,7 +124,7 @@ class CsvTest extends PHPUnit_Framework_TestCase
{
$file = new SplTempFileObject;
$file->fwrite("How are you today ?\nI'm doing fine thanks!");
- $csv = new Writer($file);
+ $csv = Writer::createFromFileObject($file);
$this->assertNull($csv->detectDelimiter(5, ['toto', '|']));
}
@@ -141,7 +133,7 @@ class CsvTest extends PHPUnit_Framework_TestCase
*/
public function testDetectDelimiterWithInconsistentCSV()
{
- $csv = new Writer(new SplTempFileObject);
+ $csv = Writer::createFromFileObject(new SplTempFileObject);
$csv->setDelimiter(';');
$csv->insertOne(['toto', 'tata', 'tutu']);
$csv->setDelimiter('|');
@@ -287,12 +279,12 @@ EOF;
public function testInitStreamFilter()
{
$filter = 'php://filter/write=string.rot13/resource='.__DIR__.'/foo.csv';
- $csv = new Reader(new SplFileInfo($filter));
+ $csv = Reader::createFromPath(new SplFileInfo($filter));
$this->assertTrue($csv->hasStreamFilter('string.rot13'));
$this->assertSame(STREAM_FILTER_WRITE, $csv->getStreamFilterMode());
$filter = 'php://filter/read=string.toupper/resource='.__DIR__.'/foo.csv';
- $csv = new Reader(new SplFileInfo($filter));
+ $csv = Reader::createFromPath(new SplFileInfo($filter));
$this->assertTrue($csv->hasStreamFilter('string.toupper'));
$this->assertSame(STREAM_FILTER_READ, $csv->getStreamFilterMode());
}
@@ -302,8 +294,7 @@ EOF;
*/
public function testappendStreamFilter()
{
- $path = __DIR__.'/foo.csv';
- $csv = new Reader(new SplFileInfo($path));
+ $csv = Reader::createFromPath(__DIR__.'/foo.csv');
$csv->appendStreamFilter('string.toupper');
foreach ($csv->getIterator() as $row) {
$this->assertSame($row, ['JOHN', 'DOE', 'JOHN.DOE@EXAMPLE.COM']);
@@ -314,9 +305,17 @@ EOF;
/**
* @expectedException RuntimeException
*/
- public function testprependStreamFilter()
+ public function testFailedprependStreamFilter()
{
- (new Reader(new SplTempFileObject))->prependStreamFilter('string.toupper');
+ Reader::createFromFileObject(new SplTempFileObject)->prependStreamFilter('string.toupper');
+ }
+
+ /**
+ * @expectedException RuntimeException
+ */
+ public function testFailedapppendStreamFilter()
+ {
+ Reader::createFromFileObject(new SplTempFileObject)->appendStreamFilter('string.toupper');
}
/**
@@ -324,8 +323,7 @@ EOF;
*/
public function testaddMultipleStreamFilter()
{
- $path = __DIR__.'/foo.csv';
- $csv = new Reader(new SplFileInfo($path));
+ $csv = Reader::createFromPath(__DIR__.'/foo.csv');
$csv->setFlags(SplFileObject::READ_AHEAD|SplFileObject::SKIP_EMPTY);
$csv->appendStreamFilter('string.tolower');
$csv->prependStreamFilter('string.rot13');
@@ -350,17 +348,11 @@ EOF;
$csv->setStreamFilterMode(34);
}
- /**
- * @expectedException RuntimeException
- */
public function testGetFilterPath()
{
- $path = __DIR__.'/foo.csv';
- $csv = new Writer(new SplFileInfo($path));
+ $csv = Writer::createFromPath(__DIR__.'/foo.csv');
$csv->appendStreamFilter('string.rot13');
$csv->prependStreamFilter('string.toupper');
$this->assertFalse($csv->getIterator()->getRealPath());
-
- (new Reader(new SplTempFileObject))->appendStreamFilter('string.rot13');
}
}
diff --git a/test/ReaderTest.php b/test/ReaderTest.php
index fb3f919..5dbf774 100644
--- a/test/ReaderTest.php
+++ b/test/ReaderTest.php
@@ -25,7 +25,7 @@ class ReaderTest extends PHPUnit_Framework_TestCase
$csv->fputcsv($row);
}
- $this->csv = new Reader($csv);
+ $this->csv = Reader::createFromFileObject($csv);
}
/**
@@ -193,7 +193,7 @@ class ReaderTest extends PHPUnit_Framework_TestCase
foreach ($raw as $row) {
$file->fputcsv($row);
}
- $csv = new Reader($file);
+ $csv = Reader::createFromFileObject($file);
$res = $csv->fetchColumn(2);
$this->assertInternalType('array', $res);
$this->assertCount(2, $res);
@@ -276,7 +276,7 @@ EOF;
public function testGetWriter2()
{
- $csv = (new Reader(__DIR__.'/foo.csv'))->getWriter('a+');
+ $csv = Reader::createFromPath(__DIR__.'/foo.csv')->getWriter('a+');
$this->assertInstanceOf('\League\Csv\Writer', $csv);
}
}
diff --git a/test/WriterTest.php b/test/WriterTest.php
index 950498c..1669680 100644
--- a/test/WriterTest.php
+++ b/test/WriterTest.php
@@ -24,7 +24,7 @@ class WriterTest extends PHPUnit_Framework_TestCase
public function setUp()
{
- $this->csv = new Writer(new SplTempFileObject);
+ $this->csv = Writer::createFromFileObject(new SplTempFileObject);
}
public function tearDown()
@@ -62,7 +62,7 @@ class WriterTest extends PHPUnit_Framework_TestCase
public function testInsertNormalFile()
{
- $csv = new Writer(__DIR__.'/foo.csv', 'a+');
+ $csv = Writer::createFromPath(__DIR__.'/foo.csv', 'a+');
$csv->insertOne(['jane', 'doe', 'jane.doe@example.com']);
$iterator = new LimitIterator($csv->getIterator(), 1, 1);
$iterator->rewind();