diff options
Diffstat (limited to 'www/wiki/tests/phpunit/includes/config/MultiConfigTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/config/MultiConfigTest.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/config/MultiConfigTest.php b/www/wiki/tests/phpunit/includes/config/MultiConfigTest.php new file mode 100644 index 00000000..fc283951 --- /dev/null +++ b/www/wiki/tests/phpunit/includes/config/MultiConfigTest.php @@ -0,0 +1,39 @@ +<?php + +class MultiConfigTest extends MediaWikiTestCase { + + /** + * Tests that settings are fetched in the right order + * + * @covers MultiConfig::__construct + * @covers MultiConfig::get + */ + public function testGet() { + $multi = new MultiConfig( [ + new HashConfig( [ 'foo' => 'bar' ] ), + new HashConfig( [ 'foo' => 'baz', 'bar' => 'foo' ] ), + new HashConfig( [ 'bar' => 'baz' ] ), + ] ); + + $this->assertEquals( 'bar', $multi->get( 'foo' ) ); + $this->assertEquals( 'foo', $multi->get( 'bar' ) ); + $this->setExpectedException( ConfigException::class, 'MultiConfig::get: undefined option:' ); + $multi->get( 'notset' ); + } + + /** + * @covers MultiConfig::has + */ + public function testHas() { + $conf = new MultiConfig( [ + new HashConfig( [ 'foo' => 'foo' ] ), + new HashConfig( [ 'something' => 'bleh' ] ), + new HashConfig( [ 'meh' => 'eh' ] ), + ] ); + + $this->assertTrue( $conf->has( 'foo' ) ); + $this->assertTrue( $conf->has( 'something' ) ); + $this->assertTrue( $conf->has( 'meh' ) ); + $this->assertFalse( $conf->has( 'what' ) ); + } +} |