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()
 | 
						|
    {
 | 
						|
    }
 | 
						|
} |