Add an integration test for fetch() in settings controller [MAILPOET-1483]

This commit is contained in:
wxa
2019-04-01 21:43:35 +03:00
committed by M. Shull
parent 3a34d28daa
commit 26cbd79535
2 changed files with 10 additions and 1 deletions

View File

@ -120,7 +120,7 @@ class SettingsController {
private function getDefaultValue($keys) { private function getDefaultValue($keys) {
$default = $this->getAllDefaults(); $default = $this->getAllDefaults();
foreach ($keys as $key) { foreach ($keys as $key) {
if (is_array($default) && array_key_exists($key, $default)) { if (array_key_exists($key, $default)) {
$default = $default[$key]; $default = $default[$key];
} else { } else {
return null; return null;

View File

@ -39,6 +39,15 @@ class SettingsControllerTest extends \MailPoetTest {
$this->assertEquals('default', $this->controller->get('test_key.wrong_subkey', 'default')); $this->assertEquals('default', $this->controller->get('test_key.wrong_subkey', 'default'));
} }
function testItCanFetchValuesFromDB() {
$this->assertEquals(null, $this->controller->fetch('test_key'));
$this->assertEquals(null, $this->controller->fetch('test_key.sub_key'));
$this->assertEquals('default', $this->controller->fetch('test_key.wrong_subkey', 'default'));
Setting::createOrUpdate(['name' => 'test_key', 'value' => serialize(['sub_key' => 'value'])]);
$this->assertEquals('default', $this->controller->get('test_key.sub_key', 'default'));
$this->assertEquals('value', $this->controller->fetch('test_key.sub_key', 'default'));
}
function testItReturnsDefaultValueAsFallback() { function testItReturnsDefaultValueAsFallback() {
$settings = Stub::make($this->controller, [ $settings = Stub::make($this->controller, [
'getAllDefaults' => function () { 'getAllDefaults' => function () {