/** * @test */ public function shouldBeAbleToCloneLocally() { $repoName = "git://github.com/cpliakas/git-wrapper.git"; $localPath = "/path/to/working/copy"; $gitWrapper = $this->getMockBuilder('\\GitWrapper\\GitWrapper')->disableOriginalConstructor()->getMock(); $git = $this->getMockBuilder('\\GitWrapper\\GitWorkingCopy')->disableOriginalConstructor()->getMock(); $git->expects($this->any())->method('config')->will($this->returnValue($git)); $package = $this->getMockBuilder('PUGX\\Bot\\Package')->disableOriginalConstructor()->getMock(); $localPackage = new LocalPackage(null, $localPath, $package); $gitWrapper->expects($this->once())->method('cloneRepository')->will($this->returnValue($git)); $package->expects($this->once())->method('getRepository')->will($this->returnValue($repoName)); $command = new CloneLocally($gitWrapper, $this->mockEventDispatcher()); $this->assertNotFalse($command->execute($localPackage)); }
public function execute(Package $package, $dryRun = false) { $client = $this->getAuthenticateGitHubClient(); $gitWrapper = $this->getGitWrapper(); $step = new Step\ForkPackage($client, $this->dispatcher); $repository = $step->execute($package); sleep(180); $localPackage = new LocalPackage($repository, $this->sanitizeLocallyDir($package), $package); $step = new Step\CloneLocally($gitWrapper, $this->dispatcher); $step->execute($localPackage); $step = new Step\ExecuteCSFixer($this->phpCsFixerBin, 4000, $this->dispatcher); $step->execute($localPackage); if (!$dryRun) { $step = new Step\CommitAndPush($this->dispatcher); $git = $this->getGitWorking($gitWrapper, $localPackage); $step->execute($git, $localPackage); $step = new Step\MakeAPR($client, new FunnyMessageRepository(), $this->dispatcher); $step->execute($localPackage); } return $localPackage; }