/** * @test * @dataProvider cellsInRowsMarginsProvider */ public function setColumnsMarginsWhenTableHasBeenNotifiedByCell(array $cellsMarginsLeft, array $cellsMarginsRight) { $numberOfColumns = count($cellsMarginsLeft); $expectedMarginsLeft = $expectedMarginsRight = array_fill(0, $numberOfColumns, 0); foreach ($cellsMarginsLeft as $columnNumber => $marginsLeft) { foreach ($marginsLeft as $rowNumber => $marginLeft) { $marginRight = $cellsMarginsRight[$columnNumber][$rowNumber]; $cell = new Cell(array('margin-left' => $marginLeft, 'margin-right' => $marginRight)); $cell->setNumberOfColumn($columnNumber); $expectedMarginsLeft[$columnNumber] = max($expectedMarginsLeft[$columnNumber], $marginLeft); $expectedMarginsRight[$columnNumber] = max($expectedMarginsRight[$columnNumber], $marginRight); $cells[] = $cell; } } foreach ($cells as $cell) { $this->table->attributeChanged($cell, 'margin-left', 0); $this->table->attributeChanged($cell, 'margin-right', 0); } $this->assertEquals($expectedMarginsLeft, $this->table->getMarginsLeftOfColumns()); $this->assertEquals($expectedMarginsRight, $this->table->getMarginsRightOfColumns()); }