/** * @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.'); } }
/** * @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.'); } }