getMockBuilder('Cake\Console\Shell') ->disableOriginalConstructor() ->getMock(); $this->Tasks = new TaskRegistry($shell); } /** * tearDown */ public function tearDown(): void { unset($this->Tasks); parent::tearDown(); } /** * test triggering callbacks on loaded tasks */ public function testLoad(): void { $result = $this->Tasks->load('Command'); $this->assertInstanceOf('Cake\Shell\Task\CommandTask', $result); $this->assertInstanceOf('Cake\Shell\Task\CommandTask', $this->Tasks->Command); $result = $this->Tasks->loaded(); $this->assertEquals(['Command'], $result, 'loaded() results are wrong.'); } /** * test missingtask exception */ public function testLoadMissingTask(): void { $this->expectException(\Cake\Console\Exception\MissingTaskException::class); $this->Tasks->load('ThisTaskShouldAlwaysBeMissing'); } /** * test loading a plugin helper. */ public function testLoadPluginTask(): void { $shell = $this->getMockBuilder('Cake\Console\Shell') ->disableOriginalConstructor() ->getMock(); $this->loadPlugins(['TestPlugin']); $this->Tasks = new TaskRegistry($shell); $result = $this->Tasks->load('TestPlugin.OtherTask'); $this->assertInstanceOf('TestPlugin\Shell\Task\OtherTaskTask', $result, 'Task class is wrong.'); $this->assertInstanceOf('TestPlugin\Shell\Task\OtherTaskTask', $this->Tasks->OtherTask, 'Class is wrong'); $this->clearPlugins(); } /** * Tests loading as an alias */ public function testLoadWithAlias(): void { $this->loadPlugins(['TestPlugin']); $result = $this->Tasks->load('CommandAliased', ['className' => 'Command']); $this->assertInstanceOf('Cake\Shell\Task\CommandTask', $result); $this->assertInstanceOf('Cake\Shell\Task\CommandTask', $this->Tasks->CommandAliased); $result = $this->Tasks->loaded(); $this->assertEquals(['CommandAliased'], $result, 'loaded() results are wrong.'); $result = $this->Tasks->load('SomeTask', ['className' => 'TestPlugin.OtherTask']); $this->assertInstanceOf('TestPlugin\Shell\Task\OtherTaskTask', $result); $this->assertInstanceOf('TestPlugin\Shell\Task\OtherTaskTask', $this->Tasks->SomeTask); $result = $this->Tasks->loaded(); $this->assertEquals(['CommandAliased', 'SomeTask'], $result, 'loaded() results are wrong.'); $this->clearPlugins(); } }