Files
Chamilo/vendor/ddeboer/data-import/tests/Reader/ExcelReaderTest.php
2025-08-14 22:41:49 +02:00

58 lines
1.8 KiB
PHP

<?php
namespace Ddeboer\DataImport\Tests\Reader;
use Ddeboer\DataImport\Reader\ExcelReader;
class ExcelReaderTest extends \PHPUnit_Framework_TestCase
{
public function setUp()
{
if (!extension_loaded('zip')) {
$this->markTestSkipped();
}
}
public function testGetFields()
{
$file = new \SplFileObject(__DIR__.'/../Fixtures/data_column_headers.xlsx');
$reader = new ExcelReader($file, 0);
$this->assertEquals(array('id', 'number', 'description'), $reader->getFields());
$this->assertEquals(array('id', 'number', 'description'), $reader->getColumnHeaders());
}
public function testCountWithoutHeaders()
{
$file = new \SplFileObject(__DIR__.'/../Fixtures/data_no_column_headers.xls');
$reader = new ExcelReader($file);
$this->assertEquals(3, $reader->count());
}
public function testCountWithHeaders()
{
$file = new \SplFileObject(__DIR__.'/../Fixtures/data_column_headers.xlsx');
$reader = new ExcelReader($file, 0);
$this->assertEquals(3, $reader->count());
}
public function testIterate()
{
$file = new \SplFileObject(__DIR__.'/../Fixtures/data_column_headers.xlsx');
$reader = new ExcelReader($file, 0);
foreach ($reader as $row) {
$this->assertInternalType('array', $row);
$this->assertEquals(array('id', 'number', 'description'), array_keys($row));
}
}
public function testMultiSheet()
{
$file = new \SplFileObject(__DIR__.'/../Fixtures/data_multi_sheet.xls');
$sheet1reader = new ExcelReader($file, null, 0);
$this->assertEquals(3, $sheet1reader->count());
$sheet2reader = new ExcelReader($file, null, 1);
$this->assertEquals(2, $sheet2reader->count());
}
}