diff --git a/.travis.yml b/.travis.yml index 584d999..40af35e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,3 +26,5 @@ script: - if [[ $EXECUTE_COVERAGE == 'true' ]]; then phpdbg -qrr ./vendor/bin/phpunit --coverage-text --coverage-clover=./build/logs/clover.xml ; fi - if [[ $EXECUTE_COVERAGE != 'true' ]]; then ./vendor/bin/phpunit ; fi +after_script: + - if [[ $EXECUTE_COVERAGE == 'true' ]]; then ./vendor/bin/ocular code-coverage:upload --format=php-clover ./build/logs/clover.xml; fi diff --git a/README.md b/README.md index 8368872..b6b7b43 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,8 @@ [![Software License][ico-license]][link-license] [![Latest Version on Packagist][ico-version]][link-packagist] [![Build Status][ico-travis]][link-travis] - - This repository contains a set of useful exception classes. diff --git a/composer.json b/composer.json index 53ecfe4..0361267 100644 --- a/composer.json +++ b/composer.json @@ -13,11 +13,12 @@ } ], "require": { - "ext-json": "*", - "php": "^7.0" + "php": "^7.0", + "ext-json": "*" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^6.0", + "scrutinizer/ocular": "~1.1" }, "autoload": { "psr-4": { diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 99d9ef4..541e9d0 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,13 +1,30 @@ - + + - ./tests + tests - ./src + src - \ No newline at end of file + + + + + + + diff --git a/tests/ReadExceptionContextTest.php b/tests/ReadExceptionContextTest.php index bab9135..5768d8f 100644 --- a/tests/ReadExceptionContextTest.php +++ b/tests/ReadExceptionContextTest.php @@ -22,38 +22,41 @@ class ReadExceptionContextTest extends TestCase * @test * @dataProvider provideExceptionClasses * - * @param Exceptions\Throwable $exception - * @param string $message - * @param array $context - * @param int $code + * @param string $exceptionClass */ - public function exceptionObjectShouldContainContext(Exceptions\Throwable $exception, string $message, array $context, int $code) - { - self::assertSame($message, $exception->getMessage()); - self::assertSame($context, $exception->getContext()); - self::assertSame($code, $exception->getCode()); - } - - public function provideExceptionClasses() + public function exceptionObjectShouldContainContext(string $exceptionClass) { $message = 'Something went wrong'; $code = PHP_INT_MAX; $context = ['foo' => 'bar']; + + $exception = new $exceptionClass($message, $context, $code); + + if ($exception instanceof Exceptions\Throwable) { + self::assertSame($message, $exception->getMessage()); + self::assertSame($context, $exception->getContext()); + self::assertSame($code, $exception->getCode()); + } else { + self::fail('Invalid exception class'); + } + } + public function provideExceptionClasses() + { return [ - [new Exceptions\LogicException($message, $context, $code), $message, $context, $code], - [new Exceptions\BadFunctionCallException($message, $context, $code), $message, $context, $code], - [new Exceptions\BadMethodCallException($message, $context, $code), $message, $context, $code], - [new Exceptions\DomainException($message, $context, $code), $message, $context, $code], - [new Exceptions\InvalidArgumentException($message, $context, $code), $message, $context, $code], - [new Exceptions\LengthException($message, $context, $code), $message, $context, $code], - [new Exceptions\OutOfRangeException($message, $context, $code), $message, $context, $code], - [new Exceptions\RuntimeException($message, $context, $code), $message, $context, $code], - [new Exceptions\OutOfBoundsException($message, $context, $code), $message, $context, $code], - [new Exceptions\OverflowException($message, $context, $code), $message, $context, $code], - [new Exceptions\RangeException($message, $context, $code), $message, $context, $code], - [new Exceptions\UnderflowException($message, $context, $code), $message, $context, $code], - [new Exceptions\UnexpectedValueException($message, $context, $code), $message, $context, $code], + [Exceptions\LogicException::class], + [Exceptions\BadFunctionCallException::class], + [Exceptions\BadMethodCallException::class], + [Exceptions\DomainException::class], + [Exceptions\InvalidArgumentException::class], + [Exceptions\LengthException::class], + [Exceptions\OutOfRangeException::class], + [Exceptions\RuntimeException::class], + [Exceptions\OutOfBoundsException::class], + [Exceptions\OverflowException::class], + [Exceptions\RangeException::class], + [Exceptions\UnderflowException::class], + [Exceptions\UnexpectedValueException::class], ]; } }