Пример #1
0
 public function test_get_all()
 {
     $x = new Skill();
     $x->characterId = $this->char->characterId;
     $a = new Ability();
     $a->characterId = $this->char->characterId;
     $a->create_defaults($this->dbObj);
     $cache = $a->get_all($this->dbObj, $this->char->id);
     $byAbility = array('str' => array(), 'con' => array(), 'dex' => array(), 'int' => array(), 'wis' => array(), 'cha' => array());
     $this->assertEquals(6, count($byAbility));
     foreach ($this->autoSkills as $k => $theData) {
         $name = $theData[0];
         $ability = $theData[1];
         $insertData = array('character_id' => $x->characterId, 'ability_id' => $cache[$ability]['ability_id'], 'skill_name' => $name);
         $id = $x->create($this->dbObj, $insertData);
         $this->assertTrue(isset($byAbility[$ability]));
         $this->assertFalse(isset($byAbility[$ability][$id]));
         $byAbility[$ability][$id] = $insertData;
     }
     $this->assertEquals(6, count($byAbility));
     foreach ($byAbility as $ability => $data) {
         $aId = $cache[$ability]['ability_id'];
         $testData = $x->get_all($this->dbObj, $x->characterId, $aId);
         $this->assertTrue(is_array($testData));
         foreach ($testData as $k => $v) {
             $this->assertTrue(is_array($v));
             $this->assertTrue(isset($v['ability_id']));
             $this->assertEquals($aId, $v['ability_id']);
         }
         $this->assertEquals(count($data), count($testData), "getting skills based on ability id (" . $ability . "/" . $aId . ") failed...");
     }
 }
 public function handle_new_record($type, $name, array $extraData = null)
 {
     if (is_null($extraData) || !is_array($extraData)) {
         $extraData = array();
     }
     $extraData['character_id'] = $this->characterId;
     $log = new cs_webdblogger($this->dbObj, "Character");
     switch ($type) {
         case Weapon::sheetIdPrefix:
             $x = new Weapon();
             $extraData['weapon_name'] = $name;
             $result = $x->create($this->dbObj, $extraData);
             break;
         case Armor::sheetIdPrefix:
             $x = new Armor();
             $extraData['armor_name'] = $name;
             $result = $x->create($this->dbObj, $extraData);
             break;
         case SpecialAbility::sheetIdPrefix:
             $x = new SpecialAbility();
             $extraData['special_ability_name'] = $name;
             $result = $x->create($this->dbObj, $extraData);
             break;
         case Gear::sheetIdPrefix:
             $x = new Gear();
             $extraData['gear_name'] = $name;
             $result = $x->create($this->dbObj, $extraData);
             break;
         case Skill::sheetIdPrefix:
             $x = new Skill();
             $extraData['skill_name'] = $name;
             $result = $x->create($this->dbObj, $extraData);
             break;
         default:
             $details = __METHOD__ . ": invalid type (" . $type . ")";
             $log->log_by_class($details, "exception in code");
             throw new InvalidArgumentException($details);
     }
     $details = "New record, type=(" . $type . "), name=(" . $name . ")";
     if (is_array($details) && count($extraData) > 0) {
         $details .= implode(", ", $extraData);
     }
     $log->log_by_class($details, "create");
     return $result;
 }