| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- namespace PhpOffice\PhpSpreadsheetTests\Cell;
- use DateTime;
- use DateTimeImmutable;
- use PhpOffice\PhpSpreadsheet\Cell\DataType;
- use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder;
- use PhpOffice\PhpSpreadsheet\RichText\RichText;
- use PhpOffice\PhpSpreadsheet\Spreadsheet;
- use PHPUnit\Framework\TestCase;
- class DefaultValueBinderTest extends TestCase
- {
- /**
- * @dataProvider binderProvider
- *
- * @param mixed $value
- */
- public function testBindValue($value): void
- {
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $cell = $sheet->getCell('A1');
- $binder = new DefaultValueBinder();
- $result = $binder->bindValue($cell, $value);
- self::assertTrue($result);
- $spreadsheet->disconnectWorksheets();
- }
- public function binderProvider(): array
- {
- return [
- [null],
- [''],
- ['ABC'],
- ['=SUM(A1:B2)'],
- [true],
- [false],
- [123],
- [-123.456],
- ['123'],
- ['-123.456'],
- ['#REF!'],
- [new DateTime()],
- [new DateTimeImmutable()],
- ['123456\n'],
- ];
- }
- /**
- * @dataProvider providerDataTypeForValue
- *
- * @param mixed $expectedResult
- * @param mixed $value
- */
- public function testDataTypeForValue($expectedResult, $value): void
- {
- $result = DefaultValueBinder::dataTypeForValue($value);
- self::assertEquals($expectedResult, $result);
- }
- public function providerDataTypeForValue(): array
- {
- return require 'tests/data/Cell/DefaultValueBinder.php';
- }
- public function testDataTypeForRichTextObject(): void
- {
- $objRichText = new RichText();
- $objRichText->createText('Hello World');
- $expectedResult = DataType::TYPE_INLINE;
- $result = DefaultValueBinder::dataTypeForValue($objRichText);
- self::assertEquals($expectedResult, $result);
- }
- public function testCanOverrideStaticMethodWithoutOverridingBindValue(): void
- {
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $cell = $sheet->getCell('A1');
- $binder = new ValueBinderWithOverriddenDataTypeForValue();
- self::assertFalse($binder::$called);
- $binder->bindValue($cell, 123);
- self::assertTrue($binder::$called);
- $spreadsheet->disconnectWorksheets();
- }
- }
|