111 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| use Mockery as m;
 | |
| use Maatwebsite\Excel\Excel;
 | |
| use Illuminate\Filesystem\Filesystem;
 | |
| 
 | |
| class ExcelTestCase extends PHPUnit_Framework_TestCase {
 | |
| 
 | |
|     /**
 | |
|      * Mocks
 | |
|      * @var [type]
 | |
|      */
 | |
|     public $phpexcel;
 | |
|     public $reader;
 | |
|     public $writer;
 | |
|     public $excel;
 | |
|     public $batch;
 | |
| 
 | |
|     /**
 | |
|      * Setup test case
 | |
|      */
 | |
|     public function setUp()
 | |
|     {
 | |
|         parent::setUp();
 | |
| 
 | |
|         // Set the mocks
 | |
|         $this->setMocks();
 | |
| 
 | |
|         // Init our excel class
 | |
|         $this->excel = new Excel($this->phpexcel, $this->reader, $this->writer);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Test the constructor
 | |
|      * @return [type] [description]
 | |
|      */
 | |
|     public function testConstructor()
 | |
|     {
 | |
|         $this->assertInstanceOf('Maatwebsite\Excel\Excel', $this->excel);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the mocks
 | |
|      */
 | |
|     public function setMocks()
 | |
|     {
 | |
|         $this->mockPHPExcel();
 | |
|         $this->mockReader();
 | |
|         $this->mockWriter();
 | |
|         $this->mockBatch();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Mock PHPExcel class
 | |
|      * @return [type] [description]
 | |
|      */
 | |
|     public function mockPHPExcel()
 | |
|     {
 | |
|         $this->phpexcel = m::mock('Maatwebsite\Excel\Classes\PHPExcel');
 | |
|         $this->phpexcel->shouldReceive('getID');
 | |
|         $this->phpexcel->shouldReceive('disconnectWorksheets');
 | |
|         $this->phpexcel->shouldReceive('setDefaultProperties');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Mock Reader class
 | |
|      * @return [type] [description]
 | |
|      */
 | |
|     public function mockReader()
 | |
|     {
 | |
|         $this->reader = m::mock('Maatwebsite\Excel\Readers\LaravelExcelReader');
 | |
|         $this->reader->shouldReceive('injectExcel')->with($this->phpexcel);
 | |
|         $this->reader->shouldReceive('load');
 | |
|         $this->reader->shouldReceive('setSelectedSheets');
 | |
|         $this->reader->shouldReceive('setSelectedSheetIndices');
 | |
|         $this->reader->shouldReceive('setFilters');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Mock Writer class
 | |
|      * @return [type] [description]
 | |
|      */
 | |
|     public function mockWriter()
 | |
|     {
 | |
|         $this->writer = m::mock('Maatwebsite\Excel\Writers\LaravelExcelWriter');
 | |
|         $this->writer->shouldReceive('injectExcel')->with($this->phpexcel);
 | |
|         $this->writer->shouldReceive('setTitle');
 | |
|         $this->writer->shouldReceive('setFileName');
 | |
|         $this->writer->shouldReceive('shareView')->andReturn($this->writer);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Mock Writer class
 | |
|      * @return [type] [description]
 | |
|      */
 | |
|     public function mockBatch()
 | |
|     {
 | |
|         $this->batch = m::mock('Maatwebsite\Excel\Readers\Batch');
 | |
|         $this->batch->shouldReceive('start')->andReturn('foo');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Teardown
 | |
|      * @return [type] [description]
 | |
|      */
 | |
|     public function tearDown()
 | |
|     {
 | |
|         m::close();
 | |
|     }
 | |
| 
 | |
| } | 
