-
Notifications
You must be signed in to change notification settings - Fork 42
/
phpunit_phpunit.patch
75 lines (69 loc) · 2.37 KB
/
phpunit_phpunit.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
diff --git a/phpunit b/phpunit
index 2b5749a83..6b79913f4 100755
--- a/phpunit
+++ b/phpunit
@@ -27,35 +27,53 @@ if (!ini_get('date.timezone')) {
ini_set('date.timezone', 'UTC');
}
-foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
+// find soft-mocks init path
+$softMocksInitPath = '';
+foreach (array(__DIR__ . '/../../badoo/soft-mocks/src/init_with_composer.php', __DIR__ . '/../../../src/init_with_composer.php') as $file) {
if (file_exists($file)) {
- define('PHPUNIT_COMPOSER_INSTALL', $file);
-
- break;
+ $softMocksInitPath = $file;
}
}
-
unset($file);
-if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
- fwrite(
- STDERR,
- 'You need to set up the project dependencies using Composer:' . PHP_EOL . PHP_EOL .
- ' composer install' . PHP_EOL . PHP_EOL .
- 'You can learn all about Composer on https://getcomposer.org/.' . PHP_EOL
- );
-
- die(1);
+if ($softMocksInitPath) {
+ $composerInstall = require $softMocksInitPath;
+ require $composerInstall;
+ // inject soft-mocks into phpunit
+ class_exists(PHPUnit\Util\FileLoader::class);
+ \Badoo\SoftMocks::injectIntoPhpunit();
+ define('PHPUNIT_COMPOSER_INSTALL', $composerInstall);
+ unset($composerInstall);
+} else {
+ foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
+ if (file_exists($file)) {
+ define('PHPUNIT_COMPOSER_INSTALL', $file);
+ break;
+ }
+ }
+ unset($file);
+ if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
+ fwrite(STDERR,
+ 'You need to set up the project dependencies using Composer:' . PHP_EOL . PHP_EOL .
+ ' composer install' . PHP_EOL . PHP_EOL .
+ 'You can learn all about Composer on https://getcomposer.org/.' . PHP_EOL
+ );
+ die(1);
+ }
+ require PHPUNIT_COMPOSER_INSTALL;
}
$options = getopt('', array('prepend:'));
if (isset($options['prepend'])) {
- require $options['prepend'];
+ if ($softMocksInitPath) {
+ require \Badoo\SoftMocks::rewrite($options['prepend']);
+ } else {
+ require $options['prepend'];
+ }
}
unset($options);
-
-require PHPUNIT_COMPOSER_INSTALL;
+unset($softMocksInitPath);
PHPUnit\TextUI\Command::main();