/**
  * Tests fromEvent().
  */
 public function testFromEvent()
 {
     $event = Phake::mock('\\Phergie\\Irc\\Event\\UserEventInterface');
     // EventInterface
     $message = 'message';
     $connection = Phake::mock('\\Phergie\\Irc\\ConnectionInterface');
     $params = array('param1', 'param2');
     $command = 'command';
     Phake::when($event)->getMessage()->thenReturn($message);
     Phake::when($event)->getConnection()->thenReturn($connection);
     Phake::when($event)->getParams()->thenReturn($params);
     Phake::when($event)->getCommand()->thenReturn($command);
     // UserEventInterface
     $prefix = 'prefix';
     $nick = 'nick';
     $username = '******';
     $host = 'host';
     $targets = array('target1', 'target2');
     Phake::when($event)->getPrefix()->thenReturn($prefix);
     Phake::when($event)->getNick()->thenReturn($nick);
     Phake::when($event)->getUsername()->thenReturn($username);
     Phake::when($event)->getHost()->thenReturn($host);
     Phake::when($event)->getTargets()->thenReturn($targets);
     $this->event->fromEvent($event);
     // EventInterface
     $this->assertSame($message, $this->event->getMessage());
     $this->assertSame($connection, $this->event->getConnection());
     $this->assertSame($params, $this->event->getParams());
     $this->assertSame($command, $this->event->getCommand());
     // UserEventInterface
     $this->assertSame($prefix, $this->event->getPrefix());
     $this->assertSame($nick, $this->event->getNick());
     $this->assertSame($username, $this->event->getUsername());
     $this->assertSame($host, $this->event->getHost());
     $this->assertSame($targets, $this->event->getTargets());
 }
 /**
  * Responds to a parameter-less help command with a list of available
  * commands.
  *
  * @param \Phergie\Irc\Plugin\React\Command\CommandEvent $event
  * @param \Phergie\Irc\Bot\React\EventQueueInterface $queue
  */
 protected function listCommands(CommandEvent $event, EventQueueInterface $queue)
 {
     $targets = $event->getTargets();
     $target = reset($targets);
     $nick = $event->getNick();
     if ($target === $event->getConnection()->getNickname()) {
         $target = $nick;
         $address = '';
     } else {
         $address = $nick . ': ';
     }
     $method = 'irc' . $event->getCommand();
     $message = $address . $this->listText . implode(' ', $this->commands);
     $queue->{$method}($target, $message);
 }