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\Gnumeric;
6
7
use PhpOffice\PhpSpreadsheet\Reader\Gnumeric;
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/Gnumeric/HiddenSheet.gnumeric';
16
        $reader = new Gnumeric();
17
        $spreadsheet = $reader->load($filename);
18
        $assertions = $this->worksheetAssertions();
19
        $sheetCount = 0;
20
21
        foreach ($spreadsheet->getAllSheets() as $worksheet) {
22
            if (!array_key_exists($worksheet->getTitle(), $assertions)) {
23
                self::fail('Unexpected worksheet ' . $worksheet->getTitle());
24
            }
25
26
            ++$sheetCount;
27
            $sheetAssertions = $assertions[$worksheet->getTitle()];
28
            foreach ($sheetAssertions as $test => $expectedResult) {
29
                $actualResult = $worksheet->getSheetState();
30
                self::assertSame(
31
                    $expectedResult,
32
                    $actualResult,
33
                    "Failed asserting sheet state {$expectedResult} for Worksheet '{$worksheet->getTitle()}' {$test}"
34
                );
35
            }
36
        }
37
        self::assertCount($sheetCount, $assertions);
38
        $spreadsheet->disconnectWorksheets();
39
    }
40
41
    private function worksheetAssertions(): array
42
    {
43
        return [
44
            'Sheet1' => [
45
                'sheetState' => Worksheet::SHEETSTATE_VISIBLE,
46
            ],
47
            'Sheet2' => [
48
                'sheetState' => Worksheet::SHEETSTATE_HIDDEN,
49
            ],
50
        ];
51
    }
52
53
    public function testListWorksheetInfo(): void
54
    {
55
        $filename = 'tests/data/Reader/Gnumeric/HiddenSheet.gnumeric';
56
        $reader = new Gnumeric();
57
        $expected = [
58
            [
59
                'worksheetName' => 'Sheet1',
60
                'lastColumnLetter' => 'A',
61
                'lastColumnIndex' => 0,
62
                'totalRows' => 1,
63
                'totalColumns' => 1,
64
                'sheetState' => 'visible',
65
            ],
66
            [
67
                'worksheetName' => 'Sheet2',
68
                'lastColumnLetter' => 'A',
69
                'lastColumnIndex' => 0,
70
                'totalRows' => 1,
71
                'totalColumns' => 1,
72
                'sheetState' => 'hidden',
73
            ],
74
        ];
75
        self::assertSame($expected, $reader->listWorksheetInfo($filename));
76
    }
77
}
78