/**
  * Bind an instance of the Source Adapter Factory to the container.
  *
  * Attaches the default adapter types
  * @return void
  */
 public function registerSourceAdapterFactory()
 {
     $this->app->singleton('mediable.source.factory', function (Container $app) {
         $factory = new SourceAdapterFactory();
         $adapters = $app['config']->get('mediable.source_adapters');
         foreach ($adapters['class'] as $source => $adapter) {
             $factory->setAdapterForClass($adapter, $source);
         }
         foreach ($adapters['pattern'] as $source => $adapter) {
             $factory->setAdapterForPattern($adapter, $source);
         }
         return $factory;
     });
     $this->app->alias('mediable.source.factory', SourceAdapterFactory::class);
 }
 public function test_it_throws_exception_if_invalid_adapter_for_class()
 {
     $factory = new SourceAdapterFactory();
     $this->expectException(ConfigurationException::class);
     $factory->setAdapterForClass(stdClass::class, stdClass::class);
 }