| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- <?php
- namespace Illuminate\Tests\Support;
- use Illuminate\Contracts\Events\Dispatcher;
- use Illuminate\Support\Testing\Fakes\EventFake;
- use Mockery as m;
- use PHPUnit\Framework\Constraint\ExceptionMessage;
- use PHPUnit\Framework\ExpectationFailedException;
- use PHPUnit\Framework\TestCase;
- class SupportTestingEventFakeTest extends TestCase
- {
- protected function setUp(): void
- {
- parent::setUp();
- $this->fake = new EventFake(m::mock(Dispatcher::class));
- }
- public function testAssertDispatched()
- {
- try {
- $this->fake->assertDispatched(EventStub::class);
- $this->fail();
- } catch (ExpectationFailedException $e) {
- $this->assertThat($e, new ExceptionMessage('The expected [Illuminate\Tests\Support\EventStub] event was not dispatched.'));
- }
- $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 testAssertDispatchedWithCallbackInt()
- {
- $this->fake->dispatch(EventStub::class);
- $this->fake->dispatch(EventStub::class);
- try {
- $this->fake->assertDispatched(EventStub::class, 1);
- $this->fail();
- } catch (ExpectationFailedException $e) {
- $this->assertThat($e, new ExceptionMessage('The expected [Illuminate\Tests\Support\EventStub] event was dispatched 2 times instead of 1 times.'));
- }
- $this->fake->assertDispatched(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->assertThat($e, new ExceptionMessage('The expected [Illuminate\Tests\Support\EventStub] event was dispatched 2 times instead of 1 times.'));
- }
- $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->assertThat($e, new ExceptionMessage('The unexpected [Illuminate\Tests\Support\EventStub] event was dispatched.'));
- }
- }
- public function testAssertNotDispatchedWithClosure()
- {
- $this->fake->dispatch(new EventStub);
- try {
- $this->fake->assertNotDispatched(function (EventStub $event) {
- return true;
- });
- $this->fail();
- } catch (ExpectationFailedException $e) {
- $this->assertThat($e, new ExceptionMessage('The unexpected [Illuminate\Tests\Support\EventStub] event was dispatched.'));
- }
- }
- public function testAssertDispatchedWithIgnore()
- {
- $dispatcher = m::mock(Dispatcher::class);
- $dispatcher->shouldReceive('dispatch')->once();
- $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->assertThat($e, new ExceptionMessage('2 unexpected events were dispatched.'));
- }
- }
- }
- class EventStub
- {
- //
- }
|