41 lines
1.2 KiB
PHP
41 lines
1.2 KiB
PHP
<?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();
|
|
}
|
|
}
|