public void DamageEqualsAndHashCode() { Damage damage = new Damage(DamageType.Chaos, 10, 2); //Using IsTrue/IsFalse to cover all paths (aren't covered, when using Equals) //Equal tests Assert.IsTrue(damage.Equals(damage)); Assert.AreEqual(damage.GetHashCode(), damage.GetHashCode()); object equal = new Damage(DamageType.Chaos, 10, 2); Assert.IsTrue(damage.Equals(equal)); Assert.AreEqual(equal.GetHashCode(), damage.GetHashCode()); //Not equal tests Assert.IsFalse(damage.Equals(null)); object notEqual = new object(); Assert.IsFalse(damage.Equals(notEqual)); Assert.AreNotEqual(notEqual.GetHashCode(), damage.GetHashCode()); notEqual = new Damage(DamageType.Magic, 10, 2); Assert.IsFalse(damage.Equals(notEqual)); Assert.AreNotEqual(notEqual.GetHashCode(), damage.GetHashCode()); notEqual = new Damage(DamageType.Chaos, 5, 2); Assert.IsFalse(damage.Equals(notEqual)); Assert.AreNotEqual(notEqual.GetHashCode(), damage.GetHashCode()); notEqual = new Damage(DamageType.Chaos, 10, 0); Assert.IsFalse(damage.Equals(notEqual)); Assert.AreNotEqual(notEqual.GetHashCode(), damage.GetHashCode()); }
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 DamageCreation() { Damage damage = new Damage(DamageType.Pierce, 15, 0); Assert.AreEqual<DamageType>(DamageType.Pierce, damage.Type); Assert.AreEqual<int>(15, damage.Amount); Assert.AreEqual<double>(0, damage.Area); try { damage = new Damage(DamageType.Pierce, -10, 0); Assert.Fail("Damages with a negative amount aren't allowed"); } catch (ArgumentException) { //Do nothing here } try { damage = new Damage(DamageType.Pierce, 10, -10); Assert.Fail("Damages with a negative area aren't allowed"); } catch (ArgumentException) { //Do nothing here } }
public override int RecalculateDamage(Damage damage) { return (int) (damage.Amount * 0.5); }
public void SetUp() { //Create the damages int amount = 100; Pierce = new Damage(DamageType.Pierce, amount, 0); Siege = new Damage(DamageType.Siege, amount, 0); Magic = new Damage(DamageType.Magic, amount, 0); Chaos = new Damage(DamageType.Chaos, amount, 0); }