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; }