Added new test for unparse with parameters

This commit is contained in:
Fonata
2018-03-28 15:45:44 +02:00
parent 927e785891
commit 2e40a2eb1c

View File

@@ -1,4 +1,5 @@
<?php <?php
namespace ParseCsv\tests\methods; namespace ParseCsv\tests\methods;
use ParseCsv\Csv; use ParseCsv\Csv;
@@ -6,6 +7,7 @@ use PHPUnit\Framework\TestCase;
class UnparseTest extends Testcase { class UnparseTest extends Testcase {
/** @var Csv */ /** @var Csv */
private $csv; private $csv;
@@ -17,12 +19,31 @@ class UnparseTest extends Testcase {
$this->csv->auto(__DIR__ . '/fixtures/auto-double-enclosure.csv'); $this->csv->auto(__DIR__ . '/fixtures/auto-double-enclosure.csv');
} }
public function testUnparseWithParameters() {
$fields = array('a' => 'AA', 'b' => 'BB');
$data = [['a' => 'value1', 'b' => 'value2']];
$csv_object = new Csv();
$csv_string = $csv_object->unparse($data, $fields);
$this->assertEquals("AA,BB\rvalue1,value2\r", $csv_string);
$csv_object = new Csv();
$csv_object->linefeed = "\n";
$csv_string = $csv_object->unparse([[55, 66]]);
$this->assertEquals("55,66\n", $csv_string);
$csv_object = new Csv();
$data2 = [['a' => "multi\rline", 'b' => 'value2']];
$csv_object->enclosure = "'";
$csv_string = $csv_object->unparse($data2, $fields);
$this->assertEquals("AA,BB\r'multi\rline',value2\r", $csv_string);
}
public function testUnparseDefault() { public function testUnparseDefault() {
$expected = "column1,column2\rvalue1,value2\rvalue3,value4\r"; $expected = "column1,column2\rvalue1,value2\rvalue3,value4\r";
$this->unparseAndCompare($expected); $this->unparseAndCompare($expected);
} }
public function testUnparseDefaultWithoutHeading(){ public function testUnparseDefaultWithoutHeading() {
$this->csv->heading = false; $this->csv->heading = false;
$this->csv->auto(__DIR__ . '/fixtures/auto-double-enclosure.csv'); $this->csv->auto(__DIR__ . '/fixtures/auto-double-enclosure.csv');
$expected = "column1,column2\rvalue1,value2\rvalue3,value4\r"; $expected = "column1,column2\rvalue1,value2\rvalue3,value4\r";