示例#1
0
 /**
  * @param boolean $isInstalled
  * @param boolean $isForced
  * @dataProvider provideCoreBuildTestCases
  */
 public function testCoreBuild($isInstalled, $isForced)
 {
     $shouldInstall = !$isInstalled || $isForced;
     $package = $this->getPackage('bcn/test1', '1.0.0', 'magento-core', self::SOURCE_DIR);
     $project = new Project();
     $project->addPackage($package);
     $project->setTargetDir(self::TARGET_DIR);
     $project->setStrategy('copy');
     $project->setForce($isForced);
     $filesystem = $this->getFilesystem();
     if (!$isForced) {
         $filesystem->expects($this->once())->method("exists")->with($this->equalTo(self::TARGET_DIR . DIRECTORY_SEPARATOR . "index.php"))->will($this->returnValue($isInstalled));
     }
     $strategy = $this->getStrategy();
     $builder = $this->getPackageBuilder();
     if ($shouldInstall) {
         $builder->expects($this->once())->method('build')->with($this->equalTo($package), $this->equalTo(self::TARGET_DIR), $this->equalTo($strategy));
     } else {
         $builder->expects($this->never())->method('build');
     }
     $manager = new Builder($builder);
     $manager->setFilesystem($filesystem);
     $manager->addStrategy('copy', $strategy);
     $manager->build($project);
 }
示例#2
0
 /**
  * @return Container
  */
 public static function create()
 {
     $container = new Container();
     $container['locker_file'] = $container->factory(function () {
         return new JsonFile("composer.lock");
     });
     $container['locker'] = $container->factory(function (Container $container) {
         $config = new Config();
         $io = new NullIO();
         $repositoryManager = new RepositoryManager($io, $config);
         $installationManager = new InstallationManager();
         return new Locker($io, $container['locker_file'], $repositoryManager, $installationManager, "");
     });
     $container['repository'] = $container->factory(function (Container $container) {
         return $container->getLocker()->getLockedRepository(true);
     });
     $container['logger'] = $container->factory(function () {
         $logger = new Logger("magebuild");
         return $logger;
     });
     $container['builder'] = $container->factory(function (Container $container) {
         $builder = new PackageBuilder();
         $builder->addMapping(new ModmanMapping());
         $builder->setFilesystem($container->getFilesystem());
         $manager = new Builder($builder);
         $manager->addStrategy('copy', new CopyStrategy());
         $manager->addStrategy('symlink', new SymlinkStrategy());
         $manager->setFilesystem($container->getFilesystem());
         return $manager;
     });
     $container['root_package'] = $container->factory(function (Container $container) {
         $config = $container->getRootPackageFile();
         return $container->getRootPackageLoader()->load($config->read());
     });
     $container['root_package_loader'] = $container->factory(function () {
         return new RootPackageLoader();
     });
     $container['root_package_file'] = $container->factory(function () {
         return new JsonFile("composer.json");
     });
     $container['filesystem'] = $container->factory(function () {
         return new Filesystem();
     });
     return $container;
 }