/** * @dataProvider getIteratorTestData */ public function testIterator($content, array $tokens) { $reader = new Reader(); $reader->open(fopen('data://text/plain;base64,' . base64_encode($content), 'r')); $iterator = new TokenIterator(new Tokenizer(',', new Enclosure('~', '|')), $reader); $index = -1; foreach ($iterator as $index => $token) { $this->assertTrue($token->is($tokens[$index][0])); $this->assertEquals($tokens[$index][1], $token->getContent()); } $this->assertEquals(count($tokens), $index + 1); }
/** * @dataProvider getReadLineData */ public function testReadLine($content, array $lines) { $resource = fopen('data://text/plain;base64,' . base64_encode($content), 'r'); $reader = new Reader(1); $reader->open($resource); foreach ($lines as $line) { $this->assertEquals($line, $reader->readLine(true)); } try { $reader->readLine(); $this->assertTrue(false); } catch (ReadingFinishedException $e) { $this->assertTrue(true); } }
/** * @dataProvider getParseTestData */ public function testParse($content, array $result) { $reader = new Reader(); $reader->open(fopen('data://text/plain;base64,' . base64_encode($content), 'r')); $parser = new Parser(new TokenIterator(new Tokenizer(',', new Enclosure('|')), $reader)); $rowIndex = -1; foreach ($result as $rowIndex => $values) { $found = $parser->parse(new State()); foreach ($values as $cellIndex => $value) { $this->assertEquals($value, $found[$cellIndex]); } $this->assertEquals(count($values), count($found)); } $this->assertEquals(count($result), $rowIndex + 1); }