예제 #1
0
        public void LeaveFaction_WhenFactionExists_RemoveFactionFromListAndKeepRemaining()
        {
            FakeCharacter sut      = new FakeCharacter();
            Faction       faction  = new Faction(100);
            Faction       faction2 = new Faction(999);

            sut.JoinFaction(faction);
            sut.JoinFaction(faction2);
            sut.LeaveFaction(faction);

            Assert.Equal(1, sut.Factions.Count);
        }
예제 #2
0
        public void LeaveFaction_WhenFactionNotExists_ReturnFactionList()
        {
            FakeCharacter sut      = new FakeCharacter();
            Faction       faction  = new Faction(100);
            Faction       faction2 = new Faction(999);
            Faction       faction3 = new Faction(1738);

            sut.JoinFaction(faction);
            sut.JoinFaction(faction2);
            sut.LeaveFaction(faction3);

            Assert.Equal(2, sut.Factions.Count);
        }
예제 #3
0
        public void JoinFaction_WhenFactionIsNotNull_ReturnListCountAs1()
        {
            FakeCharacter sut     = new FakeCharacter();
            Faction       faction = new Faction(100);

            sut.JoinFaction(faction);

            Assert.Single(sut.Factions);
        }
예제 #4
0
        public void LeaveFaction_WhenFactionExists_RemoveFactionFromList()
        {
            FakeCharacter sut     = new FakeCharacter();
            Faction       faction = new Faction(100);

            sut.JoinFaction(faction);
            sut.LeaveFaction(faction);

            Assert.Empty(sut.Factions);
        }
예제 #5
0
        public void Attack_WhenCharactersAreAllies_ReturnsUnalteredHealth()
        {
            Faction faction  = new Faction(1);
            Faction faction2 = new Faction(2);
            Faction faction3 = new Faction(3);

            FakeCharacter character = new FakeCharacter();

            character.JoinFaction(faction3);

            FakeCharacter character2 = new FakeCharacter();

            character2.JoinFaction(faction);
            character2.JoinFaction(faction2);
            character2.JoinFaction(faction3);

            AttackService sut = new AttackService();

            sut.Attack(100, character, character2);

            Assert.Equal(1000, character2.HealthPoints);
        }
예제 #6
0
        public void Heal_WhenCharactersArentAllies_ReturnsSubtractedHealth()
        {
            Faction faction  = new Faction(1);
            Faction faction2 = new Faction(2);

            FakeCharacter ally = new FakeCharacter();

            ally.JoinFaction(faction);

            FakeCharacter enemy = new FakeCharacter();

            enemy.SetDamage(100);
            enemy.JoinFaction(faction2);

            HealService sut = new HealService();

            sut.Heal(100, ally, enemy);

            Assert.Equal(900, enemy.HealthPoints);
        }
예제 #7
0
        public void Heal_WhenCharactersAreAllies_ReturnsAddedHealth()
        {
            Faction faction  = new Faction(1);
            Faction faction2 = new Faction(2);

            FakeCharacter ally = new FakeCharacter();

            ally.SetDamage(100);
            ally.JoinFaction(faction);

            FakeCharacter ally2 = new FakeCharacter();

            ally2.JoinFaction(faction);

            HealService sut = new HealService();

            sut.Heal(100, ally2, ally);

            Assert.Equal(1000, ally.HealthPoints);
        }
예제 #8
0
        public void JoinFaction_WhenFactionIsNull_ThrowsAnException()
        {
            FakeCharacter sut = new FakeCharacter();

            Assert.Throws <NullReferenceException>(() => sut.JoinFaction(null));
        }