diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/AllSetupTeardown.php b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/AllSetupTeardown.php index 9374ce32..52f561e1 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/AllSetupTeardown.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/AllSetupTeardown.php @@ -17,26 +17,28 @@ class AllSetupTeardown extends TestCase protected $compatibilityMode; /** - * @var Spreadsheet + * @var ?Spreadsheet */ - protected $spreadsheet; + private $spreadsheet; /** - * @var Worksheet + * @var ?Worksheet */ - protected $sheet; + private $sheet; protected function setUp(): void { $this->compatibilityMode = Functions::getCompatibilityMode(); - $this->spreadsheet = new Spreadsheet(); - $this->sheet = $this->spreadsheet->getActiveSheet(); } protected function tearDown(): void { Functions::setCompatibilityMode($this->compatibilityMode); - $this->spreadsheet->disconnectWorksheets(); + $this->sheet = null; + if ($this->spreadsheet !== null) { + $this->spreadsheet->disconnectWorksheets(); + $this->spreadsheet = null; + } } protected static function setOpenOffice(): void @@ -66,10 +68,30 @@ class AllSetupTeardown extends TestCase { if ($value !== null) { if (is_string($value) && is_numeric($value)) { - $this->sheet->getCell($cell)->setValueExplicit($value, DataType::TYPE_STRING); + $this->getSheet()->getCell($cell)->setValueExplicit($value, DataType::TYPE_STRING); } else { - $this->sheet->getCell($cell)->setValue($value); + $this->getSheet()->getCell($cell)->setValue($value); } } } + + protected function getSpreadsheet(): Spreadsheet + { + if ($this->spreadsheet !== null) { + return $this->spreadsheet; + } + $this->spreadsheet = new Spreadsheet(); + + return $this->spreadsheet; + } + + protected function getSheet(): Worksheet + { + if ($this->sheet !== null) { + return $this->sheet; + } + $this->sheet = $this->getSpreadsheet()->getActiveSheet(); + + return $this->sheet; + } } diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/ColumnOnSpreadsheetTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/ColumnOnSpreadsheetTest.php index 8b89a671..0c43f00f 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/ColumnOnSpreadsheetTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/ColumnOnSpreadsheetTest.php @@ -15,12 +15,12 @@ class ColumnOnSpreadsheetTest extends AllSetupTeardown public function testColumnOnSpreadsheet($expectedResult, $cellReference = 'omitted'): void { $this->mightHaveException($expectedResult); - $sheet = $this->sheet; - $this->spreadsheet->addNamedRange(new NamedRange('namedrangex', $sheet, '$E$2:$E$6')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrangey', $sheet, '$F$2:$H$2')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrange3', $sheet, '$F$4:$H$4')); + $sheet = $this->getSheet(); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrangex', $sheet, '$E$2:$E$6')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrangey', $sheet, '$F$2:$H$2')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrange3', $sheet, '$F$4:$H$4')); - $sheet1 = $this->spreadsheet->createSheet(); + $sheet1 = $this->getSpreadsheet()->createSheet(); $sheet1->setTitle('OtherSheet'); if ($cellReference === 'omitted') { @@ -40,11 +40,11 @@ class ColumnOnSpreadsheetTest extends AllSetupTeardown public function testCOLUMNLocalDefinedName(): void { - $sheet = $this->sheet; + $sheet = $this->getSheet(); - $sheet1 = $this->spreadsheet->createSheet(); + $sheet1 = $this->getSpreadsheet()->createSheet(); $sheet1->setTitle('OtherSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('newnr', $sheet1, '$F$5:$H$5', true)); // defined locally, only usable on sheet1 + $this->getSpreadsheet()->addNamedRange(new NamedRange('newnr', $sheet1, '$F$5:$H$5', true)); // defined locally, only usable on sheet1 $sheet1->getCell('B3')->setValue('=COLUMN(newnr)'); $result = $sheet1->getCell('B3')->getCalculatedValue(); diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/ColumnsOnSpreadsheetTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/ColumnsOnSpreadsheetTest.php index 93b09449..332b5ced 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/ColumnsOnSpreadsheetTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/ColumnsOnSpreadsheetTest.php @@ -15,16 +15,16 @@ class ColumnsOnSpreadsheetTest extends AllSetupTeardown public function testColumnsOnSpreadsheet($expectedResult, $cellReference = 'omitted'): void { $this->mightHaveException($expectedResult); - $sheet = $this->sheet; + $sheet = $this->getSheet(); $sheet->setTitle('ThisSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('namedrangex', $sheet, '$E$2:$E$6')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrangey', $sheet, '$F$2:$H$2')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrange3', $sheet, '$F$4:$H$4')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrange5', $sheet, '$F$5:$I$5', true)); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrangex', $sheet, '$E$2:$E$6')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrangey', $sheet, '$F$2:$H$2')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrange3', $sheet, '$F$4:$H$4')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrange5', $sheet, '$F$5:$I$5', true)); - $sheet1 = $this->spreadsheet->createSheet(); + $sheet1 = $this->getSpreadsheet()->createSheet(); $sheet1->setTitle('OtherSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('localname', $sheet1, '$F$6:$H$6', true)); + $this->getSpreadsheet()->addNamedRange(new NamedRange('localname', $sheet1, '$F$6:$H$6', true)); if ($cellReference === 'omitted') { $sheet->getCell('B3')->setValue('=COLUMNS()'); @@ -43,11 +43,11 @@ class ColumnsOnSpreadsheetTest extends AllSetupTeardown public function testCOLUMNSLocalDefinedName(): void { - $sheet = $this->sheet; + $sheet = $this->getSheet(); - $sheet1 = $this->spreadsheet->createSheet(); + $sheet1 = $this->getSpreadsheet()->createSheet(); $sheet1->setTitle('OtherSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('newnr', $sheet1, '$F$5:$H$5', true)); // defined locally, only usable on sheet1 + $this->getSpreadsheet()->addNamedRange(new NamedRange('newnr', $sheet1, '$F$5:$H$5', true)); // defined locally, only usable on sheet1 $sheet1->getCell('B3')->setValue('=COLUMNS(newnr)'); $result = $sheet1->getCell('B3')->getCalculatedValue(); diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/IndirectTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/IndirectTest.php index c53dce5c..7601e336 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/IndirectTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/IndirectTest.php @@ -17,7 +17,7 @@ class IndirectTest extends AllSetupTeardown public function testINDIRECT($expectedResult, $cellReference = 'omitted', $a1 = 'omitted'): void { $this->mightHaveException($expectedResult); - $sheet = $this->sheet; + $sheet = $this->getSheet(); $sheet->getCell('A1')->setValue(100); $sheet->getCell('A2')->setValue(200); $sheet->getCell('A3')->setValue(300); @@ -25,7 +25,7 @@ class IndirectTest extends AllSetupTeardown $sheet->getCell('A5')->setValue(500); $sheet->setTitle('ThisSheet'); - $sheet1 = $this->spreadsheet->createSheet(); + $sheet1 = $this->getSpreadsheet()->createSheet(); $sheet1->getCell('A1')->setValue(10); $sheet1->getCell('A2')->setValue(20); $sheet1->getCell('A3')->setValue(30); @@ -37,8 +37,8 @@ class IndirectTest extends AllSetupTeardown $sheet1->getCell('B4')->setValue(4); $sheet1->getCell('B5')->setValue(5); $sheet1->setTitle('OtherSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('newnr', $sheet1, '$A$2:$A$4')); - $this->spreadsheet->addNamedRange(new NamedRange('localname', $sheet1, '$B$2:$B$4', true)); + $this->getSpreadsheet()->addNamedRange(new NamedRange('newnr', $sheet1, '$A$2:$A$4')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('localname', $sheet1, '$B$2:$B$4', true)); $this->setCell('B1', $cellReference); $this->setCell('B2', $a1); @@ -61,14 +61,14 @@ class IndirectTest extends AllSetupTeardown public function testINDIRECTEurUsd(): void { - $sheet = $this->sheet; + $sheet = $this->getSheet(); $sheet->getCell('A1')->setValue('EUR'); $sheet->getCell('A2')->setValue('USD'); $sheet->getCell('B1')->setValue(360); $sheet->getCell('B2')->setValue(300); - $this->spreadsheet->addNamedRange(new NamedRange('EUR', $sheet, '$B$1')); - $this->spreadsheet->addNamedRange(new NamedRange('USD', $sheet, '$B$2')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('EUR', $sheet, '$B$1')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('USD', $sheet, '$B$2')); $this->setCell('E1', '=INDIRECT("USD")'); @@ -78,14 +78,14 @@ class IndirectTest extends AllSetupTeardown public function testINDIRECTLeadingEquals(): void { - $sheet = $this->sheet; + $sheet = $this->getSheet(); $sheet->getCell('A1')->setValue('EUR'); $sheet->getCell('A2')->setValue('USD'); $sheet->getCell('B1')->setValue(360); $sheet->getCell('B2')->setValue(300); - $this->spreadsheet->addNamedRange(new NamedRange('EUR', $sheet, '=$B$1')); - $this->spreadsheet->addNamedRange(new NamedRange('USD', $sheet, '=$B$2')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('EUR', $sheet, '=$B$1')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('USD', $sheet, '=$B$2')); $this->setCell('E1', '=INDIRECT("USD")'); @@ -125,7 +125,7 @@ class IndirectTest extends AllSetupTeardown public function testDeprecatedCall(): void { - $sheet = $this->sheet; + $sheet = $this->getSheet(); $sheet->getCell('A1')->setValue('A2'); $sheet->getCell('A2')->setValue('This is it'); $result = \PhpOffice\PhpSpreadsheet\Calculation\LookupRef::INDIRECT('A2', $sheet->getCell('A1')); diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/RowOnSpreadsheetTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/RowOnSpreadsheetTest.php index 724349f2..3fed7add 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/RowOnSpreadsheetTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/RowOnSpreadsheetTest.php @@ -15,16 +15,16 @@ class RowOnSpreadsheetTest extends AllSetupTeardown public function testRowOnSpreadsheet($expectedResult, $cellReference = 'omitted'): void { $this->mightHaveException($expectedResult); - $sheet = $this->sheet; + $sheet = $this->getSheet(); $sheet->setTitle('ThisSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('namedrangex', $sheet, '$E$2:$E$6')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrangey', $sheet, '$F$2:$H$2')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrange3', $sheet, '$F$4:$H$4')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrange5', $sheet, '$F$5:$H$5', true)); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrangex', $sheet, '$E$2:$E$6')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrangey', $sheet, '$F$2:$H$2')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrange3', $sheet, '$F$4:$H$4')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrange5', $sheet, '$F$5:$H$5', true)); - $sheet1 = $this->spreadsheet->createSheet(); + $sheet1 = $this->getSpreadsheet()->createSheet(); $sheet1->setTitle('OtherSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('localname', $sheet1, '$F$6:$H$6', true)); + $this->getSpreadsheet()->addNamedRange(new NamedRange('localname', $sheet1, '$F$6:$H$6', true)); if ($cellReference === 'omitted') { $sheet->getCell('B3')->setValue('=ROW()'); @@ -43,11 +43,11 @@ class RowOnSpreadsheetTest extends AllSetupTeardown public function testINDIRECTLocalDefinedName(): void { - $sheet = $this->sheet; + $sheet = $this->getSheet(); - $sheet1 = $this->spreadsheet->createSheet(); + $sheet1 = $this->getSpreadsheet()->createSheet(); $sheet1->setTitle('OtherSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('newnr', $sheet1, '$F$5:$H$5', true)); // defined locally, only usable on sheet1 + $this->getSpreadsheet()->addNamedRange(new NamedRange('newnr', $sheet1, '$F$5:$H$5', true)); // defined locally, only usable on sheet1 $sheet1->getCell('B3')->setValue('=ROW(newnr)'); $result = $sheet1->getCell('B3')->getCalculatedValue(); diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/RowsOnSpreadsheetTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/RowsOnSpreadsheetTest.php index ba9ea518..ce5bd5ee 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/RowsOnSpreadsheetTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/LookupRef/RowsOnSpreadsheetTest.php @@ -15,16 +15,16 @@ class RowsOnSpreadsheetTest extends AllSetupTeardown public function testRowsOnSpreadsheet($expectedResult, $cellReference = 'omitted'): void { $this->mightHaveException($expectedResult); - $sheet = $this->sheet; + $sheet = $this->getSheet(); $sheet->setTitle('ThisSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('namedrangex', $sheet, '$E$2:$E$6')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrangey', $sheet, '$F$2:$H$2')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrange3', $sheet, '$F$4:$H$4')); - $this->spreadsheet->addNamedRange(new NamedRange('namedrange5', $sheet, '$F$5:$H$5', true)); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrangex', $sheet, '$E$2:$E$6')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrangey', $sheet, '$F$2:$H$2')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrange3', $sheet, '$F$4:$H$4')); + $this->getSpreadsheet()->addNamedRange(new NamedRange('namedrange5', $sheet, '$F$5:$H$5', true)); - $sheet1 = $this->spreadsheet->createSheet(); + $sheet1 = $this->getSpreadsheet()->createSheet(); $sheet1->setTitle('OtherSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('localname', $sheet1, '$F$6:$H$6', true)); + $this->getSpreadsheet()->addNamedRange(new NamedRange('localname', $sheet1, '$F$6:$H$6', true)); if ($cellReference === 'omitted') { $sheet->getCell('B3')->setValue('=ROWS()'); @@ -43,11 +43,11 @@ class RowsOnSpreadsheetTest extends AllSetupTeardown public function testRowsLocalDefinedName(): void { - $sheet = $this->sheet; + $sheet = $this->getSheet(); - $sheet1 = $this->spreadsheet->createSheet(); + $sheet1 = $this->getSpreadsheet()->createSheet(); $sheet1->setTitle('OtherSheet'); - $this->spreadsheet->addNamedRange(new NamedRange('newnr', $sheet1, '$F$5:$H$10', true)); // defined locally, only usable on sheet1 + $this->getSpreadsheet()->addNamedRange(new NamedRange('newnr', $sheet1, '$F$5:$H$10', true)); // defined locally, only usable on sheet1 $sheet1->getCell('B3')->setValue('=ROWS(newnr)'); $result = $sheet1->getCell('B3')->getCalculatedValue();