| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 | <?phpnamespace fphammerle\helpers\tests\table;use \fphammerle\helpers\table\Row;class RowTest extends \PHPUnit_Framework_TestCase{    public function setCellValueProvider()    {        return [            [0, 1],            [0, 1.23],            [0, 'string'],            [0, true],            [3, 1],            [3, 1.23],            [3, 'string'],            [3, true],            ];    }    /**     * @dataProvider setCellValueProvider     */    public function testSetCellValue($c, $v)    {        $r = new Row;        $r->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('');    }}
 |