예제 #1
0
        public void GetOfType_FreshList_ReturnNull()
        {
            var owner      = NewFakeLiving();
            var effectList = new GameEffectList(owner);

            IGameEffect actual = effectList.GetOfType <GameSpellEffect>();

            Assert.AreEqual(null, actual);
        }
예제 #2
0
        public void Remove_EffectFromFreshList_ReturnFalse()
        {
            var owner      = Substitute.For <GameLiving>();
            var effectList = new GameEffectList(owner);
            var effect     = Substitute.For <IGameEffect>();

            bool actual = effectList.Remove(effect);

            Assert.AreEqual(false, actual);
        }
예제 #3
0
        //RestoreAllEffects calls Database

        //SaveAllEffects calls Database

        private static GameEffectList createEffectListWithValidOwner()
        {
            var owner = Substitute.For <GameLiving>();

            owner.IsAlive.Returns(true);
            owner.ObjectState = GameObject.eObjectState.Active;
            var effectList = new GameEffectList(owner);

            return(effectList);
        }
예제 #4
0
        public void CommitChanges_NoOpenChanges_NPCupdatePetWindowIsCalled()
        {
            var brain      = Substitute.For <ABrain, IControlledBrain>();
            var owner      = new GameNPC(brain);
            var effectList = new GameEffectList(owner);

            effectList.OnEffectsChanged(null);

            (owner.Brain as IControlledBrain).Received().UpdatePetWindow();
        }
예제 #5
0
        public void CancelAll_EffectContainsOneEffect_EffectIsCancelled()
        {
            GameEffectList effectList = NewGameEffectList();
            var            effect     = NewFakeEffect();

            effectList.Add(effect);

            effectList.CancelAll();

            Assert.IsTrue(effect.receivedCancel);
        }
예제 #6
0
        public void OnEffectsChanged_OpenChanges_NPCupdatePetWindowIsNotCalled()
        {
            var brain      = Substitute.For <ABrain, IControlledBrain>();
            var owner      = new GameNPC(brain);
            var effectList = new GameEffectList(owner);

            effectList.BeginChanges();
            effectList.OnEffectsChanged(null);

            (owner.Brain as IControlledBrain).DidNotReceive().UpdatePetWindow();
        }
예제 #7
0
        public void CancelAll_EffectContainsOneEffect_EffectIsCancelled()
        {
            GameEffectList effectList = createEffectListWithValidOwner();
            var            effect     = Substitute.For <IGameEffect>();

            effectList.Add(effect);

            effectList.CancelAll();

            effect.Received().Cancel(false);
        }
예제 #8
0
        public void GetOfType_ListWithOneItemOfGivenType_ReturnListWithThatOneItem()
        {
            GameEffectList effectList = NewGameEffectList();
            var            effect     = new GameSpellEffect(null, 0, 0);

            effectList.Add(effect);

            IGameEffect actual = effectList.GetOfType <GameSpellEffect>();

            Assert.IsNotNull(actual);
        }
예제 #9
0
        public void Remove_EffectFromListContainingDifferentEffect_ReturnFalse()
        {
            GameEffectList effectList      = NewGameEffectList();
            var            effect          = NewFakeEffect();
            var            differentEffect = NewFakeEffect();

            effectList.Add(differentEffect);

            bool actual = effectList.Remove(effect);

            Assert.AreEqual(false, actual);
        }
예제 #10
0
        public void Remove_EffectFromListContainingDifferentEffect_ReturnFalse()
        {
            GameEffectList effectList      = createEffectListWithValidOwner();
            var            effect          = Substitute.For <IGameEffect>();
            var            differentEffect = Substitute.For <IGameEffect>();

            effectList.Add(differentEffect);

            bool actual = effectList.Remove(effect);

            Assert.AreEqual(false, actual);
        }
예제 #11
0
        public void Add_OwnerIsNotAlive_ReturnFalse()
        {
            var owner = Substitute.For <GameLiving>();

            owner.IsAlive.Returns(false);
            var effectList = new GameEffectList(owner);
            var effect     = Substitute.For <IGameEffect>();

            bool actual = effectList.Add(effect);

            Assert.AreEqual(false, actual);
        }
예제 #12
0
        public void Remove_EffectFromListContainingSameEffect_ListCountIsZero()
        {
            GameEffectList effectList = createEffectListWithValidOwner();
            var            effect     = Substitute.For <IGameEffect>();

            effectList.Add(effect);

            effectList.Remove(effect);

            int actual = effectList.Count;

            Assert.AreEqual(0, actual);
        }
예제 #13
0
        public void Remove_EffectFromListContainingSameEffect_ListCountIsZero()
        {
            GameEffectList effectList = NewGameEffectList();
            var            effect     = NewFakeEffect();

            effectList.Add(effect);

            effectList.Remove(effect);

            int actual = effectList.Count;

            Assert.AreEqual(0, actual);
        }
예제 #14
0
        public void Add_OwnerIsActiveObjectAndAlive_ReturnTrue()
        {
            var owner = Substitute.For <GameLiving>();

            owner.IsAlive.Returns(true);
            owner.ObjectState = GameObject.eObjectState.Active;
            var effectList = new GameEffectList(owner);
            var effect     = Substitute.For <IGameEffect>();

            bool actual = effectList.Add(effect);

            Assert.AreEqual(true, actual);
        }
예제 #15
0
        public void Add_ToFreshListAndOwnerIsNotAlive_ListCountRemainsZero()
        {
            var owner = Substitute.For <GameLiving>();

            owner.IsAlive.Returns(false);
            var effectList = new GameEffectList(owner);
            var effect     = Substitute.For <IGameEffect>();

            effectList.Add(effect);

            int actual = effectList.Count;

            Assert.AreEqual(0, actual);
        }
예제 #16
0
        public void Remove_EffectFromListContainingSameEffect_ReturnTrue()
        {
            var owner = Substitute.For <GameLiving>();

            owner.IsAlive.Returns(true);
            owner.ObjectState = GameObject.eObjectState.Active;
            var effectList = new GameEffectList(owner);
            var effect     = Substitute.For <IGameEffect>();

            effectList.Add(effect);

            bool actual = effectList.Remove(effect);

            Assert.AreEqual(true, actual);
        }
예제 #17
0
        public void Add_ToFreshListAndOwnerIsAliveAndActiveObject_ListCountIsOne()
        {
            var owner = Substitute.For <GameLiving>();

            owner.IsAlive.Returns(true);
            owner.ObjectState = GameObject.eObjectState.Active;
            var effectList = new GameEffectList(owner);
            var effect     = Substitute.For <IGameEffect>();

            effectList.Add(effect);

            int actual = effectList.Count;

            Assert.AreEqual(1, actual);
        }