/**
  * @dataProvider messagesProvider
  */
 public function testOnTimer($messages, $active_users)
 {
     $dao = $this->getMock('longPollDao');
     //DAO's get_message is called once
     $dao->expects($this->once())->method('get_messages')->will($this->returnValue($messages));
     //DAO's set_active_users is callid once with the expected active users
     $dao->expects($this->once())->method('set_active_users')->with($this->equalTo($active_users));
     $server = new longPollServer('longPollServerClient');
     $server->dao = $dao;
     //For the server, active users are those for which get_messages has been
     //called since last on_timer call.
     foreach ($active_users as $uid) {
         $server->get_messages($uid);
     }
     $server->on_timer();
     foreach ($messages as $uid => $m) {
         $this->assertEquals(isset($m) ? $m : array(), $server->get_messages($uid), 'Messages from DAO are returned by longPollServer::get_messages after longPollServer::on_timer.');
         $server->flush_messages($uid);
         $this->assertEquals(array(), $server->get_messages($uid), 'Messages are not returned after longPollServer::flush_messages.');
     }
 }
예제 #2
0
 /**
  * @dataProvider messagesProvider
  */
 public function testFlushMessages($messages)
 {
     $active_users = array_keys($messages);
     //DAO's get_message is called once
     $this->dao->expects($this->exactly(2))->method('get_messages')->will($this->returnValue($messages));
     //DAO's set_active_users is callid once with the expected active users
     $this->dao->expects($this->exactly(2))->method('set_active_users')->with($this->equalTo(array_values($active_users)));
     //For the server, active users are those for which get_messages has been
     //called since last on_timer call.
     foreach ($active_users as $uid) {
         $this->object->get_messages($uid);
     }
     $this->object->on_timer();
     foreach ($messages as $uid => $m) {
         $this->object->flush_messages($uid);
         $this->assertEquals(array(), $this->object->get_messages($uid), 'Messages are not returned after longPollServer::flush_messages.');
     }
     $this->object->on_timer();
     foreach ($messages as $uid => $m) {
         $this->assertEquals(isset($m) ? $m : array(), $this->object->get_messages($uid), 'Only messages from DAO are returned by longPollServer::get_messages after longPollServer::flush_messages and longPollServer::on_timer.');
         $this->object->flush_messages($uid);
         $this->assertEquals(array(), $this->object->get_messages($uid), 'Messages are not returned after longPollServer::flush_messages.');
     }
 }