public void DoDamage() { Damage evenDamage = new Damage(DamageType.Chaos, 20, 0); Damage unevenDamage = new Damage(DamageType.Chaos, 25, 0); Damage moreThanEnoughDamage = new Damage(DamageType.Chaos, 111, 0); //Test health with an armor mock Health armoredHealth = new Health(100, new KillableMock(), new ArmorMock()); armoredHealth.DoDamage(evenDamage); Assert.AreEqual<int>(100 - 10, armoredHealth.Amount); armoredHealth.DoDamage(unevenDamage); Assert.AreEqual<int>(100 - 10 - 12, armoredHealth.Amount); //Test health with no armor Health nullArmorHealth = new Health(100, new KillableMock(), null); nullArmorHealth.DoDamage(evenDamage); Assert.AreEqual<int>(100 - 20, nullArmorHealth.Amount); nullArmorHealth.DoDamage(unevenDamage); Assert.AreEqual<int>(100 - 20 - 25, nullArmorHealth.Amount); //Test health with no armor and try to do more damage than possible, //check if Health is negative nullArmorHealth.DoDamage(moreThanEnoughDamage); Assert.AreEqual<int>(0, nullArmorHealth.Amount); }
public void Kill() { KillableMock killableMock = new KillableMock(); Health health = new Health(100, killableMock, null); health.DoDamage(new Damage(DamageType.Chaos, health.Amount, 0)); Assert.IsFalse(killableMock.alive); }