/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Support/SupportTestingEventFakeTest.php
175 строк
5 KB
Jason McCreary
[13.x] Mockery cleanup (#61117)
10 авг 2026, 20:23
Не верифицирован
10 авг 2026, 20:23
2ee40ee
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Support; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Support\Testing\Fakes\EventFake; use Mockery; use PHPUnit\Framework\ExpectationFailedException; use PHPUnit\Framework\TestCase; class SupportTestingEventFakeTest extends TestCase { protected $fake; protected function setUp(): void { $this->fake = new EventFake(Mockery::mock(Dispatcher::class)); } public function testAssertDispatched() { try { $this->fake->assertDispatched(EventStub::class); $this->fail(); } catch (ExpectationFailedException $e) { $this->assertStringContainsString('The expected [Illuminate\Tests\Support\EventStub] event was not dispatched.', $e->getMessage()); } $this->fake->dispatch(EventStub::class); $this->fake->assertDispatched(EventStub::class); } public function testAssertDispatchedWithClosure() { $this->fake->dispatch(new EventStub); $this->fake->assertDispatched(function (EventStub $event) { return true; }); } public function testAssertListening() { $listener = ListenerStub::class; $dispatcher = Mockery::mock(Dispatcher::class); $dispatcher->expects('getListeners')->andReturn([function ($event, $payload) use ($listener) { return $listener(...array_values($payload)); }]); $fake = new EventFake($dispatcher); $fake->assertListening(EventStub::class, ListenerStub::class); } public function testAssertDispatchedWithCallbackInt() { $this->fake->dispatch(EventStub::class); $this->fake->dispatch(EventStub::class); try { $this->fake->assertDispatched(EventStub::class, 1); $this->fail(); } catch (ExpectationFailedException $e) { $this->assertStringContainsString('The expected [Illuminate\Tests\Support\EventStub] event was dispatched 2 times instead of 1 time.', $e->getMessage()); } $this->fake->assertDispatched(EventStub::class, 2); } public function testAssertDispatchedOnce() { $this->fake->dispatch(EventStub::class); $this->fake->dispatch(EventStub::class); try { $this->fake->assertDispatchedOnce(EventStub::class); $this->fail(); } catch (ExpectationFailedException $e) { $this->assertStringContainsString('The expected [Illuminate\Tests\Support\EventStub] event was dispatched 2 times instead of 1 time.', $e->getMessage()); } $this->fake->assertDispatchedTimes(EventStub::class, 2); } public function testAssertDispatchedTimes() { $this->fake->dispatch(EventStub::class); $this->fake->dispatch(EventStub::class); try { $this->fake->assertDispatchedTimes(EventStub::class, 1); $this->fail(); } catch (ExpectationFailedException $e) { $this->assertStringContainsString('The expected [Illuminate\Tests\Support\EventStub] event was dispatched 2 times instead of 1 time.', $e->getMessage()); } $this->fake->assertDispatchedTimes(EventStub::class, 2); } public function testAssertNotDispatched() { $this->fake->assertNotDispatched(EventStub::class); $this->fake->dispatch(EventStub::class); try { $this->fake->assertNotDispatched(EventStub::class); $this->fail(); } catch (ExpectationFailedException $e) { $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\EventStub] event was dispatched.', $e->getMessage()); } } public function testAssertNotDispatchedWithClosure() { $this->fake->dispatch(new EventStub); try { $this->fake->assertNotDispatched(function (EventStub $event) { return true; }); $this->fail(); } catch (ExpectationFailedException $e) { $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\EventStub] event was dispatched.', $e->getMessage()); } } public function testAssertDispatchedWithIgnore() { $dispatcher = Mockery::mock(Dispatcher::class); $dispatcher->expects('dispatch'); $fake = new EventFake($dispatcher, [ 'Foo', function ($event, $payload) { return $event === 'Bar' && $payload['id'] === 1; }, ]); $fake->dispatch('Foo'); $fake->dispatch('Bar', ['id' => 1]); $fake->dispatch('Baz'); $fake->assertDispatched('Foo'); $fake->assertDispatched('Bar'); $fake->assertNotDispatched('Baz'); } public function testAssertNothingDispatched() { $this->fake->assertNothingDispatched(); $this->fake->dispatch(EventStub::class); $this->fake->dispatch(EventStub::class); try { $this->fake->assertNothingDispatched(); $this->fail(); } catch (ExpectationFailedException $e) { $this->assertStringContainsString("2 unexpected events were dispatched:\n\n- Illuminate\Tests\Support\EventStub dispatched 2 times", $e->getMessage()); } } } class EventStub { // } class ListenerStub { // }