예제 #1
0
        public void DainManaMethod_AppropriatelyAltersCurrentMana()
        {
            const int manaSpent = FighterMana - 1;
            var       ret       = _fighter.DrainMana(manaSpent);

            Assert.AreEqual(1, _fighter.CurrentMana);
            Assert.AreEqual(FighterMana, _fighter.MaxMana);

            Assert.AreEqual(manaSpent, ret);
        }
예제 #2
0
        public void DrainManaMethod_AppropriatelyRaisesEvents_ManaDrainIsLessThanCurrentMana()
        {
            _fighter.SetMana(10);
            _fighter.DrainMana(8);

            var logs = _logger.Logs;

            Assert.AreEqual(1, logs.Count);
            Assert.AreEqual(EventType.ManaLost, logs[0].Type);
            Assert.AreEqual(_fighter, logs[0].Sender);
            var e = logs[0].E as ManaLostEventArgs;

            Assert.That(e, Is.Not.Null);
            if (e != null)
            {
                Assert.AreEqual(8, e.ManaSpent);
            }
        }