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)); }