1
0
mirror of https://github.com/flarum/core.git synced 2025-08-03 06:57:54 +02:00

Added more tests

This commit is contained in:
Kirk Bushell
2015-10-27 13:22:30 +00:00
parent a4ef9e7cf4
commit 400aa4fef9
3 changed files with 47 additions and 3 deletions

View File

@@ -31,8 +31,17 @@ class IlluminateValidationExceptionHandler implements ExceptionHandlerInterface
public function handle(Exception $e) public function handle(Exception $e)
{ {
$status = 422; $status = 422;
$errors = $this->formatErrors($e->errors()->toArray());
$errors = $e->errors()->toArray(); return new ResponseBag($status, $errors);
}
/**
* @param array $errors
* @return array
*/
protected function formatErrors(array $errors)
{
$errors = array_map(function ($field, $messages) { $errors = array_map(function ($field, $messages) {
return [ return [
'detail' => implode("\n", $messages), 'detail' => implode("\n", $messages),
@@ -40,6 +49,6 @@ class IlluminateValidationExceptionHandler implements ExceptionHandlerInterface
]; ];
}, array_keys($errors), $errors); }, array_keys($errors), $errors);
return new ResponseBag($status, $errors); return $errors;
} }
} }

View File

@@ -1,5 +1,5 @@
<?php <?php
namespace tests\Flarum\Api\Handler; namespace Tests\Flarum\Api\Handler;
use Flarum\Api\Handler\FloodingExceptionHandler; use Flarum\Api\Handler\FloodingExceptionHandler;
use Flarum\Core\Exception\FloodingException; use Flarum\Core\Exception\FloodingException;

View File

@@ -0,0 +1,35 @@
<?php
namespace Tests\Flarum\Api\Handler;
use Flarum\Api\Handler\ValidationExceptionHandler;
use Flarum\Core\Exception\ValidationException;
use Tests\Test\TestCase;
class IlluminateValidationExceptionHandlerTest extends TestCase
{
private $handler;
public function init()
{
$this->handler = new ValidationExceptionHandler;
}
public function test_it_handles_familiar_exceptions()
{
$validException = new ValidationException(['messages']);
$this->assertFalse($this->handler->manages(new \Exception));
$this->assertTrue($this->handler->manages($validException));
}
public function test_it_creates_the_desired_output()
{
$this->markTestIncomplete();
$exception = new ValidationException(['field' => ['Some error']]);
$response = $this->handler->handle($exception);
$this->assertEquals(422, $response->getStatus());
}
}