diff --git a/tests/methods/SaveTest.php b/tests/methods/SaveTest.php new file mode 100644 index 0000000..d871975 --- /dev/null +++ b/tests/methods/SaveTest.php @@ -0,0 +1,46 @@ +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); + } +}