/**
  * Tests ordering by command priority then FIFO.
  */
 public function testPriorities()
 {
     // start with empty queue
     $this->assertNull($this->queue->extract());
     // queue a bunch of stuff
     $this->queue->ircQuit('Bye!');
     $this->queue->ircPrivmsg('#channel', 'text1');
     $this->queue->ircPrivmsg('#channel', 'text2');
     $this->queue->ircPrivmsg('#channel', 'text3');
     // verify order of output
     $event = $this->queue->extract();
     $this->assertInstanceOf('\\Phergie\\Irc\\Event\\EventInterface', $event);
     $this->assertEquals('PRIVMSG', $event->getCommand());
     $this->assertEquals(['#channel', 'text1'], $event->getParams());
     $event = $this->queue->extract();
     $this->assertInstanceOf('\\Phergie\\Irc\\Event\\EventInterface', $event);
     $this->assertEquals('PRIVMSG', $event->getCommand());
     $this->assertEquals(['#channel', 'text2'], $event->getParams());
     $event = $this->queue->extract();
     $this->assertInstanceOf('\\Phergie\\Irc\\Event\\EventInterface', $event);
     $this->assertEquals('PRIVMSG', $event->getCommand());
     $this->assertEquals(['#channel', 'text3'], $event->getParams());
     $event = $this->queue->extract();
     $this->assertInstanceOf('\\Phergie\\Irc\\Event\\EventInterface', $event);
     $this->assertEquals('QUIT', $event->getCommand());
     $this->assertEquals(['Bye!'], $event->getParams());
     $this->assertNull($this->queue->extract());
 }
 public function handleDaddyMessage(Event $event, EventQueue $queue)
 {
     if ($event instanceof UserEvent) {
         $nick = $event->getNick();
         $channel = $event->getSource();
         $params = $event->getParams();
         $text = $params['text'];
         $matched = preg_match("/\\s*who'?s (?:your|ya) ([^?]+)[?]?/i", $text, $matches);
         if ($matched) {
             $msg = "You're my " . $matches[1] . ', ' . $nick . '!';
             $queue->ircPrivmsg($channel, $msg);
         }
     }
 }
 /**
  * @param Url $url
  * @param UserEvent $event
  * @param EventQueue $queue
  */
 protected function sendMessage(Url $url, UserEvent $event, EventQueue $queue)
 {
     $message = $this->getHandler()->handle($url);
     $queue->ircPrivmsg($event->getSource(), $message);
 }