getMock('Shell', array(), array(), '', false); $dispatcher = $this->getMock('ShellDispatcher', array(), array(), '', false); $this->Tasks = new TaskCollection($shell, $dispatcher); } /** * 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('DbConfig'); $this->assertInstanceOf('DbConfigTask', $result); $this->assertInstanceOf('DbConfigTask', $this->Tasks->DbConfig); $result = $this->Tasks->loaded(); $this->assertEquals(array('DbConfig'), $result, 'loaded() results are wrong.'); } /** * test load and enable = false * * @return void */ public function testLoadWithEnableFalse() { $result = $this->Tasks->load('DbConfig', array('enabled' => false)); $this->assertInstanceOf('DbConfigTask', $result); $this->assertInstanceOf('DbConfigTask', $this->Tasks->DbConfig); $this->assertFalse($this->Tasks->enabled('DbConfig'), 'DbConfigTask should be disabled'); } /** * test missingtask exception * * @expectedException MissingTaskException * @return void */ public function testLoadMissingTask() { $this->Tasks->load('ThisTaskShouldAlwaysBeMissing'); } /** * test loading a plugin helper. * * @return void */ public function testLoadPluginTask() { $dispatcher = $this->getMock('ShellDispatcher', array(), array(), '', false); $shell = $this->getMock('Shell', array(), array(), '', false); App::build(array( 'Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS) )); CakePlugin::load('TestPlugin'); $this->Tasks = new TaskCollection($shell, $dispatcher); $result = $this->Tasks->load('TestPlugin.OtherTask'); $this->assertInstanceOf('OtherTaskTask', $result, 'Task class is wrong.'); $this->assertInstanceOf('OtherTaskTask', $this->Tasks->OtherTask, 'Class is wrong'); CakePlugin::unload(); } /** * test unload() * * @return void */ public function testUnload() { $this->Tasks->load('Extract'); $this->Tasks->load('DbConfig'); $result = $this->Tasks->loaded(); $this->assertEquals(array('Extract', 'DbConfig'), $result, 'loaded tasks is wrong'); $this->Tasks->unload('DbConfig'); $this->assertFalse(isset($this->Tasks->DbConfig)); $this->assertTrue(isset($this->Tasks->Extract)); $result = $this->Tasks->loaded(); $this->assertEquals(array('Extract'), $result, 'loaded tasks is wrong'); } /** * Tests loading as an alias * * @return void */ public function testLoadWithAlias() { $result = $this->Tasks->load('DbConfig', array('className' => 'DbConfigAliased')); $this->assertInstanceOf('DbConfigAliasedTask', $result); $this->assertInstanceOf('DbConfigAliasedTask', $this->Tasks->DbConfig); $result = $this->Tasks->loaded(); $this->assertEquals(array('DbConfig'), $result, 'loaded() results are wrong.'); $result = $this->Tasks->load('SomeTask', array('className' => 'TestPlugin.OtherTask')); $this->assertInstanceOf('OtherTaskTask', $result); $this->assertInstanceOf('OtherTaskTask', $this->Tasks->SomeTask); $result = $this->Tasks->loaded(); $this->assertEquals(array('DbConfig', 'SomeTask'), $result, 'loaded() results are wrong.'); } }