Example #1
0
 public function __construct($player_id_or_username)
 {
     $sql = new DBAccess();
     if (!is_numeric($player_id_or_username)) {
         $sel = "select player_id from players where uname = '" . $player_id_or_username . "' limit 1";
         $this->player_id = $sql->QueryItem($sel);
     } else {
         $this->player_id = $player_id_or_username;
     }
     $dao = new PlayerDAO($sql);
     $this->vo = $dao->get($this->player_id);
 }
Example #2
0
 public function __construct($player_id_or_username = null)
 {
     if (!empty($player_id_or_username)) {
         if (!is_numeric($player_id_or_username) && is_string($player_id_or_username)) {
             $sel = "SELECT player_id FROM players WHERE lower(uname) = lower(:uname) LIMIT 1";
             $this->player_id = query_item($sel, array(':uname' => array($player_id_or_username, PDO::PARAM_INT)));
         } else {
             $this->player_id = (int) $player_id_or_username;
         }
         $dao = new PlayerDAO();
         if (!($this->vo = $dao->get($this->player_id))) {
             $this->vo = new PlayerVO();
         }
     } else {
         $this->vo = new PlayerVO();
     }
 }
Example #3
0
function test_PlayerDAO()
{
    // in: player_id, out: vo with uname and player_id.
    $player_id_sel = "select player_id from players where uname = 'glassbox'";
    $db = new DBAccess();
    $player_id = $db->QueryItem($player_id_sel);
    $dao = new PlayerDAO($db);
    $player_vo = $dao->get($player_id);
    //var_dump($player_vo);
    assert(isset($player_vo));
    assert(isset($player_vo->uname));
    assert(isset($player_vo->player_id));
    // in: player_id, out: vo with same id.
    $player_id_sel = "select player_id from players where uname = 'glassbox'";
    $db = new DBAccess();
    $player_id = $db->QueryItem($player_id_sel);
    $dao = new PlayerDAO($db);
    $player_vo2 = $dao->get($player_id);
    assert($player_vo2->player_id == $player_id);
    // in: player_id, out: vo with same username.
    $player_id_sel = "select player_id from players where uname = 'glassbox'";
    $db = new DBAccess();
    $player_id = $db->QueryItem($player_id_sel);
    $dao = new PlayerDAO($db);
    $player_vo2 = $dao->get($player_id);
    assert($player_vo2->uname == 'glassbox');
    // in: player_id that doesn't exist, out: null
    $player_id = 999999;
    $dao = new PlayerDAO($db);
    $player_vo2 = $dao->get($player_id);
    assert($player_vo2 === null);
    // in: non-numeric player_id, out: false
    $player_id = 'not-a-player-id';
    $dao = new PlayerDAO($db);
    $player_vo2 = $dao->get($player_id);
    assert($player_vo2 === false);
    // in: player_vo, change the energy, save it. out: get that player, compare energy
    $player_id_sel = "select player_id from players where uname = 'glassbox'";
    $db = new DBAccess();
    $player_id = $db->QueryItem($player_id_sel);
    $dao = new PlayerDAO($db);
    $player_vo_original = $dao->get($player_id);
    assert($player_vo_original->player_id == $player_id);
    $orig_energy = $player_vo_original->energy;
    $player_vo_original->energy = $player_vo_original->energy + 2;
    $dao->save($player_vo_original);
    $player_vo_after = $dao->get($player_vo_original->player_id);
    assert($orig_energy == $player_vo_after->energy - 2);
    // in: player_vo, change the energy, save it. out: get that player, compare energy
    $player_id_sel = "select player_id from players where uname = 'glassbox'";
    $db = new DBAccess();
    $player_id = $db->QueryItem($player_id_sel);
    $dao = new PlayerDAO($db);
    $player_vo_original = $dao->get($player_id);
    $starting_clan = $player_vo_original->clan_long_name;
    $player_vo_original->clan_long_name = 'TestClanChange';
    $dao->save($player_vo_original);
    $changed_vo = $dao->get($player_vo_original->player_id);
    $changed_clan = $changed_vo->clan_long_name;
    $changed_vo->clan_long_name = $starting_clan;
    $dao->save($changed_vo);
    assert('TestClanChange' == $changed_clan);
    // in: a player_vo to change and save then delete, out: successful deletion
    $player_id_sel = "select player_id from players where uname = 'glassbox'";
    $db = new DBAccess();
    $player_id = $db->QueryItem($player_id_sel);
    assert($player_id);
    $dao = new PlayerDAO($db);
    $player_vo = $dao->get($player_id);
    assert(isset($player_vo->player_id));
    $player_vo->player_id = null;
    $player_vo->uname = "TestUserName2";
    $player_vo->pname = "dummypassword";
    $dao->save($player_vo);
    $player_id_sel = "select player_id from players where uname = 'TestUserName2'";
    $db = new DBAccess();
    $player_id = $db->QueryItem($player_id_sel);
    assert($player_id);
    $dao = new PlayerDAO($db);
    $player_vo = $dao->get($player_id);
    assert(isset($player_vo->player_id));
    $deleted = $dao->delete($player_vo);
    // Need a player_id to delete.
    assert($deleted == true);
    $player_id_sel = "select player_id from players where uname = 'TestUserName2'";
    $deleted_id = $db->QueryItem($player_id_sel);
    assert($deleted_id == null);
    // in: a new player_vo to save n delete, out: no such new vo.
    $player_id_sel = "select player_id from players where uname = 'glassbox'";
    $db = new DBAccess();
    $player_id = $db->QueryItem($player_id_sel);
    assert($player_id);
    $dao = new PlayerDAO($db);
    $player_vo1 = $dao->get($player_id);
    assert(isset($player_vo1->player_id));
    $player_vo1->player_id = null;
    $username = "******" . rand();
    $player_vo1->uname = $username;
    $player_vo1->pname = "dummypassword";
    $dao->save($player_vo1);
    assert($player_vo1->player_id != 0);
    //var_dump($player_vo1->player_id, $player_vo1->uname);
    $saved_vo1 = $dao->get($player_vo1->player_id);
    $player_from_uname_sel = "select player_id from players where uname = '" . $username . "'";
    $player_id_from_uname = $db->QueryItem($player_from_uname_sel);
    assert($player_id_from_uname != false);
    //var_dump($player_id_from_uname, $username);
    $player_uname_from_id_sel = "select uname from players where player_id = '" . $player_vo1->player_id . "'";
    $player_uname = $db->QueryItem($player_uname_from_id_sel);
    //var_dump($saved_vo1->uname); // for some reason the vo is not coming back here.
    assert(isset($saved_vo1->player_id));
    assert($saved_vo1->uname == $username);
    assert($player_id_from_uname == $saved_vo1->player_id);
    $success = $dao->delete($saved_vo1);
    assert($success == true);
}