2015-03-27 21:28:26 +00:00
|
|
|
<?php
|
|
|
|
|
2016-08-13 17:22:11 +00:00
|
|
|
namespace PhpSpreadsheet\Tests\Cell;
|
2015-03-27 21:28:26 +00:00
|
|
|
|
2016-08-14 04:08:43 +00:00
|
|
|
use PHPExcel\Cell\DefaultValueBinder;
|
|
|
|
use PHPExcel\Cell;
|
|
|
|
use PHPExcel\RichText;
|
|
|
|
use PHPExcel\Cell\DataType;
|
|
|
|
|
2016-03-22 14:35:50 +00:00
|
|
|
class DefaultValueBinderTest extends \PHPUnit_Framework_TestCase
|
2015-03-27 21:28:26 +00:00
|
|
|
{
|
2015-04-16 00:09:29 +00:00
|
|
|
protected $cellStub;
|
2015-03-27 21:28:26 +00:00
|
|
|
|
|
|
|
public function setUp()
|
|
|
|
{
|
2015-05-17 16:34:30 +00:00
|
|
|
if (!defined('PHPEXCEL_ROOT')) {
|
2015-03-27 21:28:26 +00:00
|
|
|
define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
|
|
|
|
}
|
2015-05-28 07:29:44 +00:00
|
|
|
require_once(PHPEXCEL_ROOT . '/Bootstrap.php');
|
2015-05-17 13:00:02 +00:00
|
|
|
}
|
2015-03-27 21:28:26 +00:00
|
|
|
|
2015-04-16 00:09:29 +00:00
|
|
|
protected function createCellStub()
|
|
|
|
{
|
|
|
|
// Create a stub for the Cell class.
|
2016-08-14 04:08:43 +00:00
|
|
|
$this->cellStub = $this->getMockBuilder(Cell::class)
|
2015-04-16 00:09:29 +00:00
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
// Configure the stub.
|
|
|
|
$this->cellStub->expects($this->any())
|
|
|
|
->method('setValueExplicit')
|
|
|
|
->will($this->returnValue(true));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @dataProvider binderProvider
|
|
|
|
*/
|
|
|
|
public function testBindValue($value)
|
2015-05-17 13:00:02 +00:00
|
|
|
{
|
|
|
|
$this->createCellStub();
|
2016-08-14 04:08:43 +00:00
|
|
|
$binder = new DefaultValueBinder();
|
2015-05-17 13:00:02 +00:00
|
|
|
$result = $binder->bindValue($this->cellStub, $value);
|
|
|
|
$this->assertTrue($result);
|
|
|
|
}
|
2015-04-16 00:09:29 +00:00
|
|
|
|
|
|
|
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!'),
|
2015-05-28 07:29:44 +00:00
|
|
|
array(new \DateTime()),
|
2015-04-16 00:09:29 +00:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2015-03-27 21:28:26 +00:00
|
|
|
/**
|
|
|
|
* @dataProvider providerDataTypeForValue
|
|
|
|
*/
|
2015-05-17 13:00:02 +00:00
|
|
|
public function testDataTypeForValue()
|
|
|
|
{
|
2015-05-28 22:15:46 +00:00
|
|
|
list($args, $expectedResult) = func_get_args();
|
2016-08-14 04:08:43 +00:00
|
|
|
$result = call_user_func_array(array(DefaultValueBinder::class,'dataTypeForValue'), $args);
|
2015-05-17 13:00:02 +00:00
|
|
|
$this->assertEquals($expectedResult, $result);
|
|
|
|
}
|
2015-03-27 21:28:26 +00:00
|
|
|
|
|
|
|
public function providerDataTypeForValue()
|
|
|
|
{
|
2016-08-16 12:00:19 +00:00
|
|
|
return require 'data/Cell/DefaultValueBinder.php';
|
2015-05-17 13:00:02 +00:00
|
|
|
}
|
2015-03-27 21:28:26 +00:00
|
|
|
|
2015-05-17 13:00:02 +00:00
|
|
|
public function testDataTypeForRichTextObject()
|
|
|
|
{
|
2016-08-14 04:08:43 +00:00
|
|
|
$objRichText = new RichText();
|
2015-04-16 00:09:29 +00:00
|
|
|
$objRichText->createText('Hello World');
|
|
|
|
|
2016-08-14 04:08:43 +00:00
|
|
|
$expectedResult = DataType::TYPE_INLINE;
|
|
|
|
$result = call_user_func(array(DefaultValueBinder::class,'dataTypeForValue'), $objRichText);
|
2015-05-17 13:00:02 +00:00
|
|
|
$this->assertEquals($expectedResult, $result);
|
|
|
|
}
|
2015-03-27 21:28:26 +00:00
|
|
|
}
|