Continued a bit:
authorRoland Häder <roland@mxchange.org>
Sun, 16 Jul 2017 20:47:31 +0000 (22:47 +0200)
committerRoland Häder <roland@mxchange.org>
Sun, 16 Jul 2017 20:50:59 +0000 (22:50 +0200)
- better checks allowing more coverage
- added some sanity-checks

Signed-off-by: Roland Häder <roland@mxchange.org>
framework/config/class_FrameworkConfiguration.php
tests/framework/config/FrameworkConfigurationTest.php

index 16ebaf86dcd0d90eebdc46d98125e64468e20bb8..9f158c362518c8dac127aebf275c599ed6cb6804 100644 (file)
@@ -112,7 +112,10 @@ class FrameworkConfiguration implements Registerable {
                if (is_null($str)) {
                        // Throw NPE
                        throw new NullPointerException($this, BaseFrameworkSystem::EXCEPTION_IS_NULL_POINTER);
-               } elseif (empty($str)) {
+               } elseif (!is_string($str)) {
+                       // Entry is empty
+                       throw new InvalidArgumentException(sprintf('str[]=%s is not a string', gettype($str)), self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
+               } elseif ((is_string($str)) && (empty($str))) {
                        // Entry is empty
                        throw new InvalidArgumentException('str is empty', self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
                }
@@ -140,7 +143,7 @@ class FrameworkConfiguration implements Registerable {
                } elseif (!is_string($timezone)) {
                        // Is not a string
                        throw new InvalidArgumentException(sprintf('timezone[]=%s is not a string', gettype($timezone)), self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
-               } elseif (empty($timezone)) {
+               } elseif ((is_string($timezone)) && (empty($timezone))) {
                        // Entry is empty
                        throw new InvalidArgumentException('timezone is empty', self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
                }
@@ -174,7 +177,7 @@ class FrameworkConfiguration implements Registerable {
                } elseif (!is_string($configKey)) {
                        // Is not a string
                        throw new InvalidArgumentException(sprintf('configKey[]=%s is not a string', gettype($configKey)), self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
-               } elseif (empty($configKey)) {
+               } elseif ((is_string($configKey)) && (empty($configKey))) {
                        // Entry is empty
                        throw new InvalidArgumentException('configKey is empty', self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
                }
@@ -203,7 +206,7 @@ class FrameworkConfiguration implements Registerable {
                } elseif (!is_string($configKey)) {
                        // Is not a string
                        throw new InvalidArgumentException(sprintf('configKey[]=%s is not a string', gettype($configKey)), self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
-               } elseif (empty($configKey)) {
+               } elseif ((is_string($configKey)) && (empty($configKey))) {
                        // Entry is empty
                        throw new InvalidArgumentException('configKey is empty', self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
                }
@@ -239,7 +242,7 @@ class FrameworkConfiguration implements Registerable {
                } elseif (!is_string($configKey)) {
                        // Is not a string
                        throw new InvalidArgumentException(sprintf('configKey[]=%s is not a string', gettype($configKey)), self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
-               } elseif (empty($configKey)) {
+               } elseif ((is_string($configKey)) && (empty($configKey))) {
                        // Entry is empty
                        throw new InvalidArgumentException('configKey is empty', self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
                } elseif ((is_array($configValue)) || (is_object($configValue)) || (is_resource($configValue))) {
@@ -286,7 +289,7 @@ class FrameworkConfiguration implements Registerable {
                } elseif (!is_string($configKey)) {
                        // Entry is empty
                        throw new InvalidArgumentException(sprintf('configKey[]=%s is not a string', gettype($configKey)), self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
-               } elseif (empty($configKey)) {
+               } elseif ((is_string($configKey)) && (empty($configKey))) {
                        // Entry is empty
                        throw new InvalidArgumentException('configKey is empty', self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
                }
@@ -360,7 +363,7 @@ class FrameworkConfiguration implements Registerable {
                } elseif (!is_string($serverAddress)) {
                        // Is not a string
                        throw new InvalidArgumentException(sprintf('serverAddress[]=%s is not a string', gettype($serverAddress)), self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
-               } elseif (empty($serverAddress)) {
+               } elseif ((is_string($serverAddress)) && (empty($serverAddress))) {
                        // Entry is empty
                        throw new InvalidArgumentException('serverAddress is empty', self::EXCEPTION_CONFIG_KEY_IS_EMPTY);
                }
index 324a8fe0ad52c49e21e1736dc6ff19d29db4a114..d3e8ccd5fc7d992d696bd702d705978443505597 100644 (file)
@@ -534,6 +534,75 @@ class FrameworkConfigurationTest extends TestCase {
                self::$configInstance->unsetConfigEntry(NULL);
        }
 
+       /**
+        * Tests unsetting boolean key
+        */
+       public function testUnsettingBooleanConfigKey () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Test it
+               self::$configInstance->unsetConfigEntry(FALSE);
+       }
+
+       /**
+        * Tests unsetting decimal key
+        */
+       public function testUnsettingDecimalConfigKey () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Test it
+               self::$configInstance->unsetConfigEntry(12345);
+       }
+
+       /**
+        * Tests unsetting float key
+        */
+       public function testUnsettingFloatConfigKey () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Test it
+               self::$configInstance->unsetConfigEntry(123.45);
+       }
+
+       /**
+        * Tests unsetting array key
+        */
+       public function testUnsettingArrayConfigKey () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Test it
+               self::$configInstance->unsetConfigEntry(array());
+       }
+
+       /**
+        * Tests unsetting object key
+        */
+       public function testUnsettingObjectConfigKey () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Test it
+               self::$configInstance->unsetConfigEntry($this);
+       }
+
+       /**
+        * Tests unsetting resource key
+        */
+       public function testUnsettingResourceConfigKey () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Init some resource
+               $resource = fopen(__FILE__, 'r');
+
+               // Test it
+               self::$configInstance->unsetConfigEntry($resource);
+       }
+
        /**
         * Tests unsetting an empty key
         */
@@ -603,6 +672,75 @@ class FrameworkConfigurationTest extends TestCase {
                self::$configInstance->setDefaultTimezone(NULL);
        }
 
+       /**
+        * Tests setting a boolean default timezone
+        */
+       public function testSettingBooleanDefaultTimezone () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Test it
+               self::$configInstance->setDefaultTimezone(FALSE);
+       }
+
+       /**
+        * Tests setting a decimal default timezone
+        */
+       public function testSettingDecimalDefaultTimezone () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Test it
+               self::$configInstance->setDefaultTimezone(12345);
+       }
+
+       /**
+        * Tests setting a float default timezone
+        */
+       public function testSettingFloatDefaultTimezone () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Test it
+               self::$configInstance->setDefaultTimezone(123.45);
+       }
+
+       /**
+        * Tests setting an array default timezone
+        */
+       public function testSettingArrayDefaultTimezone () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Test it
+               self::$configInstance->setDefaultTimezone(array());
+       }
+
+       /**
+        * Tests setting an object default timezone
+        */
+       public function testSettingObjectDefaultTimezone () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Test it
+               self::$configInstance->setDefaultTimezone($this);
+       }
+
+       /**
+        * Tests setting a resource default timezone
+        */
+       public function testSettingResourceDefaultTimezone () {
+               // Will throw this exception
+               $this->expectException(InvalidArgumentException::class);
+
+               // Init some resource
+               $resource = fopen(__FILE__, 'r');
+
+               // Test it
+               self::$configInstance->setDefaultTimezone($resource);
+       }
+
        /**
         * Tests setting an empty default timezone
         */