mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-08-31 04:28:51 +00:00
2c8177a319
The tests stay; they just no longer run in separate processes. I think that only 2 tests still require separate processes - Helper/SampleTest and Tcpdf/NoDieTest. Aside from a new internal method in IOFactory, all the changes here are to test members.
43 lines
1.2 KiB
PHP
43 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Functional;
|
|
|
|
use PhpOffice\PhpSpreadsheet\IOFactory;
|
|
use PhpOffice\PhpSpreadsheet\Shared\File;
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
/**
|
|
* Base class for functional test to write and reload file on disk across different formats.
|
|
*/
|
|
abstract class AbstractFunctional extends TestCase
|
|
{
|
|
/**
|
|
* Write spreadsheet to disk, reload and return it.
|
|
*/
|
|
protected function writeAndReload(Spreadsheet $spreadsheet, string $format, ?callable $readerCustomizer = null, ?callable $writerCustomizer = null): Spreadsheet
|
|
{
|
|
$filename = File::temporaryFilename();
|
|
|
|
try {
|
|
$writer = IOFactory::createWriter($spreadsheet, $format);
|
|
if ($writerCustomizer) {
|
|
$writerCustomizer($writer);
|
|
}
|
|
$writer->save($filename);
|
|
|
|
$reader = IOFactory::createReader($format);
|
|
if ($readerCustomizer) {
|
|
$readerCustomizer($reader);
|
|
}
|
|
$reloadedSpreadsheet = $reader->load($filename);
|
|
} finally {
|
|
@unlink($filename);
|
|
}
|
|
|
|
return $reloadedSpreadsheet;
|
|
}
|
|
}
|