Passed
Pull Request — master (#4243)
by
unknown
20:04 queued 07:21
created

ToArrayTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 83
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 57
dl 0
loc 83
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testMaxCol() 0 11 1
A testDollarSign() 0 13 1
A testToArray() 0 53 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpOffice\PhpSpreadsheetTests\Worksheet;
6
7
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
8
use PhpOffice\PhpSpreadsheet\Spreadsheet;
9
use PHPUnit\Framework\TestCase;
10
11
class ToArrayTest extends TestCase
12
{
13
    public static function testToArray(): void
14
    {
15
        $spreadsheet = new Spreadsheet();
16
        $sheet = $spreadsheet->getActiveSheet();
17
        $inputArray = [
18
            ['a', 'b', null, 'd', 'e'],
19
            [],
20
            [null, null, null, null, 'f'],
21
            [],
22
            [1, 0, null, 4],
23
        ];
24
25
        $sheet->fromArray($inputArray, null, 'A1', true);
26
27
        $expected1 = [
28
            ['a', 'b', null, 'd', 'e'],
29
            [null, null, null, null, null],
30
            [null, null, null, null, 'f'],
31
            [null, null, null, null, null],
32
            [1, 0, null, 4, null],
33
        ];
34
        $result1 = $sheet->toArray(null, false, false, false, false);
35
        self::assertSame($expected1, $result1);
36
37
        $expected2 = [
38
            1 => ['A' => 'a', 'B' => 'b', 'C' => null, 'D' => 'd', 'E' => 'e'],
39
            2 => ['A' => null, 'B' => null, 'C' => null, 'D' => null, 'E' => null],
40
            3 => ['A' => null, 'B' => null, 'C' => null, 'D' => null, 'E' => 'f'],
41
            4 => ['A' => null, 'B' => null, 'C' => null, 'D' => null, 'E' => null],
42
            5 => ['A' => 1, 'B' => 0, 'C' => null, 'D' => 4, 'E' => null],
43
        ];
44
        $result2 = $sheet->toArray(null, false, false, true, false);
45
        self::assertSame($expected2, $result2);
46
47
        $expected3 = [
48
            [null, null, null, null],
49
            [null, null, null, 'f'],
50
            [null, null, null, null],
51
            [0, null, 4, null],
52
        ];
53
        $result3 = $sheet->rangeToArray('B2:E5', null, false, false, false, false);
54
        self::assertSame($expected3, $result3);
55
56
        $expected4 = [
57
            2 => ['B' => null, 'C' => null, 'D' => null, 'E' => null],
58
            3 => ['B' => null, 'C' => null, 'D' => null, 'E' => 'f'],
59
            4 => ['B' => null, 'C' => null, 'D' => null, 'E' => null],
60
            5 => ['B' => 0, 'C' => null, 'D' => 4, 'E' => null],
61
        ];
62
        $result4 = $sheet->rangeToArray('B2:E5', null, false, false, true, false);
63
        self::assertSame($expected4, $result4);
64
65
        $spreadsheet->disconnectWorksheets();
66
    }
67
68
    public static function testMaxCol(): void
69
    {
70
        $spreadsheet = new Spreadsheet();
71
        $sheet = $spreadsheet->getActiveSheet();
72
        $sheet->getCell('A1')->setValue('start');
73
        $sheet->getCell('XFD1')->setValue('end');
74
        $array = $sheet->toArray(null, false, false, false, false);
75
        self::assertCount(1, $array);
76
        self::assertCount(16384, $array[0]);
77
        self::assertSame('start', $array[0][0]);
78
        self::assertSame('end', $array[0][16383]);
79
    }
80
81
    public static function testDollarSign(): void
82
    {
83
        $filename = 'tests/data/Reader/XLSX/issue.4242.xlsx';
84
        $reader = new Xlsx();
85
        $spreadsheet = $reader->load($filename);
86
        $sheet = $spreadsheet->getActiveSheet();
87
88
        $expected = [
89
            ['General', '$0', 'Value is $100', '200 number - $200 value', null],
90
            ['Text', '$0', 'Value is $100', '200 number - $200 value', null],
91
        ];
92
        $result = $sheet->toArray();
93
        self::assertSame($expected, $result);
94
    }
95
}
96