/**
  * @expectedException InvalidArgumentException
  */
 public function testDirectoryValidation()
 {
     $target_file = __DIR__ . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'line_sample.txt';
     $enumerator = new Enumerator($target_file, new DirectoryReader());
     foreach ($enumerator->enumerate() as $inode) {
     }
 }
 public function testFunctionMap()
 {
     $enumerator = new Enumerator($this->sample(), new LineReader(new FunctionMapTransformer(function ($value) {
         return preg_split('/-/', trim($value));
     })));
     $collector = [];
     foreach ($enumerator->enumerate() as $values) {
         $collector[] = $values;
     }
     $expected = [["lorem"], ["ipsum"], ["dolor", "sit"]];
     $this->assertEquals($expected, $collector, "Last value should be an array with two elements");
 }
示例#3
0
 public function testTransformerAll()
 {
     $transformer = new CSVTransformer();
     $transformer->mapColumn(0, function () {
         return 1;
     });
     $transformer->columnsToNames([0 => "First", 1 => "Second", 2 => "Third"]);
     $transformer->onlyColumns(0, 2);
     $enumerator = new Enumerator($this->sample(), new CSVReader(CSVReader::COMMA_DELIMITED, $transformer));
     $rows = [];
     foreach ($enumerator->enumerate() as $row) {
         $rows[] = $row;
     }
     $expected = [["First" => 1, "Third" => "dolor"], ["First" => 1, "Third" => "consectetur"], ["First" => 1, "Third" => "Donec"]];
     $this->assertEquals($expected, $rows, "Transformations should work well togheter :)");
 }
 public function testTwoChainedFunctionMapTransformers()
 {
     $transformers = new FunctionMapTransformer(function ($value) {
         return $value . '_first';
     });
     $transformers->chain(new FunctionMapTransformer(function ($value) {
         return $value . '_second';
     }));
     $enumerator = new Enumerator(__DIR__ . '/data/line_sample.txt', new LineReader($transformers));
     $collector = [];
     foreach ($enumerator->enumerate() as $line) {
         $collector[] = $line;
     }
     $expected_raw = file(__DIR__ . '/data/line_sample.txt');
     $expected = [];
     foreach ($expected_raw as $raw_line) {
         $expected[] = $raw_line . '_first_second';
     }
     $this->assertEquals($expected, $collector, "Order should be preserved in transformer chaining");
 }