wiki.techinc.nl/tests/phpunit/includes/config/HashConfigTest.php
Kunal Mehta 412c4668f1 Add MultiConfig for fallback logic
This change adds MultiConfig and HashConfig classes,
but does not actually use them anywhere. In a future
change, we can convert DefaultSettings.php into
a HashConfig instance and use MultiConfig as the
'main' config instance.

Bug: 69418
Change-Id: I0ef2fbb86d5c27602d70240219ee08be31e2d09b
2014-09-17 15:55:04 -07:00

63 lines
No EOL
1.3 KiB
PHP

<?php
class HashConfigTest extends MediaWikiTestCase {
/**
* @covers HashConfig::newInstance
*/
public function testNewInstance() {
$conf = HashConfig::newInstance();
$this->assertInstanceOf( 'HashConfig', $conf );
}
/**
* @covers HashConfig::__construct
*/
public function testConstructor() {
$conf = new HashConfig();
$this->assertInstanceOf( 'HashConfig', $conf );
// Test passing arguments to the constructor
$conf2 = new HashConfig( array(
'one' => '1',
) );
$this->assertEquals( '1', $conf2->get( 'one' ) );
}
/**
* @covers HashConfig::get
*/
public function testGet() {
$conf = new HashConfig( array(
'one' => '1',
));
$this->assertEquals( '1', $conf->get( 'one' ) );
$this->setExpectedException( 'ConfigException', 'HashConfig::get: undefined option' );
$conf->get( 'two' );
}
/**
* @covers HashConfig::has
*/
public function testHas() {
$conf = new HashConfig( array(
'one' => '1',
) );
$this->assertTrue( $conf->has( 'one' ) );
$this->assertFalse( $conf->has( 'two' ) );
}
/**
* @covers HashConfig::set
*/
public function testSet() {
$conf = new HashConfig( array(
'one' => '1',
) );
$conf->set( 'two', '2' );
$this->assertEquals( '2', $conf->get( 'two' ) );
// Check that set overwrites
$conf->set( 'one', '3' );
$this->assertEquals( '3', $conf->get( 'one' ) );
}
}