diff --git a/tests/Flarum/Api/Handler/InvalidAccessTokenExceptionHandlerTest.php b/tests/Flarum/Api/Handler/InvalidAccessTokenExceptionHandlerTest.php new file mode 100644 index 000000000..6a1267b4f --- /dev/null +++ b/tests/Flarum/Api/Handler/InvalidAccessTokenExceptionHandlerTest.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Tests\Flarum\Api\Handler; + +use Exception; +use Flarum\Api\Exception\InvalidAccessTokenException; +use Flarum\Api\Handler\InvalidAccessTokenExceptionHandler; +use Tests\Test\TestCase; + +class InvalidAccessTokenExceptionHandlerTest extends TestCase +{ + private $handler; + + public function init() + { + $this->handler = new InvalidAccessTokenExceptionHandler; + } + + public function test_it_handles_recognisable_exceptions() + { + $this->assertFalse($this->handler->manages(new Exception)); + $this->assertTrue($this->handler->manages(new InvalidAccessTokenException)); + } + + public function test_output() + { + $response = $this->handler->handle(new InvalidAccessTokenException); + + $this->assertEquals(401, $response->getStatus()); + $this->assertEquals([ + [ + 'status' => '401', + 'code' => 'invalid_access_token' + ] + ], $response->getErrors()); + } +} diff --git a/tests/Flarum/Api/Handler/MethodNotAllowedExceptionHandlerTest.php b/tests/Flarum/Api/Handler/MethodNotAllowedExceptionHandlerTest.php new file mode 100644 index 000000000..8fc1b143c --- /dev/null +++ b/tests/Flarum/Api/Handler/MethodNotAllowedExceptionHandlerTest.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Tests\Flarum\Api\Handler; + +use Exception; +use Flarum\Api\Handler\MethodNotAllowedExceptionHandler; +use Flarum\Http\Exception\MethodNotAllowedException; +use Tests\Test\TestCase; + +class MethodNotAllowedExceptionHandlerTest extends TestCase +{ + private $handler; + + public function init() + { + $this->handler = new MethodNotAllowedExceptionHandler(); + } + + public function test_it_handles_recognisable_exceptions() + { + $this->assertFalse($this->handler->manages(new Exception)); + $this->assertTrue($this->handler->manages(new MethodNotAllowedException())); + } + + public function test_managing_exceptions() + { + $response = $this->handler->handle(new MethodNotAllowedException); + + $this->assertEquals(405, $response->getStatus()); + $this->assertEquals([ + [ + 'status' => '405', + 'code' => 'method_not_allowed' + ] + ], $response->getErrors()); + } +} diff --git a/tests/Flarum/Api/Handler/RouteNotFoundExceptionHandlerTest.php b/tests/Flarum/Api/Handler/RouteNotFoundExceptionHandlerTest.php new file mode 100644 index 000000000..cacfa06b7 --- /dev/null +++ b/tests/Flarum/Api/Handler/RouteNotFoundExceptionHandlerTest.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Tests\Flarum\Api\Handler; + +use Exception; +use Flarum\Api\Handler\RouteNotFoundExceptionHandler; +use Flarum\Http\Exception\RouteNotFoundException; +use Tests\Test\TestCase; + +class RouteNotFoundExceptionHandlerTest extends TestCase +{ + private $handler; + + public function init() + { + $this->handler = new RouteNotFoundExceptionHandler(); + } + + public function test_it_handles_recognisable_exceptions() + { + $this->assertFalse($this->handler->manages(new Exception)); + $this->assertTrue($this->handler->manages(new RouteNotFoundException())); + } + + public function test_managing_exceptions() + { + $response = $this->handler->handle(new RouteNotFoundException); + + $this->assertEquals(404, $response->getStatus()); + $this->assertEquals([ + [ + 'status' => '404', + 'code' => 'route_not_found' + ] + ], $response->getErrors()); + } +} diff --git a/tests/Flarum/Api/Handler/TokenMismatchExceptionHandlerTest.php b/tests/Flarum/Api/Handler/TokenMismatchExceptionHandlerTest.php new file mode 100644 index 000000000..41b80f431 --- /dev/null +++ b/tests/Flarum/Api/Handler/TokenMismatchExceptionHandlerTest.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Tests\Flarum\Api\Handler; + +use Exception; +use Flarum\Api\Handler\TokenMismatchExceptionHandler; +use Flarum\Http\Exception\TokenMismatchException; +use Tests\Test\TestCase; + +class TokenMismatchExceptionHandlerTest extends TestCase +{ + private $handler; + + public function init() + { + $this->handler = new TokenMismatchExceptionHandler; + } + + public function test_it_handles_recognisable_exceptions() + { + $this->assertFalse($this->handler->manages(new Exception)); + $this->assertTrue($this->handler->manages(new TokenMismatchException())); + } + + public function test_managing_exceptions() + { + $response = $this->handler->handle(new TokenMismatchException); + + $this->assertEquals(400, $response->getStatus()); + $this->assertEquals([ + [ + 'status' => '400', + 'code' => 'csrf_token_mismatch' + ] + ], $response->getErrors()); + } +} diff --git a/tests/Test/TestCase.php b/tests/Test/TestCase.php index c00350868..5a25ceb8b 100644 --- a/tests/Test/TestCase.php +++ b/tests/Test/TestCase.php @@ -14,7 +14,7 @@ namespace Tests\Test; use Mockery; use PHPUnit_Framework_TestCase; -class TestCase extends PHPUnit_Framework_TestCase +abstract class TestCase extends PHPUnit_Framework_TestCase { public function setUp() {