| 
									
										
										
										
											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
										 |  |  | } |