Skip to content

Commit 9b03a03

Browse files
committed
implement array prefix as Symfony 2.3 does not support it (proper fix for the previous commit)
1 parent 703d614 commit 9b03a03

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

src/Symfony/Cmf/Component/Testing/Phpunit/DatabaseTestListener.php

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,20 @@ class DatabaseTestListener implements \PHPUnit_Framework_TestListener
2323
{
2424
protected static $currentSuite;
2525
private $processBuilder;
26+
private $prefix;
2627

2728
public function __construct($processBuilder = null)
2829
{
2930
if (null === $processBuilder) {
3031
$this->processBuilder = new ProcessBuilder();
3132
$phpExecutableFinder = new PhpExecutableFinder();
3233
$phpExecutable = $phpExecutableFinder->find();
33-
if (false !== $phpExecutable) {
34-
$this->processBuilder->setPrefix(
35-
ProcessUtils::escapeArgument($phpExecutable).' '.
36-
ProcessUtils::escapeArgument(__DIR__.'/../../../../../../bin/console')
37-
);
38-
} else {
34+
if (false === $phpExecutable) {
3935
throw new \RuntimeException('No PHP executable found on the current system.');
4036
}
37+
38+
// Symfony 2.3 does not support array prefix, so we have to implement it ourselves
39+
$this->prefix = array($phpExecutable, __DIR__.'/../../../../../../bin/console');
4140
} else {
4241
$this->processBuilder = $processBuilder;
4342
}
@@ -112,7 +111,7 @@ private function setUpPhpcrDatabase($suite)
112111
echo PHP_EOL.PHP_EOL;
113112

114113
$process = $this->processBuilder
115-
->setArguments(array('doctrine:phpcr:init:dbal', '--drop'))
114+
->setArguments(array_merge($this->prefix, array('doctrine:phpcr:init:dbal', '--drop')))
116115
->getProcess();
117116
$process->run();
118117

@@ -123,7 +122,7 @@ private function setUpPhpcrDatabase($suite)
123122
$suite->markTestSuiteSkipped('[PHPCR] Error when initializing dbal: '.$output);
124123
} else {
125124
$process = $this->processBuilder
126-
->setArguments(array('doctrine:phpcr:repository:init'))
125+
->setArguments(array_merge($this->prefix, array('doctrine:phpcr:repository:init')))
127126
->getProcess();
128127
$process->run();
129128

@@ -151,7 +150,7 @@ private function setUpOrmDatabase($suite)
151150
echo PHP_EOL.PHP_EOL;
152151

153152
$process = $this->processBuilder
154-
->setArguments(array('doctrine:schema:drop', '--env=orm', '--force'))
153+
->setArguments(array_merge($this->prefix, array('doctrine:schema:drop', '--env=orm', '--force')))
155154
->getProcess();
156155
$process->run();
157156

@@ -167,7 +166,7 @@ private function setUpOrmDatabase($suite)
167166
}
168167

169168
$process = $this->processBuilder
170-
->setArguments(array('doctrine:database:create', '--env=orm'))
169+
->setArguments(array_merge($this->prefix, array('doctrine:database:create', '--env=orm')))
171170
->getProcess();
172171
$process->run();
173172

@@ -178,7 +177,7 @@ private function setUpOrmDatabase($suite)
178177
$suite->markTestSuiteSkipped('[ORM] Error when creating database: '.$output);
179178
} else {
180179
$process = $this->processBuilder
181-
->setArguments(array('doctrine:schema:create', '--env=orm'))
180+
->setArguments(array_merge($this->prefix, array('doctrine:schema:create', '--env=orm')))
182181
->getProcess();
183182
$process->run();
184183

@@ -208,7 +207,7 @@ public function endTestSuite(\PHPUnit_Framework_TestSuite $suite)
208207
}
209208

210209
$process = $this->processBuilder
211-
->setArguments(array('doctrine:database:drop', '--force'))
210+
->setArguments(array_merge($this->prefix, array('doctrine:database:drop', '--force')))
212211
->getProcess();
213212
$process->run();
214213

0 commit comments

Comments
 (0)