public void NonPlayerCharacter_Die() { Mock <IMoneyToCoins> moneyToCoins = new Mock <IMoneyToCoins>(); GlobalReference.GlobalValues.MoneyToCoins = moneyToCoins.Object; Mock <IRoom> room = new Mock <IRoom>(); List <INonPlayerCharacter> npcList = new List <INonPlayerCharacter>(); List <IItem> itemsList = new List <IItem>(); Mock <IEngine> engine = new Mock <IEngine>(); Mock <IEvent> evnt = new Mock <IEvent>(); moneyToCoins.Setup(e => e.FormatedAsCoins(0)).Returns("0"); npcList.Add(npc); room.Setup(e => e.NonPlayerCharacters).Returns(npcList); room.Setup(e => e.Items).Returns(itemsList); npc.Room = room.Object; engine.Setup(e => e.Event).Returns(evnt.Object); GlobalReference.GlobalValues.Engine = engine.Object; npc.Die(); room.Verify(e => e.RemoveMobileObjectFromRoom(npc)); Assert.AreEqual(1, room.Object.Items.Count); evnt.Verify(e => e.OnDeath(npc)); }
public void NonPlayerCharacter_Die() { ICorpse corpse = npc.Die(attacker.Object); room.Verify(e => e.RemoveMobileObjectFromRoom(npc)); room.Verify(e => e.AddItemToRoom(It.Is <IItem>(f => f == corpse), 0)); evnt.Verify(e => e.OnDeath(npc)); Assert.AreSame(attacker.Object, corpse.Killer); }