Example #1
0
 /**
  * Tests initialization of the iterator.
  *
  * @test
  *
  * @covers ::initializeIterator
  */
 public function initializeIterator()
 {
     $configuration = array('path' => $this->happyPath, 'identifiers' => array('id'), 'header_row_count' => 1);
     $config_common = array('path' => $this->sad, 'identifiers' => array('id'));
     $config_delimiter = array('delimiter' => '|');
     $config_enclosure = array('enclosure' => '%');
     $config_escape = array('escape' => '`');
     $csv = new CSV($config_common + $config_delimiter, $this->pluginId, $this->pluginDefinition, $this->plugin);
     $this->assertEquals(current($config_delimiter), $csv->initializeIterator()->getCsvControl()[0]);
     $this->assertEquals('"', $csv->initializeIterator()->getCsvControl()[1]);
     $csv = new CSV($config_common + $config_enclosure, $this->pluginId, $this->pluginDefinition, $this->plugin);
     $this->assertEquals(',', $csv->initializeIterator()->getCsvControl()[0]);
     $this->assertEquals(current($config_enclosure), $csv->initializeIterator()->getCsvControl()[1]);
     $csv = new CSV($config_common + $config_delimiter + $config_enclosure + $config_escape, $this->pluginId, $this->pluginDefinition, $this->plugin);
     $csv_file_object = $csv->getIterator();
     $row = array('1', 'Justin', 'Dean', '*****@*****.**', 'Indonesia', '60.242.130.40');
     $csv_file_object->rewind();
     $current = $csv_file_object->current();
     $this->assertArrayEquals($row, $current);
     $csv = new CSV($configuration, $this->pluginId, $this->pluginDefinition, $this->plugin);
     $csv_file_object = $csv->getIterator();
     $row = array('id' => '1', 'first_name' => 'Justin', 'last_name' => 'Dean', 'email' => '*****@*****.**', 'country' => 'Indonesia', 'ip_address' => '60.242.130.40');
     $second_row = array('id' => '2', 'first_name' => 'Joan', 'last_name' => 'Jordan', 'email' => '*****@*****.**', 'country' => 'Thailand', 'ip_address' => '137.230.209.171');
     $csv_file_object->rewind();
     $current = $csv_file_object->current();
     $this->assertArrayEquals($row, $current);
     $csv_file_object->next();
     $next = $csv_file_object->current();
     $this->assertArrayEquals($second_row, $next);
     $column_names = array('column_names' => array(0 => array('id' => 'identifier'), 2 => array('last_name' => 'User last name')));
     $csv = new CSV($configuration + $column_names, $this->pluginId, $this->pluginDefinition, $this->plugin);
     $csv_file_object = $csv->getIterator();
     $row = array('id' => '1', 'last_name' => 'Dean');
     $second_row = array('id' => '2', 'last_name' => 'Jordan');
     $csv_file_object->rewind();
     $current = $csv_file_object->current();
     $this->assertArrayEquals($row, $current);
     $csv_file_object->next();
     $next = $csv_file_object->current();
     $this->assertArrayEquals($second_row, $next);
 }