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