private function addComposerPlugin(PluginInterface $plugin) { $pluginManagerReflection = new \ReflectionClass($this->composer->getPluginManager()); $addPluginReflection = $pluginManagerReflection->getMethod('addPlugin'); $addPluginReflection->setAccessible(true); $addPluginReflection->invoke($this->composer->getPluginManager(), $plugin); }
public function test_it_receives_event() { $this->composer->getPluginManager()->addPlugin(new ChangelogsPlugin()); $initialPackage = new Package('foo/bar', '1.0.0.0', 'v1.0.0'); $initialPackage->setSourceUrl('https://github.com/foo/bar.git'); $targetPackage = new Package('foo/bar', '1.0.1.0', 'v1.0.1'); $targetPackage->setSourceUrl('https://github.com/foo/bar.git'); $operation = new UpdateOperation($initialPackage, $targetPackage); $this->composer->getEventDispatcher()->dispatchPackageEvent(PackageEvents::POST_PACKAGE_UPDATE, false, new DefaultPolicy(false, false), new Pool(), new CompositeRepository([]), new Request(new Pool()), [$operation], $operation); $this->composer->getEventDispatcher()->dispatchScript(ScriptEvents::POST_UPDATE_CMD); $expectedOutput = <<<OUTPUT Changelogs summary: - foo/bar updated from v1.0.0 to v1.0.1 See changes: https://github.com/foo/bar/compare/v1.0.0...v1.0.1 Release notes: https://github.com/foo/bar/releases/tag/v1.0.1 OUTPUT; $this->assertSame($expectedOutput, $this->io->getOutput()); }