From e08028ff41eaa35832f292cdf62f55fdc8453416 Mon Sep 17 00:00:00 2001 From: Roland Mas Date: Mon, 15 Mar 2010 13:04:12 +0000 Subject: [PATCH] Added sample tests for a mock config object with different behaviour --- gforge/common/include/config.php | 2 +- tests/unit/config/ConfigTests.php | 40 ++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/gforge/common/include/config.php b/gforge/common/include/config.php index 99a5c215f7..1f62d4fe2f 100644 --- a/gforge/common/include/config.php +++ b/gforge/common/include/config.php @@ -23,7 +23,7 @@ */ class FusionForgeConfig { - static private $instance = NULL ; + static protected $instance = NULL ; private $settings ; public function get_instance () { diff --git a/tests/unit/config/ConfigTests.php b/tests/unit/config/ConfigTests.php index 8a42bb2acb..8687ce435b 100644 --- a/tests/unit/config/ConfigTests.php +++ b/tests/unit/config/ConfigTests.php @@ -18,7 +18,6 @@ class Config_Tests extends PHPUnit_Framework_TestCase */ public function testBasicConfig() { - $c = FusionForgeConfig::get_instance () ; fusionforge_define_config_item ('forge_name', 'core', 'default') ; $this->assertEquals('default', fusionforge_get_config ('forge_name')); @@ -30,4 +29,43 @@ class Config_Tests extends PHPUnit_Framework_TestCase $this->assertEquals('FusionForge', fusionforge_get_config ('forge_name', 'core')); } + /** + * test mock config system + */ + public function testMockConfig() + { + MockConfig::insinuate () ; + fusionforge_define_config_item ('forge_name', 'core', 'default') ; + + $this->assertEquals('core/forge_name', fusionforge_get_config ('forge_name')); + $this->assertEquals('core/forge_name', fusionforge_get_config ('forge_name', 'core')); + + MockConfig::cleanup () ; + fusionforge_define_config_item ('forge_name', 'core', 'default') ; + + $this->assertEquals('default', fusionforge_get_config ('forge_name')); + } + } + +class MockConfig extends FusionForgeConfig { + public function insinuate () { + parent::$instance = NULL ; + self::get_instance () ; + } + + public function cleanup () { + parent::$instance = NULL ; + } + + public function get_instance () { + if (parent::$instance == NULL) { + parent::$instance = new MockConfig () ; + } + return parent::$instance ; + } + + public function get_value ($section, $var) { + return "$section/$var" ; + } +} \ No newline at end of file -- 2.30.2