public void GivenMap_WhenShootingWeaponAtCoordinatesOutsideOfMap_ThrowsException()
        {
            const int width       = 5;
            const int height      = 5;
            var       map         = new PlayerMap(width, height, this.player);
            var       coordinate  = new Point(-1, -1);
            var       otherPlayer = new BattleshipPlayer("OtherPlayer", 'A', PlayerType.One);
            var       weapon      = new WeaponStub(otherPlayer);

            Assert.Throws <ArgumentException>(() => map.Shoot(coordinate, weapon));
        }
        public void GivenMap_WhenShootingWeaponAtCoordinatesInMap_CallsShootOnWeapon()
        {
            const int width       = 5;
            const int height      = 5;
            var       map         = new PlayerMap(width, height, this.player);
            var       coordinate  = new Point(width / 2, height / 2);
            var       otherPlayer = new BattleshipPlayer("OtherPlayer", 'A', PlayerType.One);
            var       weapon      = new WeaponStub(otherPlayer);

            map.Shoot(coordinate, weapon);

            Assert.True(weapon.ShootCalled);
            Assert.NotNull(weapon.Target);
        }