summaryrefslogtreecommitdiff
path: root/libs/jsonrpc/tests/MiddlewareHandlerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'libs/jsonrpc/tests/MiddlewareHandlerTest.php')
-rw-r--r--libs/jsonrpc/tests/MiddlewareHandlerTest.php40
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();
+ }
+}