wiki.techinc.nl/tests/phpunit/unit/includes/Rest/MockHandlerFactory.php
daniel 91a1741787 Introduce Modules into the REST framework
Modules group together endpoints by a shared prefix. The idea is that each module has its own version and can generated self-contained self-documentation. This allows clients to have clear expectations about the endpoints of each module, no matter what wiki they are accessing. So far, each wiki may be exposing a different set of endpoints, with no way to provide a spec that describes that set of endpoints in a way that would be consistent across wikis and stable over time.

Bug: T362480
Change-Id: Iebcde4645d472d27eee5a30adb6eee12cc7d046b
2024-05-08 16:12:30 +02:00

47 lines
1 KiB
PHP

<?php
namespace MediaWiki\Tests\Rest;
use MediaWiki\Rest\Handler;
use MediaWiki\Rest\HttpException;
use MediaWiki\Rest\RedirectException;
use MediaWiki\Rest\ResponseException;
use RuntimeException;
class MockHandlerFactory {
public static function throwHandlerFactory() {
return new class extends Handler {
public function execute() {
throw new HttpException( 'Mock error', 555 );
}
};
}
public static function fatalHandlerFactory() {
return new class extends Handler {
public function execute() {
throw new RuntimeException( 'Fatal mock error', 12345 );
}
};
}
public static function throwRedirectHandlerFactory() {
return new class extends Handler {
public function execute() {
throw new RedirectException( 301, 'http://example.com' );
}
};
}
public static function throwWrappedHandlerFactory() {
return new class extends Handler {
public function execute() {
$response = $this->getResponseFactory()->create();
$response->setStatus( 200 );
throw new ResponseException( $response );
}
};
}
}