mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-08-27 10:30:02 +00:00
90931dbea6
- TEXTBEFORE – Returns text that’s before delimiting characters - TEXTAFTER – Returns text that’s after delimiting character - TEXTSPLIT – Splits text into rows or columns using delimiters - VSTACK – Stacks arrays vertically - HSTACK – Stacks arrays horizontally - TOROW – Returns the array as one row - TOCOL – Returns the array as one column - WRAPROWS – Wraps a row array into a 2D array - WRAPCOLS – Wraps a column array into a 2D array - TAKE – Returns rows or columns from array start or end - DROP – Drops rows or columns from array start or end - CHOOSEROWS – Returns the specified rows from an array - CHOOSECOLS – Returns the specified columns from an array - EXPAND – Expands an array to the specified dimensions
89 lines
3.4 KiB
PHP
89 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Calculation\Engine;
|
|
|
|
use PhpOffice\PhpSpreadsheet\Calculation\Engine\ExcelFunctions;
|
|
use PhpOffice\PhpSpreadsheet\Calculation\Engine\XlFunctionAbstract;
|
|
use PhpOffice\PhpSpreadsheet\Calculation\Exception;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class ExcelFunctionsCollectionTest extends TestCase
|
|
{
|
|
public function testRecognisedExcelFunction(): void
|
|
{
|
|
$excelFunctionCollection = new ExcelFunctions();
|
|
|
|
self::assertFalse($excelFunctionCollection->isRecognisedExcelFunction('AAA'));
|
|
self::assertTrue($excelFunctionCollection->isRecognisedExcelFunction('ABS'));
|
|
}
|
|
|
|
public function testFunctionDefinitionLoadsAsArrayElement(): void
|
|
{
|
|
$excelFunctionCollection = new ExcelFunctions();
|
|
$excelFunctionDefinition = $excelFunctionCollection['ABS'];
|
|
|
|
self::assertInstanceOf(XlFunctionAbstract::class, $excelFunctionDefinition);
|
|
self::assertSame('ABS', $excelFunctionDefinition->name);
|
|
}
|
|
|
|
public function testReadOnlyArrayAccess(): void
|
|
{
|
|
self::expectException(Exception::class);
|
|
self::expectExceptionMessage('Action not permitted');
|
|
|
|
$excelFunctionCollection = new ExcelFunctions();
|
|
$excelFunctionDefinition = $excelFunctionCollection['ABS'];
|
|
self::assertInstanceOf(XlFunctionAbstract::class, $excelFunctionDefinition);
|
|
self::assertSame('ABS', $excelFunctionDefinition->name);
|
|
|
|
$excelFunctionCollection['ABS'] = 'NO LONGER ABS';
|
|
}
|
|
|
|
public function testUnsetBlockedAsArray(): void
|
|
{
|
|
self::expectException(Exception::class);
|
|
self::expectExceptionMessage('Action not permitted');
|
|
|
|
$excelFunctionCollection = new ExcelFunctions();
|
|
$excelFunctionDefinition = $excelFunctionCollection['ABS'];
|
|
self::assertInstanceOf(XlFunctionAbstract::class, $excelFunctionDefinition);
|
|
self::assertSame('ABS', $excelFunctionDefinition->name);
|
|
|
|
unset($excelFunctionCollection['ABS']);
|
|
}
|
|
|
|
public function testFunctionDefinitionLoadsAsObjectProperty(): void
|
|
{
|
|
$excelFunctionCollection = new ExcelFunctions();
|
|
$excelFunctionDefinition = $excelFunctionCollection->ABS; // @phpstan-ignore-line
|
|
self::assertInstanceOf(XlFunctionAbstract::class, $excelFunctionDefinition);
|
|
self::assertSame('ABS', $excelFunctionDefinition->name);
|
|
}
|
|
|
|
public function testReadOnlyObjectAccess(): void
|
|
{
|
|
self::expectException(Exception::class);
|
|
self::expectExceptionMessage('Action not permitted');
|
|
|
|
$excelFunctionCollection = new ExcelFunctions();
|
|
$excelFunctionDefinition = $excelFunctionCollection->ABS; // @phpstan-ignore-line
|
|
self::assertInstanceOf(XlFunctionAbstract::class, $excelFunctionDefinition);
|
|
self::assertSame('ABS', $excelFunctionDefinition->name);
|
|
|
|
$excelFunctionCollection->ABS = 'NO LONGER ABS'; // @phpstan-ignore-line
|
|
}
|
|
|
|
public function testUnsetBlockedAsObjectProperty(): void
|
|
{
|
|
self::expectException(Exception::class);
|
|
self::expectExceptionMessage('Action not permitted');
|
|
|
|
$excelFunctionCollection = new ExcelFunctions();
|
|
$excelFunctionDefinition = $excelFunctionCollection->ABS; // @phpstan-ignore-line
|
|
self::assertInstanceOf(XlFunctionAbstract::class, $excelFunctionDefinition);
|
|
self::assertSame('ABS', $excelFunctionDefinition->name);
|
|
|
|
unset($excelFunctionCollection->ABS);
|
|
}
|
|
}
|