/**
  * Constructor
  *
  * @throws ApplicationException
  */
 public function __construct(IDataSource $source = null, IRenderer $renderer = null, Settings $config = null)
 {
     $config = $config instanceof Settings ? $config : Settings::instance();
     $this->validateSettings($config);
     $this->feedTitle = $config->feed_title;
     $this->dataRowsLimit = $config->post_max_number;
     $this->fullContent = $config->post_full_content;
     $this->source = $source ?: DataSource::getFacadeRoot();
     $this->renderer = $renderer ?: Renderer::getFacadeRoot();
 }
 /**
  * Test object injection replacement
  */
 public function testObjectReplacement()
 {
     $this->assertInstanceOf('KoderHut\\RssFeedster\\Tests\\Mock\\DataSource\\MockDataSource', DataSource::getFacadeRoot());
     $this->assertInstanceOf('KoderHut\\RssFeedster\\Tests\\Mock\\View\\MockJsonRenderer', Renderer::getFacadeRoot());
 }