diff --git a/tests/PhpSpreadsheetTests/Functional/ColumnWidthTest.php b/tests/PhpSpreadsheetTests/Functional/ColumnWidthTest.php index 3f811adc..83c8f6ed 100644 --- a/tests/PhpSpreadsheetTests/Functional/ColumnWidthTest.php +++ b/tests/PhpSpreadsheetTests/Functional/ColumnWidthTest.php @@ -43,20 +43,26 @@ class ColumnWidthTest extends AbstractFunctional $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); foreach (range(1, 5) as $row) { - $sheet->setCellValue("A{$row}", 'Hello World !'); + $sheet->setCellValue("A{$row}", 'Hello'); + $sheet->setCellValue("B{$row}", 'World !'); } // isFilteredColumn iterates rowAttributes when calling the read filter $sheet->getRowDimension(5)->setRowHeight(10); $sheet->getColumnDimension('A')->setWidth(20); + $sheet->getColumnDimension('B')->setWidth(30); $this->assertColumn($spreadsheet); + $this->assertColumn($spreadsheet, 'B', 30); // A reader-customeiser closure and ReadFilter implementation that skips rows >4 $readerCustomizer = function ($reader) { $readFilterStub = $this->createMock(IReadFilter::class); $readFilterStub->method('readCell') ->willReturnCallback(function ($column, $row, $worksheetName = '') { + if ($column == 'B') { + return false; + } return $row <= 4; }); $reader->setReadFilter($readFilterStub); @@ -65,15 +71,23 @@ class ColumnWidthTest extends AbstractFunctional // Save and reload a filtered set and assert the same width $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format, $readerCustomizer); $this->assertColumn($reloadedSpreadsheet); + $this->assertNotColumn($reloadedSpreadsheet, 'B', 30); } - private function assertColumn(Spreadsheet $spreadsheet): void + private function assertColumn(Spreadsheet $spreadsheet, $column = 'A', $expected = 20): void { $sheet = $spreadsheet->getActiveSheet(); $columnDimensions = $sheet->getColumnDimensions(); - self::assertArrayHasKey('A', $columnDimensions); - $column = array_shift($columnDimensions); - self::assertEquals(20, $column->getWidth()); + self::assertArrayHasKey($column, $columnDimensions); + self::assertEquals($expected, $columnDimensions[$column]->getWidth()); + } + + private function assertNotColumn(Spreadsheet $spreadsheet, $column = 'A', $expected = 20): void + { + $sheet = $spreadsheet->getActiveSheet(); + $columnDimensions = $sheet->getColumnDimensions(); + + self::assertArrayNotHasKey($column, $columnDimensions); } }