Files
oleibman 2c8177a319 Eliminate Unneeded Separate Process Tests
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.
2025-12-07 23:15:01 -08:00

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;
}
}