Completed
Push — master ( 15abdf...98d178 )
by Mark
418:16 queued 353:14
created

ReadBlankCellsTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 17
dl 0
loc 40
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A providerSheetFormat() 0 5 1
A testXlsxLoadWithNoBlankCells() 0 18 1
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheetTests\Functional;
4
5
use PhpOffice\PhpSpreadsheet\Reader\IReadFilter;
6
use PhpOffice\PhpSpreadsheet\Spreadsheet;
7
8
class ReadBlankCellsTest extends AbstractFunctional
9
{
10
11
    public function providerSheetFormat()
12
    {
13
        return [
14
            ['Xlsx'],
15
            ['Xls'],
16
            // ['Ods'], // Broken. Requires fix in Ods reader.
17
            // ['Csv'], // never reads blank cells
18
            // ['Html'], // never reads blank cells
19
        ];
20
    }
21
22
    /**
23
     * Test generate file with some empty cells
24
     *
25
     * @dataProvider providerSheetFormat
26
     *
27
     * @param array $arrayData
28
     * @param mixed $format
29
     */
30
    public function testXlsxLoadWithNoBlankCells($format)
31
    {
32
        $spreadsheet = new Spreadsheet();
33
        $spreadsheet->getActiveSheet()->getCell('B2')->setValue('');
34
        $spreadsheet->getActiveSheet()->getCell('C1')->setValue('C1');
35
        $spreadsheet->getActiveSheet()->getCell('C3')->setValue('C3');
36
37
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format);
38
        $this->assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('B2'));
39
        $this->assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C2'));
40
        $this->assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C3'));
41
42
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format, function($reader) {
43
            $reader->setReadEmptyCells(false);
44
        });
45
        $this->assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('B2'));
46
        $this->assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C2'));
47
        $this->assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C3'));
48
    }
49
50
}
51