/** * 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); }
/** * Set the source for the file. * @param mixed $source * @return static */ public function fromSource($source) { $this->source = $this->factory->create($source); return $this; }
public function test_it_returns_adapters_unmodified() { $factory = new SourceAdapterFactory(); $adapter = $this->createMock(SourceAdapterInterface::class); $this->assertEquals($adapter, $factory->create($adapter)); }