Merge pull request #278 from abacaphiliac/exception-interface

Exception interface
This commit is contained in:
David Porter 2016-07-25 18:45:42 -05:00 committed by GitHub
commit c269bdaa37
17 changed files with 230 additions and 6 deletions

View File

@ -55,6 +55,7 @@ interface ConstraintInterface
* @param mixed $schema
* @param mixed $path
* @param mixed $i
* @throws \JsonSchema\Exception\ExceptionInterface
*/
public function check($value, $schema = null, $path = null, $i = null);
}

View File

@ -0,0 +1,8 @@
<?php
namespace JsonSchema\Exception;
interface ExceptionInterface
{
}

View File

@ -12,6 +12,6 @@ namespace JsonSchema\Exception;
/**
* Wrapper for the InvalidArgumentException
*/
class InvalidArgumentException extends \InvalidArgumentException
class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
{
}

View File

@ -12,6 +12,6 @@ namespace JsonSchema\Exception;
/**
* Wrapper for the InvalidSchemaMediaType
*/
class InvalidSchemaMediaTypeException extends \RuntimeException
class InvalidSchemaMediaTypeException extends RuntimeException
{
}

View File

@ -12,7 +12,7 @@ namespace JsonSchema\Exception;
/**
* Wrapper for the JsonDecodingException
*/
class JsonDecodingException extends \RuntimeException
class JsonDecodingException extends RuntimeException
{
public function __construct($code = JSON_ERROR_NONE, \Exception $previous = null)
{

View File

@ -12,6 +12,6 @@ namespace JsonSchema\Exception;
/**
* Wrapper for the ResourceNotFoundException
*/
class ResourceNotFoundException extends \RuntimeException
class ResourceNotFoundException extends RuntimeException
{
}

View File

@ -0,0 +1,17 @@
<?php
/*
* This file is part of the JsonSchema package.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace JsonSchema\Exception;
/**
* Wrapper for the RuntimeException
*/
class RuntimeException extends \RuntimeException implements ExceptionInterface
{
}

View File

@ -13,6 +13,6 @@ namespace JsonSchema\Exception;
* @package JsonSchema\Exception
* @author Joost Nijhuis <jnijhuis81@gmail.com>
*/
class UnresolvableJsonPointerException extends \InvalidArgumentException
class UnresolvableJsonPointerException extends InvalidArgumentException
{
}

View File

@ -12,6 +12,6 @@ namespace JsonSchema\Exception;
/**
* Wrapper for the UriResolverException
*/
class UriResolverException extends \RuntimeException
class UriResolverException extends RuntimeException
{
}

View File

@ -0,0 +1,15 @@
<?php
namespace JsonSchema\Tests\Exception;
use JsonSchema\Exception\InvalidArgumentException;
class InvalidArgumentExceptionTest extends \PHPUnit_Framework_TestCase
{
public function testHierarchy()
{
$exception = new InvalidArgumentException();
self::assertInstanceOf('\InvalidArgumentException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\ExceptionInterface', $exception);
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace JsonSchema\Tests\Exception;
use JsonSchema\Exception\InvalidSchemaMediaTypeException;
class InvalidSchemaMediaTypeExceptionTest extends \PHPUnit_Framework_TestCase
{
public function testHierarchy()
{
$exception = new InvalidSchemaMediaTypeException();
self::assertInstanceOf('\RuntimeException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\RuntimeException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\ExceptionInterface', $exception);
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace JsonSchema\Tests\Exception;
use JsonSchema\Exception\InvalidSourceUriException;
class InvalidSourceUriExceptionTest extends \PHPUnit_Framework_TestCase
{
public function testHierarchy()
{
$exception = new InvalidSourceUriException();
self::assertInstanceOf('\InvalidArgumentException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\InvalidArgumentException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\ExceptionInterface', $exception);
}
}

View File

@ -0,0 +1,88 @@
<?php
namespace JsonSchema\Tests\Exception;
use JsonSchema\Exception\JsonDecodingException;
class JsonDecodingExceptionTest extends \PHPUnit_Framework_TestCase
{
public function testHierarchy()
{
$exception = new JsonDecodingException();
self::assertInstanceOf('\RuntimeException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\RuntimeException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\ExceptionInterface', $exception);
}
public function testDefaultMessage()
{
$exception = new JsonDecodingException();
self::assertNotEmpty($exception->getMessage());
}
public function testErrorNoneMessage()
{
$exception = new JsonDecodingException(JSON_ERROR_NONE);
self::assertNotEmpty($exception->getMessage());
}
public function testErrorDepthMessage()
{
$exception = new JsonDecodingException(JSON_ERROR_DEPTH);
self::assertNotEmpty($exception->getMessage());
}
public function testErrorStateMismatchMessage()
{
$exception = new JsonDecodingException(JSON_ERROR_STATE_MISMATCH);
self::assertNotEmpty($exception->getMessage());
}
public function testErrorControlCharacterMessage()
{
$exception = new JsonDecodingException(JSON_ERROR_CTRL_CHAR);
self::assertNotEmpty($exception->getMessage());
}
public function testErrorUtf8Message()
{
$exception = new JsonDecodingException(JSON_ERROR_UTF8);
self::assertNotEmpty($exception->getMessage());
}
public function testErrorSyntaxMessage()
{
$exception = new JsonDecodingException(JSON_ERROR_SYNTAX);
self::assertNotEmpty($exception->getMessage());
}
public function testErrorInfiniteOrNotANumberMessage()
{
if (!defined('JSON_ERROR_INF_OR_NAN')) {
self::markTestSkipped('JSON_ERROR_INF_OR_NAN is not defined until php55.');
}
$exception = new JsonDecodingException(JSON_ERROR_INF_OR_NAN);
self::assertNotEmpty($exception->getMessage());
}
public function testErrorRecursionMessage()
{
if (!defined('JSON_ERROR_RECURSION')) {
self::markTestSkipped('JSON_ERROR_RECURSION is not defined until php55.');
}
$exception = new JsonDecodingException(JSON_ERROR_RECURSION);
self::assertNotEmpty($exception->getMessage());
}
public function testErrorUnsupportedTypeMessage()
{
if (!defined('JSON_ERROR_UNSUPPORTED_TYPE')) {
self::markTestSkipped('JSON_ERROR_UNSUPPORTED_TYPE is not defined until php55.');
}
$exception = new JsonDecodingException(JSON_ERROR_UNSUPPORTED_TYPE);
self::assertNotEmpty($exception->getMessage());
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace JsonSchema\Tests\Exception;
use JsonSchema\Exception\ResourceNotFoundException;
class ResourceNotFoundExceptionTest extends \PHPUnit_Framework_TestCase
{
public function testHierarchy()
{
$exception = new ResourceNotFoundException();
self::assertInstanceOf('\RuntimeException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\RuntimeException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\ExceptionInterface', $exception);
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace JsonSchema\Tests\Exception;
use JsonSchema\Exception\RuntimeException;
class RuntimeExceptionTest extends \PHPUnit_Framework_TestCase
{
public function testHierarchy()
{
$exception = new RuntimeException();
self::assertInstanceOf('\RuntimeException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\ExceptionInterface', $exception);
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace JsonSchema\Tests\Exception;
use JsonSchema\Exception\UnresolvableJsonPointerException;
class UnresolvableJsonPointerExceptionTest extends \PHPUnit_Framework_TestCase
{
public function testHierarchy()
{
$exception = new UnresolvableJsonPointerException();
self::assertInstanceOf('\InvalidArgumentException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\InvalidArgumentException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\ExceptionInterface', $exception);
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace JsonSchema\Tests\Exception;
use JsonSchema\Exception\UriResolverException;
class UriResolverExceptionTest extends \PHPUnit_Framework_TestCase
{
public function testHierarchy()
{
$exception = new UriResolverException();
self::assertInstanceOf('\RuntimeException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\RuntimeException', $exception);
self::assertInstanceOf('\JsonSchema\Exception\ExceptionInterface', $exception);
}
}