/**
  * Checks that user event data has been converted.
  *
  * @param array $data
  * @param \Phergie\Irc\Event\UserEvent $event
  */
 protected function checkUserEventData(array $data, UserEvent $event)
 {
     $this->assertSame($data['prefix'], $event->getPrefix());
     $this->assertSame($data['nick'], $event->getNick());
     $this->assertSame($data['user'], $event->getUsername());
     $this->assertSame($data['host'], $event->getHost());
     $this->assertSame($data['message'], $event->getMessage());
     $this->assertSame($data['command'], $event->getCommand());
     $this->assertSame($data['targets'], $event->getTargets());
 }
 /**
  * Tests setNick().
  */
 public function testSetNick()
 {
     $nick = 'nick';
     $this->event->setNick($nick);
     $this->assertSame($nick, $this->event->getNick());
 }
 /**
  * Modifies a term's karma.
  *
  * @param string $term   Term to modify
  * @param string $action Karma action (either ++ or --)
  * @param \Phergie\Irc\Event\UserEvent $event
  * @param \Phergie\Irc\Bot\React\EventQueueInterface $queue
  * @return bool|\React\Promise\Promise
  */
 protected function modifyKarma($term, $action, UserEvent $event, Queue $queue)
 {
     $nick = $event->getNick();
     $canonicalTerm = $this->getCanonicalTerm($term, $nick);
     if ($canonicalTerm == strtolower($nick)) {
         $message = 'You can\'t give yourself karma.';
         $queue->ircPrivmsg($event->getSource(), $message);
         return false;
     }
     $karma = 0;
     return $this->messenger->rpc(MessageFactory::rpc('fetchKarma', ['term' => $canonicalTerm]))->then(function ($payload) use($event, $queue, $action, $term, $canonicalTerm, &$karma) {
         $this->logDebug('payload: ' . var_export($payload, true));
         $karma = $payload['karma'] + ($action == '++' ? 1 : -1);
         return MessageFactory::rpc('modifyKarma', ['term' => $canonicalTerm, 'karma' => $karma]);
     })->then([$this->messenger, 'rpc'])->then(function ($payload) use($event, $queue, $action, $term) {
         $this->logDebug('payload: ' . var_export($payload, true));
         $queue->ircPrivmsg($event->getSource(), $this->getUserMessage('karma' . $action, $term));
         return $payload['karma'];
     });
 }