Added SaveTest for coverage of writing files

This commit is contained in:
Christian Bläul
2018-01-21 16:54:00 +01:00
committed by Fonata
parent d8aefa792e
commit 003e98e8ff

View File

@@ -0,0 +1,46 @@
<?php
class SaveTest extends PHPUnit\Framework\TestCase {
/** @var parseCSV */
private $csv;
private $temp_filename;
/**
* Setup our test environment objects; will be called before each test.
*/
public function setUp() {
$this->csv = new parseCSV();
$this->csv->auto(__DIR__ . '/../example_files/single_column.csv');
// Remove last 2 lines to simplify comparison
unset($this->csv->data[2], $this->csv->data[3]);
$temp_dir = str_replace("\\", '/', sys_get_temp_dir());
if (substr($temp_dir, -1) != '/') {
// From the PHP.net documentation:
// This function does not always add trailing slash. This behaviour
// is inconsistent across systems.
$temp_dir .= '/';
}
$this->temp_filename = $temp_dir . 'parsecsv_test_file.csv';
}
public function testSaveWithDefaultSettings() {
$expected = "SMS\r0444\r5555\r";
$this->saveAndCompare($expected);
}
public function testAllQuotes() {
$this->csv->enclose_all = true;
$expected = "\"SMS\"\r\"0444\"\r\"5555\"\r";
$this->saveAndCompare($expected);
}
private function saveAndCompare($expected) {
$this->csv->save($this->temp_filename);
$content = file_get_contents($this->temp_filename);
$this->assertEquals($expected, $content);
}
}