From 2c134c76dc151709da9608b39b5f54bc3af1437e Mon Sep 17 00:00:00 2001 From: "J. King" Date: Thu, 9 Feb 2017 23:05:13 -0500 Subject: [PATCH] Basic tests for exceptions --- tests/TestException.php | 45 ++++++++++++++++++++++++++ tests/bootstrap.php | 2 +- tests/phpunit.xml | 1 + vendor/JKingWeb/NewsSync/Exception.php | 4 +-- vendor/JKingWeb/NewsSync/Lang.php | 1 + 5 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 tests/TestException.php diff --git a/tests/TestException.php b/tests/TestException.php new file mode 100644 index 00000000..434fd085 --- /dev/null +++ b/tests/TestException.php @@ -0,0 +1,45 @@ +assertException("unknown"); + throw new Exception("unknown"); + } + + /** + * @depends testBasic + */ + function testPlain() { + $this->assertException("unknown"); + throw new Exception(); + } + + /** + * @depends testBasic + */ + function testNamespace() { + $this->assertException("fileMissing", "Lang"); + throw new Lang\Exception("fileMissing"); + } + + /** + * @depends testNamespace + */ + function testValues() { + $this->assertException("fileMissing", "Lang"); + throw new Lang\Exception("fileMissing", "en"); + } +} diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 470d86a2..c4c2368c 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -55,6 +55,6 @@ trait LanguageTestingHelpers { self::$vfs = null; self::$files = null; Lang::set("", true); - Lang::set(Lang::DEFAULT, true); + Lang::set(Lang::DEFAULT); } } \ No newline at end of file diff --git a/tests/phpunit.xml b/tests/phpunit.xml index 2e2fb7ff..8b1dbd80 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -12,6 +12,7 @@ TestLang.php TestLangComplex.php + TestException.php diff --git a/vendor/JKingWeb/NewsSync/Exception.php b/vendor/JKingWeb/NewsSync/Exception.php index 93b869fb..2e61d689 100644 --- a/vendor/JKingWeb/NewsSync/Exception.php +++ b/vendor/JKingWeb/NewsSync/Exception.php @@ -41,8 +41,8 @@ class Exception extends \Exception { public function __construct(string $msgID = "", $vars = null, \Throwable $e = null) { if($msgID=="") { - $msg = ""; - $code = 0; + $msg = "Exception.unknown"; + $code = 10000; } else { $codeID = str_replace("\\", "/", str_replace(NS_BASE, "", get_called_class())).".$msgID"; if(!array_key_exists($codeID,self::CODES)) { diff --git a/vendor/JKingWeb/NewsSync/Lang.php b/vendor/JKingWeb/NewsSync/Lang.php index ed47ae45..9ae9e681 100644 --- a/vendor/JKingWeb/NewsSync/Lang.php +++ b/vendor/JKingWeb/NewsSync/Lang.php @@ -7,6 +7,7 @@ class Lang { const DEFAULT = "en"; const REQUIRED = [ 'Exception.JKingWeb/NewsSync/Exception.uncoded' => 'The specified exception symbol {0} has no code specified in Exception.php', + 'Exception.JKingWeb/NewsSync/Exception.unknown' => 'An unknown error has occurred', 'Exception.JKingWeb/NewsSync/Lang/Exception.defaultFileMissing' => 'Default language file "{0}" missing', 'Exception.JKingWeb/NewsSync/Lang/Exception.fileMissing' => 'Language file "{0}" is not available', 'Exception.JKingWeb/NewsSync/Lang/Exception.fileUnreadable' => 'Insufficient permissions to read language file "{0}"',