From cc8971875b37bc2392807275dbe56be211142810 Mon Sep 17 00:00:00 2001 From: Bob Wienholt Date: Mon, 6 Feb 2017 14:36:46 -0500 Subject: [PATCH] Use the "external" sheet when checking the name. Also, fix the phpUnit tests. --- src/Spout/Writer/Common/Sheet.php | 3 +- tests/Spout/Writer/Common/SheetTest.php | 46 +++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/Spout/Writer/Common/Sheet.php b/src/Spout/Writer/Common/Sheet.php index d7a9037..66e4d57 100644 --- a/src/Spout/Writer/Common/Sheet.php +++ b/src/Spout/Writer/Common/Sheet.php @@ -164,7 +164,8 @@ class Sheet */ protected function isNameUnique($name) { - foreach ($this->workbook->getWorksheets() as $sheetIndex => $sheet) { + foreach ($this->workbook->getWorksheets() as $sheetIndex => $worksheet) { + $sheet = $worksheet->getExternalSheet(); if ($sheetIndex !== $this->index && $sheet->getName() === $name) { return false; } diff --git a/tests/Spout/Writer/Common/SheetTest.php b/tests/Spout/Writer/Common/SheetTest.php index b38e501..d91dc06 100644 --- a/tests/Spout/Writer/Common/SheetTest.php +++ b/tests/Spout/Writer/Common/SheetTest.php @@ -2,12 +2,16 @@ namespace Box\Spout\Writer\Common; +use Box\Spout\Writer\Common\Internal\AbstractWorkbook; +use Box\Spout\Writer\Common\Internal\WorksheetInterface; +use PHPUnit_Framework_TestCase; + /** * Class SheetTest * * @package Box\Spout\Writer\Common */ -class SheetTest extends \PHPUnit_Framework_TestCase +class SheetTest extends PHPUnit_Framework_TestCase { /** * @return void @@ -101,8 +105,13 @@ class SheetTest extends \PHPUnit_Framework_TestCase } } -class SheetTestWorkbook extends \Box\Spout\Writer\Common\Internal\AbstractWorkbook +class SheetTestWorkbook extends AbstractWorkbook { + public function __construct() + { + parent::__construct(false, null); + } + protected function getMaxRowsPerWorksheet() { return 0; @@ -117,7 +126,7 @@ class SheetTestWorkbook extends \Box\Spout\Writer\Common\Internal\AbstractWorkbo { $newSheetIndex = count($this->worksheets); $sheet = new Sheet($newSheetIndex, $this); - $this->worksheets[] = $sheet; + $this->worksheets[] = new SheetTestWorksheet($sheet); return $sheet; } @@ -125,3 +134,34 @@ class SheetTestWorkbook extends \Box\Spout\Writer\Common\Internal\AbstractWorkbo { } } + +class SheetTestWorksheet implements WorksheetInterface +{ + private $sheet; + + public function __construct(Sheet $sheet) + { + $this->sheet = $sheet; + } + + public function addRow($dataRow, $style) + { + + } + + public function close() + { + + } + + public function getExternalSheet() + { + return $this->sheet; + } + + public function getLastWrittenRowIndex() + { + + } + +}