DiscoverEventsTest.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace Illuminate\Tests\Integration\Foundation;
  3. use Illuminate\Foundation\Events\DiscoverEvents;
  4. use Illuminate\Tests\Integration\Foundation\Fixtures\EventDiscovery\Events\EventOne;
  5. use Illuminate\Tests\Integration\Foundation\Fixtures\EventDiscovery\Events\EventTwo;
  6. use Illuminate\Tests\Integration\Foundation\Fixtures\EventDiscovery\Listeners\AbstractListener;
  7. use Illuminate\Tests\Integration\Foundation\Fixtures\EventDiscovery\Listeners\Listener;
  8. use Illuminate\Tests\Integration\Foundation\Fixtures\EventDiscovery\Listeners\ListenerInterface;
  9. use Illuminate\Tests\Integration\Foundation\Fixtures\EventDiscovery\UnionListeners\UnionListener;
  10. use Orchestra\Testbench\TestCase;
  11. class DiscoverEventsTest extends TestCase
  12. {
  13. public function testEventsCanBeDiscovered()
  14. {
  15. class_alias(Listener::class, 'Tests\Integration\Foundation\Fixtures\EventDiscovery\Listeners\Listener');
  16. class_alias(AbstractListener::class, 'Tests\Integration\Foundation\Fixtures\EventDiscovery\Listeners\AbstractListener');
  17. class_alias(ListenerInterface::class, 'Tests\Integration\Foundation\Fixtures\EventDiscovery\Listeners\ListenerInterface');
  18. $events = DiscoverEvents::within(__DIR__.'/Fixtures/EventDiscovery/Listeners', getcwd());
  19. $this->assertEquals([
  20. EventOne::class => [
  21. Listener::class.'@handle',
  22. Listener::class.'@handleEventOne',
  23. ],
  24. EventTwo::class => [
  25. Listener::class.'@handleEventTwo',
  26. ],
  27. ], $events);
  28. }
  29. /**
  30. * @requires PHP >= 8
  31. */
  32. public function testUnionEventsCanBeDiscovered()
  33. {
  34. class_alias(UnionListener::class, 'Tests\Integration\Foundation\Fixtures\EventDiscovery\UnionListeners\UnionListener');
  35. $events = DiscoverEvents::within(__DIR__.'/Fixtures/EventDiscovery/UnionListeners', getcwd());
  36. $this->assertEquals([
  37. EventOne::class => [
  38. UnionListener::class.'@handle',
  39. ],
  40. EventTwo::class => [
  41. UnionListener::class.'@handle',
  42. ],
  43. ], $events);
  44. }
  45. }