57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace NoccyLabs\React\WebSocket; | ||
|  | 
 | ||
|  | use PHPUnit\Framework\Attributes\CoversClass; | ||
|  | use React\Http\Message\ServerRequest; | ||
|  | 
 | ||
|  | #[CoversClass(WebSocketMiddleware::class)]
 | ||
|  | class WebSocketMiddlewareTest extends \PHPUnit\Framework\TestCase | ||
|  | { | ||
|  | 
 | ||
|  |     public function testThatRegularRequestsAreIgnored() | ||
|  |     { | ||
|  | 
 | ||
|  |         $mock = $this->getMockBuilder(InvokableDummy::class)->getMock(); | ||
|  |         $mock->expects($this->never()) | ||
|  |             ->method('test'); | ||
|  | 
 | ||
|  |         $next = $this->getMockBuilder(InvokableDummy::class)->getMock(); | ||
|  |         $next->expects($this->once()) | ||
|  |             ->method('test'); | ||
|  | 
 | ||
|  |         $request = new ServerRequest("GET", "/", [], ""); | ||
|  | 
 | ||
|  |         $middleware = new WebSocketMiddleware(); | ||
|  |         $middleware->on('connection', [$mock,"test"]); | ||
|  |         $middleware->__invoke($request, [$next,"test"]); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testThatWebSocketRequestsAreHandled() | ||
|  |     { | ||
|  | 
 | ||
|  |         $mock = $this->getMockBuilder(InvokableDummy::class)->getMock(); | ||
|  |         $mock->expects($this->once()) | ||
|  |             ->method('test'); | ||
|  | 
 | ||
|  |         $next = $this->getMockBuilder(InvokableDummy::class)->getMock(); | ||
|  |         $next->expects($this->never()) | ||
|  |             ->method('test'); | ||
|  | 
 | ||
|  |         $request = new ServerRequest("GET", "/", [ | ||
|  |             'upgrade' => [ 'websocket' ] | ||
|  |         ]); | ||
|  | 
 | ||
|  |         $middleware = new WebSocketMiddleware(); | ||
|  |         $middleware->on('connection', [$mock,"test"]); | ||
|  |         $middleware->__invoke($request, [$next,"test"]); | ||
|  |     } | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | class InvokableDummy | ||
|  | { | ||
|  |     public function test() | ||
|  |     { | ||
|  |     } | ||
|  | } |