* @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software
* @license GNU GPL 3.0 or any newer version
* @link http://www.mxchange.org
- *
+ *
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
/**
* The constructor
*
- * @param $message Message from the exception
+ * @param $message Message from the exception
* @param $code Code number for the exception
* @return void
*/
- public function __construct (BaseFrameworkSystem $class, $code) {
+ public function __construct (FrameworkConfiguration $class, $code) {
// Add a message around the missing class
$message = sprintf("[%s:%d] Leeren Konfigurationseintrag angegeben!",
- $class,
+ $class->__toString(),
$this->getLine()
);
/**
* A private include loader
*
- * @param $arrayObject The array object with all include files
+ * @param $arrayObject The array object with all include files
* @return void
*/
private function loadIncludes (ArrayObject $arrayObject) {
// Is a valid configuration entry provided?
if (empty($cfgEntry)) {
// Entry is empty
- throw new ConfigEntryIsEmptyException(__CLASS__, self::EXCEPTION_CONFIG_ENTRY_IS_EMPTY);
+ throw new ConfigEntryIsEmptyException($this, self::EXCEPTION_CONFIG_ENTRY_IS_EMPTY);
} elseif (!isset($this->config[$cfgEntry])) {
// Entry was not found!
throw new ConfigEntryNotFoundException(array(__CLASS__, $cfgEntry), self::EXCEPTION_CONFIG_ENTRY_WAS_NOT_FOUND);
// Is a valid configuration entry provided?
if (empty($cfgEntry)) {
// Entry is empty
- throw new ConfigEntryIsEmptyException(__CLASS__, self::EXCEPTION_CONFIG_ENTRY_IS_EMPTY);
+ throw new ConfigEntryIsEmptyException($this, self::EXCEPTION_CONFIG_ENTRY_IS_EMPTY);
}
// Set the configuration value
--- /dev/null
+<?php
+// Change directory
+@chdir("..");
+
+// Load config file
+require(dirname(dirname(__FILE__)) . "/inc/config.php");
+
+// Load all include files
+require(PATH . "inc/includes.php");
+
+// Load all game classes
+require(PATH . "inc/classes.php");
+
+// Set default application
+FrameworkConfiguration::getInstance()->setConfigEntry("default_application", "ship-simu");
+
+// Set testing mode (no starter.php will be loaded!)
+define('TEST_MODE', true);
+
+// Load the PHPUnit framework
+require_once("PHPUnit/Framework.php");
+
+/**
+ * A test case for the configuration sub system
+ *
+ */
+class ConfigTest extends PHPUnit_Framework_TestCase {
+ /**
+ * Tests the exception ConfigEntryNotFoundException if it is being thrown.
+ * Else the test shall fail
+ *
+ * @return void
+ */
+ public function testConfigEntryNotFoundException () {
+ // Now try the test
+ $testPassed = false;
+ try {
+ // Get a configuration instance
+ $cfg = FrameworkConfiguration::getInstance();
+
+ // Now find a configuration variable that does not exist
+ $dummy = $cfg->readConfig("does_not_exist");
+ } catch (ConfigEntryNotFoundException $expected) {
+ // This exception was expected, so it is fine
+ $testPassed = true;
+ } catch (FrameworkException $unexptected) {
+ // This exception was not expected!
+ $this->fail(sprintf("Unexpected exception %s detected.", $unexpected->__toString()));
+ }
+
+ if (!$testPassed) {
+ // This test went wrong
+ $this->fail("Test of thrown exception ConfigEntryNotFoundException failed!");
+ }
+ }
+
+ /**
+ * Tests if the exception ConfigEntryIsEmptyException is being thrown by
+ * "emulating" an empty configuration variable.
+ *
+ * @return void
+ */
+ public function testConfigEntryIsEmptyExceptionRead () {
+ // Now try the test
+ $testPassed = false;
+ try {
+ // Get a configuration instance
+ $cfg = FrameworkConfiguration::getInstance();
+
+ // Try to read an empty configuration variable
+ $dummy = $cfg->readConfig("");
+ } catch (ConfigEntryIsEmptyException $expected) {
+ // This exception was expected, so it is fine
+ $testPassed = true;
+ } catch (FrameworkException $unexptected) {
+ // This exception was not expected!
+ $this->fail(sprintf("Unexpected exception %s detected.", $unexpected->__toString()));
+ }
+
+ if (!$testPassed) {
+ // This test went wrong
+ $this->fail("Test of thrown exception ConfigEntryIsEmptyException failed!");
+ }
+ }
+
+ /**
+ * Tests if the exception ConfigEntryIsEmptyException is being thrown by
+ * "emulating" an empty configuration variable.
+ *
+ * @return void
+ */
+ public function testConfigEntryIsEmptyExceptionWrite () {
+ // Now try the test
+ $testPassed = false;
+ try {
+ // Get a configuration instance
+ $cfg = FrameworkConfiguration::getInstance();
+
+ // Try to read an empty configuration variable
+ $cfg->setConfigEntry("", "will_never_be_set");
+ } catch (ConfigEntryIsEmptyException $expected) {
+ // This exception was expected, so it is fine
+ $testPassed = true;
+ } catch (FrameworkException $unexptected) {
+ // This exception was not expected!
+ $this->fail(sprintf("Unexpected exception %s detected.", $unexpected->__toString()));
+ }
+
+ if (!$testPassed) {
+ // This test went wrong
+ $this->fail("Test of thrown exception ConfigEntryIsEmptyException failed!");
+ }
+ }
+
+ /**
+ * Tests if a set value can be returned from the configuration sub-system
+ *
+ * @return void
+ */
+ public function testWriteReadConfigEntry () {
+ // Try it here
+ $value = "This is a test value";
+ try {
+ // Get a configuration instance
+ $cfg = FrameworkConfiguration::getInstance();
+
+ // Try to read an empty configuration variable
+ $cfg->setConfigEntry("test_key", "{$value}");
+
+ // Read the config entry we have just written
+ $readValue = $cfg->readConfig("test_key");
+
+ // Now test the values
+ $this->assertEquals($value, $readValue);
+ } catch (FrameworkException $unexptected) {
+ // This exception was not expected!
+ $this->fail(sprintf("Unexpected exception %s detected.", $unexpected->__toString()));
+ }
+ }
+}
+
+?>