Feature Update DebugDatabase and add Unit Tests

MCroft

Developer
Staff member
What I meant to say is that there are known failures. For example, for modifiers that only apply in a particular zone. Or effects that give random stat adjustments.

Presumably the solution would be to code the DebugDatabase functions to Do the RIght Thing for those. Somehow.
I have been digging into DebugDatabase and it's got some interesting functions, some of which aren't exposed.

I'm looking making a DebugDatabaseTest.java file in Test/.../persistence and have it call all the methods on debugDatabase. Some update are easy (switch http:// to https://), but they may be masking other issues.

My checkPulverizationData test is failing because checkPulverizationData() fails. The anvil data it fetches from the internet has named html entities in the xml and the built-in xml parser rejects them (so does my browser; it's illegal behavior, but it's what the data is. There's a stackoverflow thead here on resolving it, but it might require JSoup, STaX, or converting the reading method to a stream and pre-processing for entity conversion. I'm open to suggestions or experience on best ways to handle that, especially if there's already an implementation elsewhere in the code that already does this.

As I work through the methods, I'll add them to this document. I'm trying to get the simple ones done first.

namestatenotes
checkItems()
itemDescriptionText()
cafeItemDescriptionText()
rawItemDescriptionText()
testRawItemDescriptionText()
testItemDescriptionText()
parseItemId()
parseName()passescheck both matches and non-matches
parsePrice()
parseAccess()
parseType()
typeToPrimary()
typeToSecondary()
parseLevel()
parseSize()
parseConsumableSize()
parsePower()
parseWeaponType()
parseReq()
parseFullness()
parseInebriety()
parseToxicity()
parseFamiliar()
parseItemEnchantments()
parseRestores()
testParseItemEnchantments()
testParseItemEnchantments1()
checkOutfits()
outfitDescriptionText()
readOutfitDescriptionText()
rawOutfitDescriptionText()
testOutfitDescriptionText()
parseOutfitEnchantments()
testParseOutfitEnchantments()
checkEffects()
parseEffectId()
parseImage()
parseEffectDescid()
effectDescriptionText()
readEffectDescriptionText()
parseEffectEnchantments()
testParseEffectEnchantments()
testParseEffectEnchantments1()
checkSkills()
parseSkillId()
parseSkillType()
parseSkillMPCost()
parseSkillEffectName()
parseSkillEffectId()
parseSkillEffectDuration()
skillDescriptionText()
readSkillDescriptionText()
parseSkillEnchantments()
testParseSkillEnchantments()
testParseSkillEnchantments1()
checkPlurals()
checkPowers()
checkShields()
testCheckShields()
checkPotions()
checkConsumables()
parseQuality()
checkFamiliarsInTerrarium()
checkFamiliarImages()
checkConsumptionData()
checkPulverizationData()failinghtml entities in xml (see above)
checkZapGroups()in progress
checkManuel()passesjust checks to see if there's a page for each letter of the alphabet
checkMeat()failsthousands of errors
 
Top