FromGeneratorTest.php 981 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace Maatwebsite\Excel\Tests\Concerns;
  3. use Generator;
  4. use Maatwebsite\Excel\Concerns\Exportable;
  5. use Maatwebsite\Excel\Concerns\FromGenerator;
  6. use Maatwebsite\Excel\Tests\TestCase;
  7. class FromGeneratorTest extends TestCase
  8. {
  9. /**
  10. * @test
  11. */
  12. public function can_export_from_generator()
  13. {
  14. $export = new class implements FromGenerator
  15. {
  16. use Exportable;
  17. /**
  18. * @return Generator;
  19. */
  20. public function generator(): Generator
  21. {
  22. for ($i = 1; $i <= 2; $i++) {
  23. yield ['test', 'test'];
  24. }
  25. }
  26. };
  27. $response = $export->store('from-generator-store.xlsx');
  28. $this->assertTrue($response);
  29. $contents = $this->readAsArray(__DIR__ . '/../Data/Disks/Local/from-generator-store.xlsx', 'Xlsx');
  30. $this->assertEquals(iterator_to_array($export->generator()), $contents);
  31. }
  32. }