public void ItIsCreatedWithItsUnitsAndAName()
        {
            var unit = Substitute.For<Unit>();

            var player = new HumanPlayer("PlayerOne", new Unit[] {unit});

            Assert.IsTrue(player.Owns(unit));
            Assert.AreEqual("PlayerOne", player.Name);
        }
        public void ItAllowsYouToSetTheWeapon()
        {
            var unit = Substitute.For<Unit>();

            var player = new HumanPlayer("", new Unit[] {unit});
            player.SetWeapon(unit);

            Assert.AreEqual(unit, player.Weapon());
        }
        public void ItAllowsAddingAUnit()
        {
            var unit = Substitute.For<Unit>();

            var player = new HumanPlayer("");

            player.AddUnit(unit);

            Assert.IsTrue (player.Owns(unit));
        }
        public void ItTellsAllItsUnitsToStopWaiting()
        {
            var unit = Substitute.For<Unit>();
            var unitTwo = Substitute.For<Unit>();

            var player = new HumanPlayer("", new Unit[] {unit, unitTwo});
            player.StopWaitingForCommand();

            unit.Received().NotReadyForCommand();
            unitTwo.Received().NotReadyForCommand();
        }
        public void ItsReturnsItsNumberOfLivingUnits()
        {
            var unit = Substitute.For<Unit>();
            var unitTwo = Substitute.For<Unit>();
            unit.Alive().Returns(true);
            unitTwo.Alive().Returns(true);

            var player = new HumanPlayer("", new Unit[] {unit, unitTwo});

            Assert.AreEqual(2, player.LivingUnits());
        }
        public void ItSkipsAnyDeadUnits()
        {
            var unit = Substitute.For<Unit>();
            var unitTwo = Substitute.For<Unit>();
            unit.Alive().Returns(true);
            unitTwo.Alive().Returns(false);

            var player = new HumanPlayer("", new Unit[] {unit, unitTwo});

            Assert.AreEqual(1, player.LivingUnits());
        }
        public void ItTellsAllItsUnitsToWaitForACommand()
        {
            var unit = Substitute.For<Unit>();
            var unitTwo = Substitute.For<Unit>();

            var player = new HumanPlayer("", new Unit[] {unit, unitTwo});
            player.WaitForCommand();

            unit.Received().PickMe();
            unitTwo.Received().PickMe();
        }