Resolved crash when mods make 2 techs require each other

This commit is contained in:
Yair Morgenstern
2022-10-13 22:55:12 +03:00
parent f3b4db9d64
commit f0ad7581bc
3 changed files with 35 additions and 1 deletions

View File

@ -0,0 +1,26 @@
package com.unciv.uniques
import com.unciv.models.ruleset.RulesetCache
import com.unciv.testing.GdxTestRunner
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(GdxTestRunner::class)
class UniqueErrorTests {
@Test
fun testCodependantTechs() {
RulesetCache.loadRulesets()
val ruleset = RulesetCache.getVanillaRuleset()
// Create a prerequisite loop
val techWithPrerequisites = ruleset.technologies.values.first { it.prerequisites.isNotEmpty() }
val prereq = ruleset.technologies[techWithPrerequisites.prerequisites.first()]!!
prereq.prerequisites.add(techWithPrerequisites.name)
ruleset.modOptions.isBaseRuleset = true
// Check mod links and ensure we don't get a crash, instead we get errors
val errors = ruleset.checkModLinks(false)
assert(errors.isNotOK())
}
}