createMock(AddonLoader::class); $loader->expects($this->once())->method('getAddons')->willReturn(['helloaddon' => $this->createMock(Addon::class)]); $manager = new AddonManager($loader); $manager->bootstrapAddons(['helloaddon' => []]); } public function testGetAllSubscribedEventsReturnsEvents(): void { $addon = $this->createStub(Addon::class); $addon->method('getSubscribedEvents')->willReturn([[HtmlFilterEvent::PAGE_END, [Addon::class, 'onPageEnd']]]); $loader = $this->createStub(AddonLoader::class); $loader->method('getAddons')->willReturn(['helloaddon' => $addon]); $manager = new AddonManager($loader); $manager->bootstrapAddons(['helloaddon' => []]); $this->assertSame( [[HtmlFilterEvent::PAGE_END, [Addon::class, 'onPageEnd']]], $manager->getAllSubscribedEvents() ); } public function testGetRequiredDependenciesReturnsArray(): void { $addon = $this->createStub(Addon::class); $addon->method('getId')->willReturn('helloaddon'); $addon->method('getRequiredDependencies')->willReturn(['foo', 'bar']); $loader = $this->createStub(AddonLoader::class); $loader->method('getAddons')->willReturn(['helloaddon' => $addon]); $manager = new AddonManager($loader); $manager->bootstrapAddons(['helloaddon' => []]); $this->assertSame( ['helloaddon' => ['foo', 'bar']], $manager->getRequiredDependencies() ); } }