public function testZipReturnsAZipFileLocation() { $file1 = ['name' => 'foobar', 'content' => 'file1 content']; $file2 = ['name' => 'fizzbuzz', 'content' => 'file2 content']; $file3 = ['name' => 'bizzbang', 'content' => 'file3 content']; $this->archive->expects($this->exactly(3))->method('file_put_contents'); $this->archive->expects($this->once())->method('exec'); $targetDir = '/tmp/foobar'; $baseDir = 'foobar'; $this->setAttribute($this->archive, 'targetDir', $targetDir); $exec = sprintf('cd "%s" && cd .. && zip -r "%s" "%s" -x */.git[!a]\\*', $targetDir, $targetDir . '.zip', $baseDir); $this->archive->expects($this->once())->method('exec')->with($exec); $this->archive->queueToFile($file1['name'], $file1['content']); $this->archive->queueToFile($file2['name'], $file2['content']); $this->archive->queueToFile($file3['name'], $file3['content']); $this->archive->write(); $returned = $this->archive->zip(); $this->assertEquals($targetDir . '.zip', $returned); }
/** * @param array $request * @return string */ public function createArchive(array $request) { $submittedExtensions = $this->matchExtensionToArrayValues($request); $this->archive = new Extension\Archive(); $extensions = []; $sources = []; $mergedData = []; foreach ($submittedExtensions as $slug => $data) { $extension = $this->getExtensionBySlug($slug); $extension->setCustomData($data); $extensions[$slug] = $extension; $extension->setReturnAvailableData(false); $this->archive->queueToFile($extension->getTargetFile(), $extension->renderManifest($extension->getData())); foreach ($extension->getSources() as $name => $source) { $sources[$name] = $source; } $mergedData[$slug] = $extension->getData(false); } $this->processExtensionSources($sources); $this->archive->queueToFile('puphpet/config.yaml', Yaml::dump($mergedData, 50)); $this->archive->addFolder(__DIR__ . '/../../../../modules', 'puphpet/puppet/modules'); $this->archive->write(); return $this->archive->zip(); }
/** * @return string */ public function getPuppetModules() { $this->archive = new Extension\Archive('puphpet/puppet/modules'); $this->archive->write(); return $this->archive->zip(); }