123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <?php
- namespace Tests\Importers;
- use Dcat\EasyExcel\Contracts\Sheet;
- use Dcat\EasyExcel\Contracts\Sheets;
- use Dcat\EasyExcel\Excel;
- use Dcat\EasyExcel\Support\SheetCollection;
- use Tests\TestCase;
- class SheetsTest extends TestCase
- {
- /**
- * @group importer
- */
- public function testToArray()
- {
- $sheetsArray = $this->makeSheets()->toArray();
- $this->validateArray($sheetsArray);
- }
- /**
- * @group importer
- */
- public function testToCollection()
- {
- $sheetCollection = $this->makeSheets()->collect();
- $this->assertInstanceOf(SheetCollection::class, $sheetCollection);
- $this->validateArray($sheetCollection->toArray());
- }
- /**
- * @group importer
- */
- public function testEach()
- {
- $sheet = null;
- $this->makeSheets()->each(function (Sheet $value) use (&$sheet) {
- $sheet = $value;
- });
- $this->assertInstanceOf(Sheet::class, $sheet);
- }
- /**
- * @group importer
- */
- public function testGetByIndex()
- {
- $sheets = $this->makeSheets();
- $this->assertInstanceOf(Sheet::class, $sheet1 = $sheets->index(0));
- $this->assertInstanceOf(Sheet::class, $sheet2 = $sheets->index(1));
- $this->validateArray([
- $sheet1->getName() => $sheet1->toArray(),
- $sheet2->getName() => $sheet2->toArray(),
- ]);
- }
- /**
- * @group importer
- */
- public function testGetByName()
- {
- $sheets = $this->makeSheets();
- $this->assertInstanceOf(Sheet::class, $sheet1 = $sheets->index('name1'));
- $this->assertInstanceOf(Sheet::class, $sheet2 = $sheets->index('name2'));
- $this->validateArray([
- $sheet1->getName() => $sheet1->toArray(),
- $sheet2->getName() => $sheet2->toArray(),
- ]);
- }
- /**
- * 验证内容是否正确.
- *
- * @param array $sheetsArray
- */
- protected function validateArray(array $sheetsArray)
- {
- $this->assertIsArray($sheetsArray);
- $this->assertEquals(count($sheetsArray), 2);
- $this->assertTrue(isset($sheetsArray['name1']));
- $this->assertTrue(isset($sheetsArray['name2']));
- foreach ($sheetsArray as $name => &$values) {
- $this->assertIsArray($values);
- $this->assertEquals(count($values), 30);
- foreach ($values as &$row) {
- $row = $this->convertDatetimeObjectToString($row);
- }
- }
- $users = include __DIR__.'/../resources/users.php';
- $this->assertEquals(
- array_values($sheetsArray['name1']),
- array_slice($users, 0, 30)
- );
- $this->assertEquals(
- array_values($sheetsArray['name2']),
- array_values(array_slice($users, 30, 30))
- );
- }
- protected function makeSheets()
- {
- $file = __DIR__.'/../resources/test-sheets.xlsx';
- $sheets = Excel::xlsx($file)->sheets();
- $this->assertInstanceOf(Sheets::class, $sheets);
- return $sheets;
- }
- }
|