scratch – Blame information for rev 122
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
120 | 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 | } |