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