setValue($v); $this->assertSame($c->value, $v); } /** * @dataProvider setValueProvider */ public function testConstruct($v) { $this->assertSame((new Cell($v))->value, $v); } public function testConstructDefault() { $this->assertNull((new Cell)->value); } public function toCSVProvider() { return [ [0, '0'], [1, '1'], [1.23, '1.23'], [true, '1'], [false, '0'], [null, ''], ['', ''], ['string', 'string'], ['str"ing', '"str""ing"'], ['str"ing"', '"str""ing"""'], ['"string"', '"""string"""'], ['str,ing', '"str,ing"'], ['str,ing,', '"str,ing,"'], [',string,', '",string,"'], ["str\ning", "\"str\ning\""], ["str\ning\n", "\"str\ning\n\""], ["string\n", "\"string\n\""], ["\nstring", "\"\nstring\""], ["str\ring", "\"str\ring\""], ["str\r\ning", "\"str\r\ning\""], ["str\rin\ng", "\"str\rin\ng\""], ]; } /** * @dataProvider toCSVProvider */ public function testToCSV($v, $csv) { $c = new Cell($v); $this->assertSame($c->toCSV(), $csv); } public function toCSVDelimiterProvider() { return [ [1, "\t", "1"], ["1\t2", "\t", "\"1\t2\""], ["1\t2", "\t", "\"1\t2\""], ["12\t", "\t", "\"12\t\""], ['a#$b', '#$', '"a#$b"'], ['a#$$b', '#$', '"a#$$b"'], ['1.23', '.', '"1.23"'], ]; } /** * @dataProvider toCSVDelimiterProvider */ public function testToCSVDelimiter($v, $d, $csv) { $c = new Cell($v); $this->assertSame($c->toCSV($d), $csv); } public function toCSVQuotesProvider() { return [ [1, '*', '1'], ['1*2', '*', '*1**2*'], ['12*', '*', '*12***'], ['1"2"', '*', '1"2"'], ['1*"2"', '*', '*1**"2"*'], ['', '*', ''], ]; } /** * @dataProvider toCSVQuotesProvider */ public function testToCSVQuotes($v, $q, $csv) { $c = new Cell($v); $this->assertSame($c->toCSV(',', $q), $csv); } /** * @expectedException InvalidArgumentException */ public function testToCsvDelimiterEqualsQuotes() { $c = new Cell; $c->toCSV('*', '*'); } /** * @expectedException InvalidArgumentException */ public function testToCsvDelimiterEmpty() { $c = new Cell; $c->toCSV('', '*'); } /** * @expectedException InvalidArgumentException */ public function testToCsvQuotesEmpty() { $c = new Cell; $c->toCSV('*', ''); } }