diff options
Diffstat (limited to 'test/Plugin/ColumnConsistencyValidatorTest.php')
-rw-r--r-- | test/Plugin/ColumnConsistencyValidatorTest.php | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/test/Plugin/ColumnConsistencyValidatorTest.php b/test/Plugin/ColumnConsistencyValidatorTest.php new file mode 100644 index 0000000..487f53d --- /dev/null +++ b/test/Plugin/ColumnConsistencyValidatorTest.php @@ -0,0 +1,70 @@ +<?php + +namespace League\Csv\Test\Plugin; + +use League\Csv\Writer; +use League\Csv\Plugin\ColumnConsistencyValidator; +use PHPUnit_Framework_TestCase; +use SplFileObject; +use SplTempFileObject; + +/** + * @group validators + */ +class ColumnConsistencyValidatorTest extends PHPUnit_Framework_TestCase +{ + private $csv; + + public function setUp() + { + $this->csv = Writer::createFromFileObject(new SplTempFileObject()); + } + + public function tearDown() + { + $csv = new SplFileObject(dirname(__DIR__).'/foo.csv', 'w'); + $csv->setCsvControl(); + $csv->fputcsv(["john", "doe", "john.doe@example.com"], ",", '"'); + $this->csv = null; + } + + /** + * @expectedException InvalidArgumentException + */ + public function testColumsCountSetterGetter() + { + $consistency = new ColumnConsistencyValidator(); + $this->assertSame(-1, $consistency->getColumnsCount()); + $consistency->setColumnsCount(3); + $this->assertSame(3, $consistency->getColumnsCount()); + $consistency->setColumnsCount('toto'); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testColumsCountConsistency() + { + $consistency = new ColumnConsistencyValidator(); + $this->csv->addValidator($consistency, 'consistency'); + $this->csv->insertOne(['john', 'doe', 'john.doe@example.com']); + $consistency->setColumnsCount(2); + $this->csv->insertOne(['jane', 'jane.doe@example.com']); + $consistency->setColumnsCount(3); + $this->csv->insertOne(['jane', 'jane.doe@example.com']); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testAutoDetectColumnsCount() + { + $consistency = new ColumnConsistencyValidator(); + $this->csv->addValidator($consistency, 'consistency'); + $consistency->autodetectColumnsCount(); + $this->assertSame(-1, $consistency->getColumnsCount()); + $this->csv->insertOne(['john', 'doe', 'john.doe@example.com']); + $this->assertSame(3, $consistency->getColumnsCount()); + $this->csv->insertOne(['jane', 'jane.doe@example.com']); + } +} |