|
|
<?php |
|
|
|
|
|
use JsonRPC\Exception\AuthenticationFailureException; |
|
|
use JsonRPC\MiddlewareHandler; |
|
|
use JsonRPC\MiddlewareInterface; |
|
|
|
|
|
require_once __DIR__.'/../../../vendor/autoload.php'; |
|
|
|
|
|
class FirstMiddleware implements MiddlewareInterface |
|
|
{ |
|
|
public function execute($username, $password, $procedureName) |
|
|
{ |
|
|
} |
|
|
} |
|
|
|
|
|
class SecondMiddleware implements MiddlewareInterface |
|
|
{ |
|
|
public function execute($username, $password, $procedureName) |
|
|
{ |
|
|
if ($username === 'myUsername' && $password === 'myPassword' && $procedureName === 'myProcedure') { |
|
|
throw new AuthenticationFailureException('Bad user'); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
class MiddlewareHandlerTest extends PHPUnit_Framework_TestCase |
|
|
{ |
|
|
public function testMiddlewareCanRaiseException() |
|
|
{ |
|
|
$this->expectException('JsonRpc\Exception\AuthenticationFailureException'); |
|
|
|
|
|
$middlewareHandler = new MiddlewareHandler(); |
|
|
$middlewareHandler->withUsername('myUsername'); |
|
|
$middlewareHandler->withPassword('myPassword'); |
|
|
$middlewareHandler->withProcedure('myProcedure'); |
|
|
$middlewareHandler->withMiddleware(new FirstMiddleware()); |
|
|
$middlewareHandler->withMiddleware(new SecondMiddleware()); |
|
|
$middlewareHandler->execute(); |
|
|
} |
|
|
} |
|
|
|