| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- namespace Illuminate\Tests\Broadcasting;
- use Illuminate\Broadcasting\BroadcastEvent;
- use Illuminate\Broadcasting\InteractsWithBroadcasting;
- use Illuminate\Contracts\Broadcasting\Broadcaster;
- use Illuminate\Contracts\Broadcasting\Factory as BroadcastingFactory;
- use Mockery as m;
- use PHPUnit\Framework\TestCase;
- class BroadcastEventTest extends TestCase
- {
- protected function tearDown(): void
- {
- m::close();
- }
- public function testBasicEventBroadcastParameterFormatting()
- {
- $broadcaster = m::mock(Broadcaster::class);
- $broadcaster->shouldReceive('broadcast')->once()->with(
- ['test-channel'], TestBroadcastEvent::class, ['firstName' => 'Taylor', 'lastName' => 'Otwell', 'collection' => ['foo' => 'bar']]
- );
- $manager = m::mock(BroadcastingFactory::class);
- $manager->shouldReceive('connection')->once()->with(null)->andReturn($broadcaster);
- $event = new TestBroadcastEvent;
- (new BroadcastEvent($event))->handle($manager);
- }
- public function testManualParameterSpecification()
- {
- $broadcaster = m::mock(Broadcaster::class);
- $broadcaster->shouldReceive('broadcast')->once()->with(
- ['test-channel'], TestBroadcastEventWithManualData::class, ['name' => 'Taylor', 'socket' => null]
- );
- $manager = m::mock(BroadcastingFactory::class);
- $manager->shouldReceive('connection')->once()->with(null)->andReturn($broadcaster);
- $event = new TestBroadcastEventWithManualData;
- (new BroadcastEvent($event))->handle($manager);
- }
- public function testSpecificBroadcasterGiven()
- {
- $broadcaster = m::mock(Broadcaster::class);
- $broadcaster->shouldReceive('broadcast')->once();
- $manager = m::mock(BroadcastingFactory::class);
- $manager->shouldReceive('connection')->once()->with('log')->andReturn($broadcaster);
- $event = new TestBroadcastEventWithSpecificBroadcaster;
- (new BroadcastEvent($event))->handle($manager);
- }
- }
- class TestBroadcastEvent
- {
- public $firstName = 'Taylor';
- public $lastName = 'Otwell';
- public $collection;
- private $title = 'Developer';
- public function __construct()
- {
- $this->collection = collect(['foo' => 'bar']);
- }
- public function broadcastOn()
- {
- return ['test-channel'];
- }
- }
- class TestBroadcastEventWithManualData extends TestBroadcastEvent
- {
- public function broadcastWith()
- {
- return ['name' => 'Taylor'];
- }
- }
- class TestBroadcastEventWithSpecificBroadcaster extends TestBroadcastEvent
- {
- use InteractsWithBroadcasting;
- public function __construct()
- {
- $this->broadcastVia('log');
- }
- }
|