X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FIrc%2Fextlib%2Fphergie%2FTests%2FPhergie%2FPlugin%2FTerryChayTest.php;h=e58ac6f2902daa81b450af279667070e6371f98b;hb=26baad63f2e7d5cd0f783aacdb9eb2a65a638656;hp=e76020b6b3783bf369f6eef759eb83cd77b74038;hpb=10f72f62af400f9b0edc6bc8a3f6a850395e3699;p=quix0rs-gnu-social.git diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TerryChayTest.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TerryChayTest.php index e76020b6b3..e58ac6f290 100644 --- a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TerryChayTest.php +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TerryChayTest.php @@ -12,15 +12,13 @@ * http://phergie.org/license * * @category Phergie - * @package Phergie + * @package Phergie_Tests * @author Phergie Development Team * @copyright 2008-2010 Phergie Development Team (http://phergie.org) * @license http://phergie.org/license New BSD License - * @link http://pear.phergie.org/package/Phergie + * @link http://pear.phergie.org/package/Phergie_Tests */ -require_once(dirname(__FILE__) . '/TestCase.php'); - /** * Unit test suite for Pherge_Plugin_TerryChay. * @@ -28,72 +26,110 @@ require_once(dirname(__FILE__) . '/TestCase.php'); * @package Phergie_Tests * @author Phergie Development Team * @license http://phergie.org/license New BSD License - * @link http://pear.phergie.org/package/Phergie + * @link http://pear.phergie.org/package/Phergie_Tests */ class Phergie_Plugin_TerryChayTest extends Phergie_Plugin_TestCase { /** - * Sets up the fixture, for example, opens a network connection. - * This method is called before a test is executed. + * Chayism used as a consistent response when related events are + * triggered + * + * @var string */ - protected function setUp() + private $chayism = 'Terry Chay doesn\'t need a framework; he already knows everyone\'s code'; + + /** + * Configures the mock plugin handler to return a mock Http plugin with + * a mock response object populated with predetermined content. + * + * @return void + */ + public function setUpHttpClient() { - $this->setPlugin(new Phergie_Plugin_TerryChay()); - $config = new Phergie_Config(); - $handler = new Phergie_Plugin_Handler($config, $this->handler); - $this->plugin->setPluginHandler($handler); - $handler->addPlugin($this->plugin); - $handler->addPlugin(new Phergie_Plugin_Http($config)); - $this->plugin->setConfig($config); - $this->connection->setNick('phergie'); - $this->plugin->onLoad(); + $response = $this->getMock('Phergie_Plugin_Http_Response'); + $response + ->expects($this->any()) + ->method('getContent') + ->will($this->returnValue($this->chayism)); + + $plugin = $this->getMock('Phergie_Plugin_Http'); + $plugin + ->expects($this->any()) + ->method('get') + ->will($this->returnValue($response)); + + $this->getMockPluginHandler() + ->expects($this->any()) + ->method('getPlugin') + ->with('Http') + ->will($this->returnValue($plugin)); } /** - * @event Phergie_Event_Request::privmsg - * @eventArg #zftalk - * @eventArg tychay + * Tests that the plugin requires the Http plugin as a dependency. + * + * @return void */ - public function testWithTyChay() + public function testRequiresHttpPlugin() { - $this->plugin->onPrivMsg(); - $this->assertHasEvent(Phergie_Event_Command::TYPE_PRIVMSG); + $this->assertRequiresPlugin('Http'); + $this->plugin->onLoad(); } /** - * @event Phergie_Event_Request::privmsg - * @eventArg #zftalk - * @eventArg terrychay + * Data provider for testPrivmsgTriggerReturnsChayism(). + * + * @return array Enumerated array of enumerated arrays each containing + * a set of parameters for a single call to + * testPrivmsgTriggerReturnsChayism() */ - public function testWithTerryChay() + public function dataProviderTestPrivmsgTriggerReturnsChayism() { - $this->plugin->onPrivMsg(); - $this->assertDoesNotHaveEvent(Phergie_Event_Command::TYPE_PRIVMSG, - 'string "terrychay" should not invoke a response'); + return array( + array('terry chay'), + array('terry chay'), + array('tychay'), + array('!tychay'), + array('! tychay'), + array('foo tychay bar'), + ); } - + /** - * @event Phergie_Event_Request::privmsg - * @eventArg #zftalk - * @eventArg terry chay + * Tests that appropriate triggers result in a response with a Chayism. + * + * @return void + * @dataProvider dataProviderTestPrivmsgTriggerReturnsChayism */ - public function testWithTerry_Chay() + public function testPrivmsgTriggerReturnsChayism($trigger) { - $this->plugin->onPrivMsg(); - $this->assertHasEvent(Phergie_Event_Command::TYPE_PRIVMSG, - 'string "terry chay" should invoke a response'); + $this->setConfig('command.prefix', '!'); + $this->setUpHttpClient(); + $args = array( + 'receiver' => $this->source, + 'text' => $trigger + ); + $event = $this->getMockEvent('privmsg', $args); + $this->plugin->setEvent($event); + $this->assertEmitsEvent('privmsg', array($this->source, 'Fact: ' . $this->chayism)); + $this->plugin->onPrivmsg(); } /** - * @event Phergie_Event_Request::privmsg - * @eventArg #zftalk - * @eventArg Elazar is not Mr. Chay + * Tests that lack of an appropriate trigger results in no response with + * a Chayism. + * + * @return void */ - public function testWithNoTyChay() + public function testNoPrivmsgTriggerDoesNotReturnChayism() { - $this->plugin->onPrivMsg(); - $this->assertDoesNotHaveEvent(Phergie_Event_Command::TYPE_PRIVMSG, - 'Failed asserting that elazar is not ' . - 'tychay'); + $args = array( + 'receiver' => $this->source, + 'text' => 'foo bar baz' + ); + $event = $this->getMockEvent('privmsg', $args); + $this->plugin->setEvent($event); + $this->assertDoesNotEmitEvent('privmsg', array($this->source, 'Fact: ' . $this->chayism)); + $this->plugin->onPrivmsg(); } -} \ No newline at end of file +}