示例#1
0
        public void ResolveRound_1DefenderHitsAndOneTankIsLowestRankingAttacker_AttackingTankRemoved()
        {
            _hitGenerator.GenerateHits(Arg.Any<Dictionary<CombatUnitType, int>>(), Arg.Any<Func<CombatUnitType, int>>())
                .Returns(0, 1);

            _attackers = new Dictionary<CombatUnitType, int>() { { TestUtils.CreateInfantryType(), 2 }, { TestUtils.CreateTankType(), 1 } };
            _attackerCasualtyOrder = new List<ValidCombatUnitTypes> { ValidCombatUnitTypes.Tank, ValidCombatUnitTypes.Infantry };

            _battle = new Battle(_attackers, _defenders, _attackerCasualtyOrder, _defenderCasualtyOrder, _hitGenerator);

            _battle.ResolveRound();

            Assert.AreEqual(0, _battle.SurvivingAttackers.Count(u => u.Key.Type == ValidCombatUnitTypes.Tank));
            Assert.AreEqual(2, _battle.SurvivingAttackers.Where(u => u.Key.Type == ValidCombatUnitTypes.Infantry).Sum(u => u.Value));
        }