/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Broadcasting/AblyBroadcasterTest.php
147 строк
4 KB
Jason McCreary
[13.x] Mockery cleanup (#61117)
10 авг 2026, 20:23
Не верифицирован
10 авг 2026, 20:23
2ee40ee
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Broadcasting; use Ably\AblyRest; use Illuminate\Broadcasting\Broadcasters\AblyBroadcaster; use Illuminate\Http\Request; use Mockery; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; class AblyBroadcasterTest extends TestCase { /** * @var \Illuminate\Broadcasting\Broadcasters\AblyBroadcaster */ public $broadcaster; public $ably; protected function setUp(): void { $this->ably = Mockery::mock(AblyRest::class, ['abcd:efgh']); $this->broadcaster = Mockery::mock(AblyBroadcaster::class, [$this->ably])->makePartial(); } public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() { $this->broadcaster->channel('test', function () { return true; }); $this->broadcaster->expects('validAuthenticationResponse'); $this->broadcaster->auth( $this->getMockRequestWithUserForChannel('private-test') ); } public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse() { $this->expectException(AccessDeniedHttpException::class); $this->broadcaster->channel('test', function () { return false; }); $this->broadcaster->auth( $this->getMockRequestWithUserForChannel('private-test') ); } public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound() { $this->expectException(AccessDeniedHttpException::class); $this->broadcaster->channel('test', function () { return true; }); $this->broadcaster->auth( $this->getMockRequestWithoutUserForChannel('private-test') ); } public function testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray() { $returnData = [1, 2, 3, 4]; $this->broadcaster->channel('test', function () use ($returnData) { return $returnData; }); $this->broadcaster->expects('validAuthenticationResponse'); $this->broadcaster->auth( $this->getMockRequestWithUserForChannel('presence-test') ); } public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull() { $this->expectException(AccessDeniedHttpException::class); $this->broadcaster->channel('test', function () { // }); $this->broadcaster->auth( $this->getMockRequestWithUserForChannel('presence-test') ); } public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound() { $this->expectException(AccessDeniedHttpException::class); $this->broadcaster->channel('test', function () { return [1, 2, 3, 4]; }); $this->broadcaster->auth( $this->getMockRequestWithoutUserForChannel('presence-test') ); } /** * @param string $channel * @return \Illuminate\Http\Request */ protected function getMockRequestWithUserForChannel($channel) { $request = Mockery::mock(Request::class); $request->expects('all')->times(4)->andReturn(['channel_name' => $channel, 'socket_id' => 'abcd.1234']); $request->shouldReceive('input') ->with('callback', false) ->andReturn(false); $user = Mockery::mock('User'); $user->shouldReceive('getAuthIdentifierForBroadcasting') ->andReturn(42); $user->shouldReceive('getAuthIdentifier') ->andReturn(42); $request->expects('user') ->times(2) ->andReturn($user); return $request; } /** * @param string $channel * @return \Illuminate\Http\Request */ protected function getMockRequestWithoutUserForChannel($channel) { $request = Mockery::mock(Request::class); $request->expects('all')->times(4)->andReturn(['channel_name' => $channel]); $request->expects('user') ->andReturn(null); return $request; } }