public void UpdateGameStringUnitTest() { using UnitDataDocument dataDocument = _heroesDataDirectory.UnitData(new HeroesDataVersion(2, 47, 3, 76124), true, Localization.KOKR); Unit data = dataDocument.GetUnitById("AbathurEvolvedMonstrosity", false, false); Assert.AreEqual("some description", data.Description?.RawDescription); _heroesDataDirectory.UpdateGameString(data, new HeroesDataVersion(2, 48, 4, 77407), Localization.ENUS); Assert.AreEqual("unitDescription", data.Description?.RawDescription); }
public void GetUnitByIdTest(string id, bool abilities, bool subAbilities) { if (id is null) { Assert.ThrowsException <ArgumentNullException>(() => { _ = _unitDataDocument.GetUnitById(id !, abilities, subAbilities); }); return; } else if (id == "asdf") { Assert.ThrowsException <KeyNotFoundException>(() => { _ = _unitDataDocument.GetUnitById(id, abilities, subAbilities); }); return; } Unit unit = _unitDataDocument.GetUnitById(id, abilities, subAbilities); BasicAbathurEvolvedMonstrosityAsserts(unit); Assert.AreEqual(755, unit.Life.LifeMax); Assert.AreEqual(0.04, unit.Life.LifeScaling); Assert.AreEqual("Life", unit.Life.LifeType); Assert.AreEqual(5.4256, unit.Life.LifeRegenerationRate); Assert.AreEqual(0.04, unit.Life.LifeRegenerationRateScaling); Assert.AreEqual(755, unit.Shield.ShieldMax); Assert.AreEqual(0.04, unit.Shield.ShieldScaling); Assert.AreEqual("Shield", unit.Shield.ShieldType); Assert.AreEqual(5, unit.Shield.ShieldRegenerationDelay); Assert.AreEqual(5.245, unit.Shield.ShieldRegenerationRate); Assert.AreEqual(0.04, unit.Shield.ShieldRegenerationRateScaling); Assert.AreEqual(755, unit.Energy.EnergyMax); Assert.AreEqual("Ammo", unit.Energy.EnergyType); Assert.AreEqual(5.4256, unit.Energy.EnergyRegenerationRate); List <UnitArmor> unitArmorList = unit.Armor.ToList(); Assert.AreEqual("structure", unitArmorList[0].Type); Assert.AreEqual(30, unitArmorList[0].BasicArmor); Assert.AreEqual(20, unitArmorList[0].AbilityArmor); Assert.AreEqual(30, unitArmorList[0].SplashArmor); Assert.AreEqual("hero", unitArmorList[1].Type); Assert.AreEqual(10, unitArmorList[1].BasicArmor); Assert.AreEqual(0, unitArmorList[1].AbilityArmor); Assert.AreEqual(0, unitArmorList[1].SplashArmor); List <UnitWeapon> unitWeapons = unit.Weapons.ToList(); Assert.AreEqual("AllianceSuperCavalryWeapon", unitWeapons[0].WeaponNameId); Assert.AreEqual(5, unitWeapons[0].Range); Assert.AreEqual(3.9, unitWeapons[0].Period); Assert.AreEqual(454, unitWeapons[0].Damage); Assert.AreEqual(0.65, unitWeapons[0].DamageScaling); Assert.AreEqual(3.9, unitWeapons[0].Period); Assert.AreEqual("minion", unitWeapons[0].AttributeFactors.ToList()[0].Type); Assert.AreEqual(1.5, unitWeapons[0].AttributeFactors.ToList()[0].Value); Assert.AreEqual("AlteracBossWeaponParent", unitWeapons[1].WeaponNameId); Assert.AreEqual(4, unitWeapons[1].Range); Assert.AreEqual(40.1, unitWeapons[1].Period); Assert.AreEqual("summoned", unitWeapons[1].AttributeFactors.ToList()[1].Type); Assert.AreEqual(1.0, unitWeapons[1].AttributeFactors.ToList()[1].Value); if (abilities) { List <Ability> abilitiesList = unit.Abilities.ToList(); Assert.AreEqual(AbilityTiers.Basic, abilitiesList[0].Tier); Assert.AreEqual("AlteracBossWhirlwind", abilitiesList[0].AbilityTalentId?.ReferenceId); Assert.AreEqual("AlteracBossWhirlwind", abilitiesList[0].AbilityTalentId?.ButtonId); Assert.AreEqual("Whirlwind", abilitiesList[0].Name); Assert.AreEqual("storm_ui_icon_sonya_whirlwind.png", abilitiesList[0].IconFileName); Assert.AreEqual("Cooldown: 12 seconds", abilitiesList[0].Tooltip.Cooldown.CooldownTooltip?.RawDescription); Assert.AreEqual("Damage nearby enemies", abilitiesList[0].Tooltip.ShortTooltip?.RawDescription); Assert.AreEqual(AbilityTypes.Q, abilitiesList[0].AbilityTalentId.AbilityType); Assert.AreEqual(AbilityTiers.Hidden, abilitiesList[3].Tier); Assert.AreEqual("AlteracBossChargeApproach", abilitiesList[3].AbilityTalentId?.ReferenceId); Assert.AreEqual("AlteracBossCharge", abilitiesList[3].AbilityTalentId?.ButtonId); Assert.AreEqual("Charge", abilitiesList[3].Name); } if (subAbilities) { List <Ability> abilitiesList = unit.SubAbilities().ToList(); Assert.AreEqual(AbilityTiers.Interact, abilitiesList[0].Tier); Assert.AreEqual("WitchDoctorGargantuanStomp", abilitiesList[0].AbilityTalentId?.ReferenceId); Assert.AreEqual("WitchDoctorGargantuanStomp", abilitiesList[0].AbilityTalentId?.ButtonId); Assert.AreEqual("Gargantuan Stomp", abilitiesList[0].Name); Assert.AreEqual("AlteracBossWhirlwind", abilitiesList[0].ParentLink?.ReferenceId); Assert.AreEqual("AlteracBossWhirlwind", abilitiesList[0].ParentLink?.ButtonId); Assert.AreEqual(0.125, abilitiesList[0].Tooltip.Cooldown?.ToggleCooldown); Assert.AreEqual(AbilityTiers.MapMechanic, abilitiesList[1].Tier); Assert.AreEqual("VoidPrisonCancel", abilitiesList[1].AbilityTalentId?.ReferenceId); Assert.AreEqual("ZeratulVoidPrisonCancel", abilitiesList[1].AbilityTalentId?.ButtonId); Assert.AreEqual(AbilityTiers.MapMechanic, abilitiesList[2].Tier); Assert.AreEqual("MapMechanicAbilityInstant", abilitiesList[2].AbilityTalentId?.ReferenceId); Assert.AreEqual("MapMechanicAbility", abilitiesList[2].AbilityTalentId?.ButtonId); Assert.AreEqual(AbilityTiers.Hidden, abilitiesList[3].Tier); Assert.AreEqual("AlteracBossChargeApproach", abilitiesList[3].ParentLink?.ReferenceId); Assert.AreEqual("AlteracBossCharge", abilitiesList[3].ParentLink?.ButtonId); Assert.AreEqual(AbilityTypes.Hidden, abilitiesList[3].ParentLink?.AbilityType); Assert.AreEqual(true, abilitiesList[3].ParentLink?.IsPassive); Assert.AreEqual("AbathurAssumingDirectControlCancel", abilitiesList[3].AbilityTalentId?.ReferenceId); Assert.AreEqual("AbathurSymbioteCancel", abilitiesList[3].AbilityTalentId?.ButtonId); Assert.AreEqual(AbilityTypes.Heroic, abilitiesList[3].AbilityTalentId.AbilityType); } }