diff --git a/src/Spout/Common/Helper/GlobalFunctionsHelper.php b/src/Spout/Common/Helper/GlobalFunctionsHelper.php index 550a6b1..eb02c3f 100644 --- a/src/Spout/Common/Helper/GlobalFunctionsHelper.php +++ b/src/Spout/Common/Helper/GlobalFunctionsHelper.php @@ -91,6 +91,21 @@ class GlobalFunctionsHelper return fgetcsv($handle, $length, $delimiter, $enclosure); } + /** + * Wrapper around global function fputcsv() + * @see fputcsv() + * + * @param resource $handle + * @param array $fields + * @param string|void $delimiter + * @param string|void $enclosure + * @return int + */ + public function fputcsv($handle, array $fields, $delimiter = null, $enclosure = null) + { + return fputcsv($handle, $fields, $delimiter, $enclosure); + } + /** * Wrapper around global function fclose() * @see fclose() diff --git a/src/Spout/Writer/CSV.php b/src/Spout/Writer/CSV.php index 0ac8d91..59e37a7 100644 --- a/src/Spout/Writer/CSV.php +++ b/src/Spout/Writer/CSV.php @@ -73,7 +73,7 @@ class CSV extends AbstractWriter */ protected function addRowToWriter(array $dataRow) { - $wasWriteSuccessful = fputcsv($this->filePointer, $dataRow, $this->fieldDelimiter, $this->fieldEnclosure); + $wasWriteSuccessful = $this->globalFunctionsHelper->fputcsv($this->filePointer, $dataRow, $this->fieldDelimiter, $this->fieldEnclosure); if ($wasWriteSuccessful === false) { throw new IOException('Unable to write data'); } diff --git a/tests/Spout/Reader/XLSXTest.php b/tests/Spout/Reader/XLSXTest.php index 3a1a34f..18586d5 100644 --- a/tests/Spout/Reader/XLSXTest.php +++ b/tests/Spout/Reader/XLSXTest.php @@ -38,6 +38,37 @@ class XLSXTest extends \PHPUnit_Framework_TestCase $this->getAllRowsForFile($filePath); } + /** + * @expectedException \Box\Spout\Reader\Exception\ReaderNotOpenedException + * + * @return void + */ + public function testHasNextSheetShouldThrowExceptionIfReaderNotOpened() + { + $reader = ReaderFactory::create(Type::XLSX); + $reader->hasNextSheet(); + } + + /** + * @expectedException \Box\Spout\Reader\Exception\EndOfWorksheetsReachedException + * + * @return void + */ + public function testNextSheetShouldThrowExceptionIfNoMoreSheetsToRead() + { + $fileName = 'one_sheet_with_shared_strings.xlsx'; + $resourcePath = $this->getResourcePath($fileName); + + $reader = ReaderFactory::create(Type::XLSX); + $reader->open($resourcePath); + + while ($reader->hasNextSheet()) { + $reader->nextSheet(); + } + + $reader->nextSheet(); + } + /** * @return array */