ok
Direktori : /home2/selectio/www/3-idiots/vendor/rap2hpoutre/fast-excel/tests/ |
Current File : /home2/selectio/www/3-idiots/vendor/rap2hpoutre/fast-excel/tests/FastExcelTest.php |
<?php namespace Rap2hpoutre\FastExcel\Tests; use Box\Spout\Common\Entity\Style\Color; use Box\Spout\Writer\Common\Creator\Style\StyleBuilder; use Rap2hpoutre\FastExcel\FastExcel; use Rap2hpoutre\FastExcel\SheetCollection; /** * Class FastExcelTest. */ class FastExcelTest extends TestCase { /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException */ public function testImportXlsx() { $collection = (new FastExcel())->import(__DIR__.'/test1.xlsx'); $this->assertEquals($this->collection(), $collection); } /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException */ public function testImportCsv() { $original_collection = $this->collection(); $collection = (new FastExcel())->import(__DIR__.'/test2.csv'); $this->assertEquals($original_collection, $collection); $collection = (new FastExcel())->configureCsv(';')->import(__DIR__.'/test1.csv'); $this->assertEquals($original_collection, $collection); } /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\InvalidArgumentException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException */ private function export($file) { $original_collection = $this->collection(); (new FastExcel(clone $original_collection))->export($file); $this->assertEquals($original_collection, (new FastExcel())->import($file)); unlink($file); } /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\InvalidArgumentException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException */ public function testExportXlsx() { $this->export(__DIR__.'/test2.xlsx'); } /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\InvalidArgumentException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException */ public function testExportCsv() { $this->export(__DIR__.'/test3.csv'); } /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException */ public function testExcelImportWithCallback() { $collection = (new FastExcel())->import(__DIR__.'/test1.xlsx', function ($value) { return [ 'test' => $value['col1'], ]; }); $this->assertEquals( collect([['test' => 'row1 col1'], ['test' => 'row2 col1'], ['test' => 'row3 col1']]), $collection ); $collection = (new FastExcel())->import(__DIR__.'/test1.xlsx', function ($value) { return new Dumb($value['col1']); }); $this->assertEquals( collect([new Dumb('row1 col1'), new Dumb('row2 col1'), new Dumb('row3 col1')]), $collection ); } /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\InvalidArgumentException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException */ public function testExcelExportWithCallback() { (new FastExcel(clone $this->collection()))->export(__DIR__.'/test2.xlsx', function ($value) { return [ 'test' => $value['col1'], ]; }); $this->assertEquals( collect([['test' => 'row1 col1'], ['test' => 'row2 col1'], ['test' => 'row3 col1']]), (new FastExcel())->import(__DIR__.'/test2.xlsx') ); unlink(__DIR__.'/test2.xlsx'); } /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\InvalidArgumentException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException */ public function testExportMultiSheetXLSX() { $file = __DIR__.'/test_multi_sheets.xlsx'; $sheets = new SheetCollection([clone $this->collection(), clone $this->collection()]); (new FastExcel($sheets))->export($file); $this->assertEquals($this->collection(), (new FastExcel())->import($file)); unlink($file); } /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\InvalidArgumentException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException */ public function testImportMultiSheetXLSX() { $collections = [ collect([['test' => 'row1 col1'], ['test' => 'row2 col1'], ['test' => 'row3 col1']]), $this->collection(), ]; $file = __DIR__.'/test_multi_sheets.xlsx'; $sheets = new SheetCollection($collections); (new FastExcel($sheets))->export($file); $sheets = (new FastExcel())->importSheets($file); $this->assertInstanceOf(SheetCollection::class, $sheets); $this->assertEquals($collections[0], collect($sheets->first())); $this->assertEquals($collections[1], collect($sheets->all()[1])); unlink($file); } /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\InvalidArgumentException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException */ public function testImportMultiSheetWithSheetNamesXLSX() { $collections = [ 'Sheet with name A' => collect([['test' => 'row1 col1'], ['test' => 'row2 col1'], ['test' => 'row3 col1']]), 'Sheet with name B' => $this->collection(), ]; $file = __DIR__.'/test_multi_sheets_with_sheets_names.xlsx'; $sheets = new SheetCollection($collections); (new FastExcel($sheets))->export($file); $sheets = (new FastExcel())->withSheetsNames()->importSheets($file); $this->assertInstanceOf(SheetCollection::class, $sheets); $this->assertEquals($collections['Sheet with name A'], collect($sheets->get('Sheet with name A'))); $this->assertEquals($collections['Sheet with name B'], collect($sheets->get('Sheet with name B'))); unlink($file); } /** * @throws \Box\Spout\Common\Exception\IOException * @throws \Box\Spout\Common\Exception\InvalidArgumentException * @throws \Box\Spout\Common\Exception\UnsupportedTypeException * @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException * @throws \Box\Spout\Writer\Exception\WriterNotOpenedException */ public function testExportWithHeaderStyle() { $original_collection = $this->collection(); $style = (new StyleBuilder()) ->setFontBold() ->setBackgroundColor(Color::YELLOW) ->build(); $file = __DIR__.'/test-header-style.xlsx'; (new FastExcel(clone $original_collection)) ->headerStyle($style) ->export($file); $this->assertEquals($original_collection, (new FastExcel())->import($file)); unlink($file); } }