setCellValue($c, $v); $this->assertSame($v, $r->getCell($c)->value); } public function setCellValueMultipleProvider() { return [ [[[0, 'c0']]], [[[0, 'c0'], [1, 'c1']]], [[[0, 'c0'], [1, 'c1'], [3, 'c3']]], [[[2, 'c2'], [3, 'c3']]], ]; } /** * @dataProvider setCellValueMultipleProvider */ public function testSetCellMultipleValue($vv) { $r = new Row; foreach($vv as $cv) { $r->setCellValue($cv[0], $cv[1]); } foreach($vv as $cv) { $this->assertSame($cv[1], $r->getCell($cv[0])->value); } } public function constructProvider() { return [ [[]], [['c0']], [['c0', 'c1']], [['c0', 'c1', 'c2']], ]; } /** * @dataProvider constructProvider */ public function testConstruct($vv) { $r = new Row($vv); foreach($vv as $c => $v) { $this->assertSame($v, $r->getCell($c)->value); } } public function getColumnsCountProvider() { return [ [[], 0], [[[0, 'c0']], 1], [[[0, 'c0'], [1, 'c1']], 2], [[[0, 'c0'], [1, 'c1'], [3, 'c3']], 4], [[[5, 'c5']], 6], ]; } /** * @dataProvider getColumnsCountProvider */ public function testGetColumnsCountValue($vv, $count) { $r = new Row; foreach($vv as $cv) { $r->setCellValue($cv[0], $cv[1]); } $this->assertSame($count, $r->columnsCount); } public function toCSVProvider() { return [ [[], "\r\n"], [[[0, 'c0']], "c0\r\n"], [[[0, 'c0'], [1, 'c1']], "c0,c1\r\n"], [[[0, 'c0'], [1, 'c1'], [3, 'c3']], "c0,c1,,c3\r\n"], [[[2, 'c2'], [3, 'c3']], ",,c2,c3\r\n"], [[[2, 'c,2'], [3, 'c3']], ",,\"c,2\",c3\r\n"], [[[2, "c2\n"], [3, 'c"3"']], ",,\"c2\n\",\"c\"\"3\"\"\"\r\n"], ]; } /** * @dataProvider toCSVProvider */ public function testToCSVValue($vv, $csv) { $r = new Row; foreach($vv as $cv) { $r->setCellValue($cv[0], $cv[1]); } $this->assertSame($csv, $r->toCSV()); } public function toCSVAfterConstructProvider() { return [ [[], "\r\n"], [['c0'], "c0\r\n"], [['c0', 'c1'], "c0,c1\r\n"], [['c0', 'c1', null, 'c3'], "c0,c1,,c3\r\n"], ]; } /** * @dataProvider toCSVAfterConstructProvider */ public function testToCSVAfterConstructValue($vv, $csv) { $r = new Row($vv); $this->assertSame($csv, $r->toCSV()); } public function toCSVDelimiterProvider() { return [ [[], "\t", "\r\n"], [['c0'], "\t", "c0\r\n"], [['c0', 'c1'], "**", "c0**c1\r\n"], [['c0', 'c1', null, 'c3'], "\t", "c0\tc1\t\tc3\r\n"], [['c0', 'c1', null, "c\t3", 'c4'], "\t", "c0\tc1\t\t\"c\t3\"\tc4\r\n"], ]; } /** * @dataProvider toCSVDelimiterProvider */ public function testToCSVDelimiterValue($vv, $d, $csv) { $r = new Row($vv); $this->assertSame($csv, $r->toCSV($d)); } public function toCSVColumnsNumberProvider() { return [ [[], 0, "\r\n"], [[], 1, "\r\n"], [[], 2, "|\r\n"], [[], 4, "|||\r\n"], [['a', 'b'], null, "a|b\r\n"], [['a', 'b'], 1, "a\r\n"], [['a', 'b'], 2, "a|b\r\n"], [['a', 'b'], 3, "a|b|\r\n"], [['a', 'b'], 5, "a|b|||\r\n"], ]; } /** * @dataProvider toCSVColumnsNumberProvider */ public function testToCSVColumnsNumberValue($vv, $n, $csv) { $r = new Row($vv); $this->assertSame($csv, $r->toCSV('|', $n)); } /** * @expectedException InvalidArgumentException */ public function testToCsvDelimiterEmpty() { $c = new Row; $c->toCSV(''); } }