scratch – Blame information for rev

Subversion Repositories:
Rev:
Rev Author Line No. Line
115 office 1 <?php
2  
3 namespace Alchemy\Tests\BinaryDriver;
4  
5 use Symfony\Component\Process\ProcessBuilder;
6 use Alchemy\BinaryDriver\ProcessBuilderFactory;
7 use Symfony\Component\Process\Process;
8  
9 class LTSProcessBuilderFactoryTest extends AbstractProcessBuilderFactoryTest
10 {
11 protected function getProcessBuilderFactory($binary)
12 {
13 $factory = new ProcessBuilderFactory($binary);
14 $factory->setBuilder(new LTSProcessBuilder());
15 ProcessBuilderFactory::$emulateSfLTS = false;
16 $factory->useBinary($binary);
17  
18 return $factory;
19 }
20 }
21  
22 class LTSProcessBuilder extends ProcessBuilder
23 {
24 private $arguments;
25 private $prefix;
26 private $timeout;
27  
28 public function __construct(array $arguments = array())
29 {
30 $this->arguments = $arguments;
31 parent::__construct($arguments);
32 }
33  
34 public function setArguments(array $arguments)
35 {
36 $this->arguments = $arguments;
37  
38 return $this;
39 }
40  
41 public function setPrefix($prefix)
42 {
43 $this->prefix = $prefix;
44  
45 return $this;
46 }
47  
48 public function setTimeout($timeout)
49 {
50 $this->timeout = $timeout;
51  
52 return $this;
53 }
54  
55 public function getProcess()
56 {
57 if (!$this->prefix && !count($this->arguments)) {
58 throw new LogicException('You must add() command arguments before calling getProcess().');
59 }
60  
61 $args = $this->prefix ? array_merge(array($this->prefix), $this->arguments) : $this->arguments;
62 $script = implode(' ', array_map('escapeshellarg', $args));
63  
64 return new Process($script, null, null, null, $this->timeout);
65 }
66 }