106 lines
2.5 KiB
PHP
106 lines
2.5 KiB
PHP
<?php
|
|
|
|
class CustomValuBinderTest extends TestCase {
|
|
|
|
/**
|
|
* Setup
|
|
*/
|
|
public function setUp()
|
|
{
|
|
parent::setUp();
|
|
|
|
// Set excel class
|
|
$this->excel = App::make('phpexcel');
|
|
|
|
// Set writer class
|
|
$this->reader = App::make('excel.reader');
|
|
$this->reader->injectExcel($this->excel);
|
|
$this->reader->noHeading(true);
|
|
|
|
// Set value binder
|
|
$binder = new StubValueBinder();
|
|
$this->reader->setValueBinder($binder);
|
|
|
|
// Load csv file
|
|
$this->loadFile();
|
|
}
|
|
|
|
/**
|
|
* Tear down
|
|
*/
|
|
public function tearDown()
|
|
{
|
|
// Necessary to reset the value binder back to default so that future test classes are unaffected.
|
|
$this->reader->resetValueBinder();
|
|
}
|
|
|
|
public function testDefaultGet()
|
|
{
|
|
$got = $this->loadedFile->get();
|
|
$this->assertInstanceOf('Maatwebsite\Excel\Collections\RowCollection', $got);
|
|
$this->assertCount(5, $got);
|
|
}
|
|
|
|
public function testNumeric()
|
|
{
|
|
$got = $this->loadedFile->toArray();
|
|
|
|
$this->assertTrue(is_string($got[0][0]));
|
|
$this->assertEquals('00123', $got[0][0]);
|
|
}
|
|
|
|
public function testRealNull()
|
|
{
|
|
$got = $this->loadedFile->toArray();
|
|
|
|
$this->assertTrue(is_null($got[1][0]));
|
|
$this->assertEquals('', $got[1][0]);
|
|
}
|
|
|
|
public function testStringNull()
|
|
{
|
|
$got = $this->loadedFile->toArray();
|
|
|
|
$this->assertTrue(is_string($got[2][0]));
|
|
$this->assertEquals('null', $got[2][0]);
|
|
}
|
|
|
|
public function testEquation()
|
|
{
|
|
$got = $this->loadedFile->toArray();
|
|
|
|
$this->assertTrue(is_string($got[3][0]));
|
|
$this->assertEquals('=1+2', $got[3][0]);
|
|
}
|
|
|
|
public function testBoolean()
|
|
{
|
|
$got = $this->loadedFile->toArray();
|
|
|
|
$this->assertTrue(is_string($got[4][0]));
|
|
$this->assertEquals('true', $got[4][0]);
|
|
}
|
|
|
|
/**
|
|
* Load a csv file
|
|
* @return [type] [description]
|
|
*/
|
|
protected function loadFile()
|
|
{
|
|
// Set test csv file
|
|
$file = __DIR__ . '/files/' . 'customBinder.csv';
|
|
|
|
// Loaded csv
|
|
$this->loadedFile = $this->reader->load($file);
|
|
}
|
|
}
|
|
|
|
class StubValueBinder extends PHPExcel_Cell_DefaultValueBinder implements PHPExcel_Cell_IValueBinder
|
|
{
|
|
public function bindValue(PHPExcel_Cell $cell, $value = null)
|
|
{
|
|
$cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_STRING);
|
|
|
|
return true;
|
|
}
|
|
} |