PhpSpreadsheet/tests/PhpSpreadsheet/Cell/DefaultValueBinderTest.php

88 lines
2.3 KiB
PHP
Raw Normal View History

2015-03-27 21:28:26 +00:00
<?php
namespace PhpSpreadsheet\Tests\Cell;
2015-03-27 21:28:26 +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
{
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 . '/');
}
require_once(PHPEXCEL_ROOT . '/Bootstrap.php');
2015-05-17 13:00:02 +00:00
}
2015-03-27 21:28:26 +00:00
protected function createCellStub()
{
// Create a stub for the Cell class.
$this->cellStub = $this->getMockBuilder(Cell::class)
->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();
$binder = new DefaultValueBinder();
2015-05-17 13:00:02 +00:00
$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
*/
2015-05-17 13:00:02 +00:00
public function testDataTypeForValue()
{
list($args, $expectedResult) = func_get_args();
$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()
{
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()
{
$objRichText = new RichText();
$objRichText->createText('Hello World');
$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
}