 aef4d711f5
			
		
	
	
		aef4d711f5
		
			
		
	
	
	
	
		
			
			Because even if it doesn't make a difference in practice, it is technically more correct to call static methods statically. It also better advertise that those methods can be used from any context.
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace PhpOffice\PhpSpreadsheetTests\Worksheet;
 | |
| 
 | |
| use PhpOffice\PhpSpreadsheet\Cell;
 | |
| use PhpOffice\PhpSpreadsheet\Worksheet;
 | |
| use PhpOffice\PhpSpreadsheet\Worksheet\ColumnCellIterator;
 | |
| use PHPUnit_Framework_TestCase;
 | |
| 
 | |
| class ColumnCellIteratorTest extends PHPUnit_Framework_TestCase
 | |
| {
 | |
|     public $mockWorksheet;
 | |
|     public $mockColumnCell;
 | |
| 
 | |
|     public function setUp()
 | |
|     {
 | |
|         $this->mockCell = $this->getMockBuilder(Cell::class)
 | |
|             ->disableOriginalConstructor()
 | |
|             ->getMock();
 | |
| 
 | |
|         $this->mockWorksheet = $this->getMockBuilder(Worksheet::class)
 | |
|             ->disableOriginalConstructor()
 | |
|             ->getMock();
 | |
| 
 | |
|         $this->mockWorksheet->expects($this->any())
 | |
|             ->method('getHighestRow')
 | |
|             ->will($this->returnValue(5));
 | |
|         $this->mockWorksheet->expects($this->any())
 | |
|             ->method('getCellByColumnAndRow')
 | |
|             ->will($this->returnValue($this->mockCell));
 | |
|     }
 | |
| 
 | |
|     public function testIteratorFullRange()
 | |
|     {
 | |
|         $iterator = new ColumnCellIterator($this->mockWorksheet, 'A');
 | |
|         $ColumnCellIndexResult = 1;
 | |
|         self::assertEquals($ColumnCellIndexResult, $iterator->key());
 | |
| 
 | |
|         foreach ($iterator as $key => $ColumnCell) {
 | |
|             self::assertEquals($ColumnCellIndexResult++, $key);
 | |
|             self::assertInstanceOf(Cell::class, $ColumnCell);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function testIteratorStartEndRange()
 | |
|     {
 | |
|         $iterator = new ColumnCellIterator($this->mockWorksheet, 'A', 2, 4);
 | |
|         $ColumnCellIndexResult = 2;
 | |
|         self::assertEquals($ColumnCellIndexResult, $iterator->key());
 | |
| 
 | |
|         foreach ($iterator as $key => $ColumnCell) {
 | |
|             self::assertEquals($ColumnCellIndexResult++, $key);
 | |
|             self::assertInstanceOf(Cell::class, $ColumnCell);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function testIteratorSeekAndPrev()
 | |
|     {
 | |
|         $iterator = new ColumnCellIterator($this->mockWorksheet, 'A', 2, 4);
 | |
|         $columnIndexResult = 4;
 | |
|         $iterator->seek(4);
 | |
|         self::assertEquals($columnIndexResult, $iterator->key());
 | |
| 
 | |
|         for ($i = 1; $i < $columnIndexResult - 1; ++$i) {
 | |
|             $iterator->prev();
 | |
|             self::assertEquals($columnIndexResult - $i, $iterator->key());
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @expectedException \PhpOffice\PhpSpreadsheet\Exception
 | |
|      */
 | |
|     public function testSeekOutOfRange()
 | |
|     {
 | |
|         $iterator = new ColumnCellIterator($this->mockWorksheet, 'A', 2, 4);
 | |
|         $iterator->seek(1);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @expectedException \PhpOffice\PhpSpreadsheet\Exception
 | |
|      */
 | |
|     public function testPrevOutOfRange()
 | |
|     {
 | |
|         $iterator = new ColumnCellIterator($this->mockWorksheet, 'A', 2, 4);
 | |
|         $iterator->prev();
 | |
|     }
 | |
| }
 |