getMock('Cake\Console\Shell', array(), array(), '', false); $this->Tasks = new TaskRegistry($shell); } /** * tearDown * * @return void */ public function tearDown() { unset($this->Tasks); parent::tearDown(); } /** * test triggering callbacks on loaded tasks * * @return void */ public function testLoad() { $result = $this->Tasks->load('Project'); $this->assertInstanceOf('Cake\Shell\Task\ProjectTask', $result); $this->assertInstanceOf('Cake\Shell\Task\ProjectTask', $this->Tasks->Project); $result = $this->Tasks->loaded(); $this->assertEquals(['Project'], $result, 'loaded() results are wrong.'); } /** * test missingtask exception * * @expectedException \Cake\Console\Exception\MissingTaskException * @return void */ public function testLoadMissingTask() { $this->Tasks->load('ThisTaskShouldAlwaysBeMissing'); } /** * test loading a plugin helper. * * @return void */ public function testLoadPluginTask() { $dispatcher = $this->getMock('Cake\Console\ShellDispatcher', array(), array(), '', false); $shell = $this->getMock('Cake\Console\Shell', array(), array(), '', false); Plugin::load('TestPlugin'); $this->Tasks = new TaskRegistry($shell, $dispatcher); $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'); Plugin::unload(); } /** * Tests loading as an alias * * @return void */ public function testLoadWithAlias() { Plugin::load('TestPlugin'); $result = $this->Tasks->load('ProjectAliased', array('className' => 'Project')); $this->assertInstanceOf('Cake\Shell\Task\ProjectTask', $result); $this->assertInstanceOf('Cake\Shell\Task\ProjectTask', $this->Tasks->ProjectAliased); $result = $this->Tasks->loaded(); $this->assertEquals(array('ProjectAliased'), $result, 'loaded() results are wrong.'); $result = $this->Tasks->load('SomeTask', array('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(array('ProjectAliased', 'SomeTask'), $result, 'loaded() results are wrong.'); } }