getMockBuilder('Cake\Console\ConsoleIo') ->disableOriginalConstructor() ->getMock(); $this->helpers = new HelperRegistry(); $this->helpers->setIo($io); } /** * tearDown * * @return void */ public function tearDown() { unset($this->helpers); parent::tearDown(); } /** * test loading helpers. * * @return void */ public function testLoad() { $result = $this->helpers->load('Simple'); $this->assertInstanceOf(SimpleHelper::class, $result); $this->assertInstanceOf(SimpleHelper::class, $this->helpers->Simple); $result = $this->helpers->loaded(); $this->assertEquals(['Simple'], $result, 'loaded() results are wrong.'); } /** * test loading helpers. * * @return void */ public function testLoadCommandNamespace() { $result = $this->helpers->load('Command'); $this->assertInstanceOf(CommandHelper::class, $result); $this->assertInstanceOf(CommandHelper::class, $this->helpers->Command); $result = $this->helpers->loaded(); $this->assertEquals(['Command'], $result, 'loaded() results are wrong.'); } /** * test triggering callbacks on loaded helpers * * @return void */ public function testLoadWithConfig() { $result = $this->helpers->load('Simple', ['key' => 'value']); $this->assertEquals('value', $result->getConfig('key')); } /** * test missing helper exception * * @return void */ public function testLoadMissingHelper() { $this->expectException(\Cake\Console\Exception\MissingHelperException::class); $this->helpers->load('ThisTaskShouldAlwaysBeMissing'); } /** * Tests loading as an alias * * @return void */ public function testLoadWithAlias() { $this->loadPlugins(['TestPlugin']); $result = $this->helpers->load('SimpleAliased', ['className' => 'Simple']); $this->assertInstanceOf(SimpleHelper::class, $result); $this->assertInstanceOf(SimpleHelper::class, $this->helpers->SimpleAliased); $result = $this->helpers->loaded(); $this->assertEquals(['SimpleAliased'], $result, 'loaded() results are wrong.'); $result = $this->helpers->load('SomeHelper', ['className' => 'TestPlugin.Example']); $this->assertInstanceOf(ExampleHelper::class, $result); $this->assertInstanceOf(ExampleHelper::class, $this->helpers->SomeHelper); $result = $this->helpers->loaded(); $this->assertEquals(['SimpleAliased', 'SomeHelper'], $result, 'loaded() results are wrong.'); $this->clearPlugins(); } }