|
24 | 24 | use Composer\Composer; |
25 | 25 | use Composer\Config; |
26 | 26 | use Composer\Installer\InstallationManager; |
| 27 | +use Composer\IO\IOInterface; |
27 | 28 | use Composer\IO\NullIO; |
| 29 | +use Composer\Plugin\PluginInterface; |
| 30 | +use Composer\Test\Mock\HttpDownloaderMock; |
| 31 | +use Composer\Util\HttpDownloader; |
| 32 | +use Composer\Util\Loop; |
28 | 33 | use johnpbloch\Composer\WordPressCorePlugin; |
29 | 34 | use PHPUnit\Framework\TestCase; |
30 | 35 |
|
31 | 36 | class WordPressCorePluginTest extends TestCase { |
32 | 37 |
|
33 | 38 | public function testActivate() { |
34 | | - $composer = new Composer(); |
35 | | - $installationManager = new InstallationManager(); |
| 39 | + $composer = new Composer(); |
| 40 | + $composer->setConfig( new Config() ); |
| 41 | + $nullIO = new NullIO(); |
| 42 | + $installationManager = $this->getInstallationManager( $composer, $nullIO ); |
36 | 43 | $composer->setInstallationManager( $installationManager ); |
37 | 44 | $composer->setConfig( new Config() ); |
38 | 45 |
|
39 | 46 | $plugin = new WordPressCorePlugin(); |
40 | | - $plugin->activate( $composer, new NullIO() ); |
| 47 | + $plugin->activate( $composer, $nullIO ); |
41 | 48 |
|
42 | 49 | $installer = $installationManager->getInstaller( 'wordpress-core' ); |
43 | 50 |
|
44 | 51 | $this->assertInstanceOf( '\johnpbloch\Composer\WordPressCoreInstaller', $installer ); |
45 | 52 | } |
46 | 53 |
|
| 54 | + /** |
| 55 | + * @param Composer $composer |
| 56 | + * @param IOInterface $io |
| 57 | + * |
| 58 | + * @return InstallationManager |
| 59 | + */ |
| 60 | + private function getInstallationManager( $composer, $io ) { |
| 61 | + $installationManager = null; |
| 62 | + switch ( explode( '.', PluginInterface::PLUGIN_API_VERSION )[0] ) { |
| 63 | + case '1': |
| 64 | + $installationManager = new InstallationManager(); |
| 65 | + break; |
| 66 | + case '2': |
| 67 | + default: |
| 68 | + $http = new HttpDownloader( $io, $composer->getConfig() ); |
| 69 | + $loop = new Loop( $http ); |
| 70 | + $installationManager = new InstallationManager( $loop, $io ); |
| 71 | + break; |
| 72 | + } |
| 73 | + |
| 74 | + return $installationManager; |
| 75 | + } |
| 76 | + |
47 | 77 | } |
0 commit comments