| <?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(); |
| } |
| } |
|
|