diff options
Diffstat (limited to 'libs/jsonrpc/tests/MiddlewareHandlerTest.php')
-rw-r--r-- | libs/jsonrpc/tests/MiddlewareHandlerTest.php | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/libs/jsonrpc/tests/MiddlewareHandlerTest.php b/libs/jsonrpc/tests/MiddlewareHandlerTest.php new file mode 100644 index 00000000..be70cbf7 --- /dev/null +++ b/libs/jsonrpc/tests/MiddlewareHandlerTest.php @@ -0,0 +1,40 @@ +<?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(); + } +} |