/**
  * @covers Alchemy\Zippy\Resource\TeleporterContainer::load
  */
 public function testLoad()
 {
     $container = TeleporterContainer::load();
     $this->assertInstanceOf('Alchemy\\Zippy\\Resource\\TeleporterContainer', $container);
     $this->assertInstanceOf('Alchemy\\Zippy\\Resource\\Teleporter\\GuzzleTeleporter', $container['guzzle-teleporter']);
     $this->assertInstanceOf('Alchemy\\Zippy\\Resource\\Teleporter\\StreamTeleporter', $container['stream-teleporter']);
     $this->assertInstanceOf('Alchemy\\Zippy\\Resource\\Teleporter\\LocalTeleporter', $container['local-teleporter']);
 }
 /**
  * Builds the adapter container
  *
  * @return AdapterContainer
  */
 public static function load()
 {
     $container = new static();
     $container['zip.inflator'] = null;
     $container['zip.deflator'] = null;
     $container['resource-manager'] = $container->share(function ($container) {
         return new ResourceManager($container['request-mapper'], $container['resource-teleporter'], $container['filesystem']);
     });
     $container['executable-finder'] = $container->share(function ($container) {
         return new ExecutableFinder();
     });
     $container['request-mapper'] = $container->share(function ($container) {
         return new RequestMapper($container['target-locator']);
     });
     $container['target-locator'] = $container->share(function () {
         return new TargetLocator();
     });
     $container['teleporter-container'] = $container->share(function ($container) {
         return TeleporterContainer::load();
     });
     $container['resource-teleporter'] = $container->share(function ($container) {
         return new ResourceTeleporter($container['teleporter-container']);
     });
     $container['filesystem'] = $container->share(function () {
         return new Filesystem();
     });
     $container['Alchemy\\Zippy\\Adapter\\ZipAdapter'] = $container->share(function ($container) {
         return ZipAdapter::newInstance($container['executable-finder'], $container['resource-manager'], $container['zip.inflator'], $container['zip.deflator']);
     });
     $container['gnu-tar.inflator'] = null;
     $container['gnu-tar.deflator'] = null;
     $container['Alchemy\\Zippy\\Adapter\\GNUTar\\TarGNUTarAdapter'] = $container->share(function ($container) {
         return TarGNUTarAdapter::newInstance($container['executable-finder'], $container['resource-manager'], $container['gnu-tar.inflator'], $container['gnu-tar.deflator']);
     });
     $container['Alchemy\\Zippy\\Adapter\\GNUTar\\TarGzGNUTarAdapter'] = $container->share(function ($container) {
         return TarGzGNUTarAdapter::newInstance($container['executable-finder'], $container['resource-manager'], $container['gnu-tar.inflator'], $container['gnu-tar.deflator']);
     });
     $container['Alchemy\\Zippy\\Adapter\\GNUTar\\TarBz2GNUTarAdapter'] = $container->share(function ($container) {
         return TarBz2GNUTarAdapter::newInstance($container['executable-finder'], $container['resource-manager'], $container['gnu-tar.inflator'], $container['gnu-tar.deflator']);
     });
     $container['bsd-tar.inflator'] = null;
     $container['bsd-tar.deflator'] = null;
     $container['Alchemy\\Zippy\\Adapter\\BSDTar\\TarBSDTarAdapter'] = $container->share(function ($container) {
         return TarBSDTarAdapter::newInstance($container['executable-finder'], $container['resource-manager'], $container['bsd-tar.inflator'], $container['bsd-tar.deflator']);
     });
     $container['Alchemy\\Zippy\\Adapter\\BSDTar\\TarGzBSDTarAdapter'] = $container->share(function ($container) {
         return TarGzBSDTarAdapter::newInstance($container['executable-finder'], $container['resource-manager'], $container['bsd-tar.inflator'], $container['bsd-tar.deflator']);
     });
     $container['Alchemy\\Zippy\\Adapter\\BSDTar\\TarBz2BSDTarAdapter'] = $container->share(function ($container) {
         return TarBz2BSDTarAdapter::newInstance($container['executable-finder'], $container['resource-manager'], $container['bsd-tar.inflator'], $container['bsd-tar.deflator']);
     });
     $container['Alchemy\\Zippy\\Adapter\\ZipExtensionAdapter'] = $container->share(function () {
         return ZipExtensionAdapter::newInstance();
     });
     return $container;
 }