2015-03-27 21:28:26 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
require_once 'testDataFileIterator.php';
|
|
|
|
|
|
|
|
class DefaultValueBinderTest extends PHPUnit_Framework_TestCase
|
|
|
|
{
|
2015-04-16 00:09:29 +00:00
|
|
|
protected $cellStub;
|
2015-03-27 21:28:26 +00:00
|
|
|
|
|
|
|
public function setUp()
|
|
|
|
{
|
|
|
|
if (!defined('PHPEXCEL_ROOT'))
|
|
|
|
{
|
|
|
|
define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
|
|
|
|
}
|
|
|
|
require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
|
|
|
|
}
|
|
|
|
|
2015-04-16 00:09:29 +00:00
|
|
|
protected function createCellStub()
|
|
|
|
{
|
|
|
|
// Create a stub for the Cell class.
|
|
|
|
$this->cellStub = $this->getMockBuilder('PHPExcel_Cell')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
// Configure the stub.
|
|
|
|
$this->cellStub->expects($this->any())
|
|
|
|
->method('setValueExplicit')
|
|
|
|
->will($this->returnValue(true));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @dataProvider binderProvider
|
|
|
|
*/
|
|
|
|
public function testBindValue($value)
|
|
|
|
{
|
|
|
|
$this->createCellStub();
|
|
|
|
$binder = new PHPExcel_Cell_DefaultValueBinder();
|
|
|
|
$result = $binder->bindValue($this->cellStub, $value);
|
|
|
|
$this->assertTrue($result);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function binderProvider()
|
|
|
|
{
|
|
|
|
return array(
|
|
|
|
array(null),
|
|
|
|
array(''),
|
|
|
|
array('ABC'),
|
|
|
|
array('=SUM(A1:B2)'),
|
|
|
|
array(true),
|
|
|
|
array(false),
|
|
|
|
array(123),
|
|
|
|
array(-123.456),
|
|
|
|
array('123'),
|
|
|
|
array('-123.456'),
|
|
|
|
array('#REF!'),
|
|
|
|
array(new DateTime()),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2015-03-27 21:28:26 +00:00
|
|
|
/**
|
|
|
|
* @dataProvider providerDataTypeForValue
|
|
|
|
*/
|
|
|
|
public function testDataTypeForValue()
|
|
|
|
{
|
|
|
|
$args = func_get_args();
|
|
|
|
$expectedResult = array_pop($args);
|
2015-04-16 00:09:29 +00:00
|
|
|
$result = call_user_func_array(array('PHPExcel_Cell_DefaultValueBinder','dataTypeForValue'), $args);
|
2015-03-27 21:28:26 +00:00
|
|
|
$this->assertEquals($expectedResult, $result);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function providerDataTypeForValue()
|
|
|
|
{
|
|
|
|
return new testDataFileIterator('rawTestData/Cell/DefaultValueBinder.data');
|
|
|
|
}
|
|
|
|
|
2015-04-16 00:09:29 +00:00
|
|
|
public function testDataTypeForRichTextObject()
|
|
|
|
{
|
|
|
|
$objRichText = new PHPExcel_RichText();
|
|
|
|
$objRichText->createText('Hello World');
|
|
|
|
|
|
|
|
$expectedResult = PHPExcel_Cell_DataType::TYPE_INLINE;
|
|
|
|
$result = call_user_func(array('PHPExcel_Cell_DefaultValueBinder','dataTypeForValue'), $objRichText);
|
|
|
|
$this->assertEquals($expectedResult, $result);
|
|
|
|
}
|
2015-03-27 21:28:26 +00:00
|
|
|
}
|