Skip to content

Exception interface #278

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 25, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/JsonSchema/Constraints/ConstraintInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ public function isValid();
* @param mixed $schema
* @param mixed $path
* @param mixed $i
* @throws \JsonSchema\Exception\ExceptionInterface
*/
public function check($value, $schema = null, $path = null, $i = null);
}
8 changes: 8 additions & 0 deletions src/JsonSchema/Exception/ExceptionInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php

namespace JsonSchema\Exception;

interface ExceptionInterface
{

}
2 changes: 1 addition & 1 deletion src/JsonSchema/Exception/InvalidArgumentException.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
/**
* Wrapper for the InvalidArgumentException
*/
class InvalidArgumentException extends \InvalidArgumentException
class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
{
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
/**
* Wrapper for the InvalidSchemaMediaType
*/
class InvalidSchemaMediaTypeException extends \RuntimeException
class InvalidSchemaMediaTypeException extends RuntimeException
{
}
2 changes: 1 addition & 1 deletion src/JsonSchema/Exception/JsonDecodingException.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
/**
* Wrapper for the JsonDecodingException
*/
class JsonDecodingException extends \RuntimeException
class JsonDecodingException extends RuntimeException
{
public function __construct($code = JSON_ERROR_NONE, \Exception $previous = null)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JsonSchema/Exception/ResourceNotFoundException.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
/**
* Wrapper for the ResourceNotFoundException
*/
class ResourceNotFoundException extends \RuntimeException
class ResourceNotFoundException extends RuntimeException
{
}
17 changes: 17 additions & 0 deletions src/JsonSchema/Exception/RuntimeException.php
Original file line number Diff line number Diff line change
@@ -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
{
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
* @package JsonSchema\Exception
* @author Joost Nijhuis <[email protected]>
*/
class UnresolvableJsonPointerException extends \InvalidArgumentException
class UnresolvableJsonPointerException extends InvalidArgumentException
{
}
2 changes: 1 addition & 1 deletion src/JsonSchema/Exception/UriResolverException.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
/**
* Wrapper for the UriResolverException
*/
class UriResolverException extends \RuntimeException
class UriResolverException extends RuntimeException
{
}
15 changes: 15 additions & 0 deletions tests/Exception/InvalidArgumentExceptionTest.php
Original file line number Diff line number Diff line change
@@ -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);
}
}
16 changes: 16 additions & 0 deletions tests/Exception/InvalidSchemaMediaTypeExceptionTest.php
Original file line number Diff line number Diff line change
@@ -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);
}
}
16 changes: 16 additions & 0 deletions tests/Exception/InvalidSourceUriExceptionTest.php
Original file line number Diff line number Diff line change
@@ -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);
}
}
88 changes: 88 additions & 0 deletions tests/Exception/JsonDecodingExceptionTest.php
Original file line number Diff line number Diff line change
@@ -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());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These series of test are best done as a dataProvider

}

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());
}
}
16 changes: 16 additions & 0 deletions tests/Exception/ResourceNotFoundExceptionTest.php
Original file line number Diff line number Diff line change
@@ -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);
}
}
15 changes: 15 additions & 0 deletions tests/Exception/RuntimeExceptionTest.php
Original file line number Diff line number Diff line change
@@ -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);
}
}
16 changes: 16 additions & 0 deletions tests/Exception/UnresolvableJsonPointerExceptionTest.php
Original file line number Diff line number Diff line change
@@ -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);
}
}
16 changes: 16 additions & 0 deletions tests/Exception/UriResolverExceptionTest.php
Original file line number Diff line number Diff line change
@@ -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);
}
}