Author: Stuart Herbert (stuart.herbert@datasift.com)
Inheritance: extends WrappedConfig
 public function initStoryplayerConfigSupport(Injectables $injectables, $configFilename)
 {
     // shorthand
     $output = $injectables->output;
     // we start with an empty object
     $config = new StoryplayerConfig();
     try {
         // try to load our main config file
         $config->loadConfigFromFile($configFilename);
     } catch (E4xx_ConfigFileNotFound $e) {
         // there is no default config file
         //
         // it isn't fatal, but we do want to tell people about it
         $output->logCliWarning("storyplayer config file '{$configFilename}' not found or unreadable");
     } catch (E4xx_ConfigFileContainsInvalidJson $e) {
         // that is fatal
         $output->logCliError("storyplayer config file '{$configFilename}' is not valid JSON");
         exit(1);
     } catch (E4xx_StoryplayerConfigInvalid $e) {
         $output->logCliError($e->getMessage());
     } catch (Exception $e) {
         $output->logCliErrorWithException("unexpected error: " . $e->getMessage(), $e);
     }
     // special case - deprecated details in the config file
     if ($config->hasData('appSettings')) {
         $output->logCliWarning("'appSettings' in storyplayer config file is deprecated");
         $output->logCliWarning("please move to your system-under-test config file(s)");
     }
     // all done
     $this->storyplayerConfig = $config->getConfig();
 }
 /**
  * @covers DataSift\Storyplayer\ConfigLib\StoryplayerConfig::loadConfigFromFile()
  * @covers DataSift\Storyplayer\ConfigLib\StoryplayerConfig::validateConfig()
  * @covers DataSift\Storyplayer\ConfigLib\StoryplayerConfig::validateDefaultsSection()
  * @expectedException DataSift\Storyplayer\ConfigLib\E4xx_StoryplayerDefaultsMustBeStrings
  */
 public function testDefaultsSectionCannotContainObject()
 {
     // ----------------------------------------------------------------
     // setup your test
     $obj = new StoryplayerConfig();
     // ----------------------------------------------------------------
     // perform the change
     $obj->loadConfigFromFile(__DIR__ . "/storyplayer-config-with-defaults-contains-object.json");
     // ----------------------------------------------------------------
     // test the results
     $obj->validateConfig();
 }