Passed
Pull Request — master (#4366)
by Owen
10:58
created

HiddenWorksheetTest::worksheetAssertions()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 5
dl 0
loc 8
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;
6
7
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
8
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
9
use PHPUnit\Framework\TestCase;
10
11
class HiddenWorksheetTest extends TestCase
12
{
13
    public function testPageSetup(): void
14
    {
15
        $filename = 'tests/data/Reader/XLSX/HiddenSheet.xlsx';
16
        $reader = new Xlsx();
17
        $spreadsheet = $reader->load($filename);
18
        $assertions = $this->worksheetAssertions();
19
20
        foreach ($spreadsheet->getAllSheets() as $worksheet) {
21
            if (!array_key_exists($worksheet->getTitle(), $assertions)) {
22
                continue;
23
            }
24
25
            $sheetAssertions = $assertions[$worksheet->getTitle()];
26
            foreach ($sheetAssertions as $test => $expectedResult) {
27
                $actualResult = $worksheet->getSheetState();
28
                self::assertSame(
29
                    $expectedResult,
30
                    $actualResult,
31
                    "Failed asserting sheet state {$expectedResult} for Worksheet '{$worksheet->getTitle()}' {$test}"
32
                );
33
            }
34
        }
35
        $spreadsheet->disconnectWorksheets();
36
    }
37
38
    private function worksheetAssertions(): array
39
    {
40
        return [
41
            'Sheet1' => [
42
                'sheetState' => Worksheet::SHEETSTATE_VISIBLE,
43
            ],
44
            'Sheet2' => [
45
                'sheetState' => Worksheet::SHEETSTATE_HIDDEN,
46
            ],
47
        ];
48
    }
49
50
    public function testListWorksheetInfo(): void
51
    {
52
        $filename = 'tests/data/Reader/XLSX/visibility.xlsx';
53
        $reader = new Xlsx();
54
        $expected = [
55
            [
56
                'worksheetName' => 'Sheet1',
57
                'lastColumnLetter' => 'A',
58
                'lastColumnIndex' => 0,
59
                'totalRows' => 1,
60
                'totalColumns' => 1,
61
                'sheetState' => 'visible',
62
            ],
63
            [
64
                'worksheetName' => 'Sheet2',
65
                'lastColumnLetter' => 'A',
66
                'lastColumnIndex' => 0,
67
                'totalRows' => 1,
68
                'totalColumns' => 1,
69
                'sheetState' => 'hidden',
70
            ],
71
            [
72
                'worksheetName' => 'Sheet3',
73
                'lastColumnLetter' => 'A',
74
                'lastColumnIndex' => 0,
75
                'totalRows' => 1,
76
                'totalColumns' => 1,
77
                'sheetState' => 'visible',
78
            ],
79
            [
80
                'worksheetName' => 'Sheet4',
81
                'lastColumnLetter' => 'B',
82
                'lastColumnIndex' => 1,
83
                'totalRows' => 1,
84
                'totalColumns' => 2,
85
                'sheetState' => 'veryHidden',
86
            ],
87
        ];
88
        self::assertSame($expected, $reader->listWorksheetInfo($filename));
89
    }
90
}
91