| 
									
										
										
										
											2015-03-27 21:28:26 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-28 07:29:44 +00:00
										 |  |  | require_once 'testDataFileIteratorJson.php'; | 
					
						
							| 
									
										
										
										
											2015-03-27 21:28:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											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.
 | 
					
						
							| 
									
										
										
										
											2015-05-28 07:29:44 +00:00
										 |  |  |         $this->cellStub = $this->getMockBuilder('\\PHPExcel\\Cell') | 
					
						
							| 
									
										
										
										
											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(); | 
					
						
							| 
									
										
										
										
											2015-05-28 07:29:44 +00:00
										 |  |  |         $binder = new \PHPExcel\Cell\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(); | 
					
						
							| 
									
										
										
										
											2015-05-28 07:29:44 +00:00
										 |  |  |         $result = call_user_func_array(array('\\PHPExcel\\Cell\\DefaultValueBinder','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() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-05-28 07:29:44 +00:00
										 |  |  |         return new testDataFileIteratorJson('rawTestData/Cell/DefaultValueBinder.json'); | 
					
						
							| 
									
										
										
										
											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() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-05-28 07:29:44 +00:00
										 |  |  |         $objRichText = new \PHPExcel\RichText(); | 
					
						
							| 
									
										
										
										
											2015-04-16 00:09:29 +00:00
										 |  |  |         $objRichText->createText('Hello World'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-28 07:29:44 +00:00
										 |  |  |         $expectedResult = \PHPExcel\Cell\DataType::TYPE_INLINE; | 
					
						
							|  |  |  |         $result = call_user_func(array('\\PHPExcel\\Cell\\DefaultValueBinder','dataTypeForValue'), $objRichText); | 
					
						
							| 
									
										
										
										
											2015-05-17 13:00:02 +00:00
										 |  |  |         $this->assertEquals($expectedResult, $result); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-03-27 21:28:26 +00:00
										 |  |  | } |