private void RemoveAllPlayers(PlayPlaces places)
 {
     while (places.Players.Count > 0)
     {
         places.RemovePlayer(places.Players.Last().Player);
     }
 }
 private void AddPlayers(PlayPlaces places, int count)
 {
     for (int i = 0; i < count; i++)
     {
         var player = new Player(Guid.NewGuid(), i.ToString());
         places.PlantPlayer(player);
     }
 }
        private void CheckPlaceNumbers(PlayPlaces places)
        {
            var placeNumber = 1;

            foreach (var player in places.Players)
            {
                Assert.Equal(placeNumber, player.GameTablePlaceNumber);
                placeNumber++;
            }
        }
        private void PlaceNumbersTestInternal(PlayPlaces places, int maxPlaces)
        {
            AddPlayers(places, maxPlaces);
            CheckPlaceNumbers(places);
            var player = places.Players.First().Player;

            places.RemovePlayer(player);
            CheckPlaceNumbers(places);
            places.PlantPlayer(player);
            places.RemovePlayer(GetMiddlePlayer(places));
            CheckPlaceNumbers(places);
        }
        private Player GetMiddlePlayer(PlayPlaces places)
        {
            var isFirst = true;

            foreach (var player in places.Players)
            {
                if (!isFirst)
                {
                    return(player.Player);
                }

                isFirst = false;
            }

            throw new Exception("Что-то не так");
        }
        private void AddAndRemovePlayersTestInternal(PlayPlaces places, int maxPlaces)
        {
            AddPlayers(places, maxPlaces);
            Assert.Equal(maxPlaces, places.Players.Count);
            Assert.True(places.IsFull);
            Assert.Throws <TrueFalseGameException>(() => { places.PlantPlayer(new Player(Guid.NewGuid(), "Test")); });
            var player = places.Players.Last().Player;

            Assert.Throws <TrueFalseGameException>(() => { places.PlantPlayer(player); });
            places.RemovePlayer(player);
            Assert.Equal(maxPlaces - 1, places.Players.Count);
            Assert.Null(places.Players.FirstOrDefault(p => p.Player.Id == player.Id));
            player = places.Players.Last().Player;
            Assert.Throws <TrueFalseGameException>(() => { places.PlantPlayer(player); });
            RemoveAllPlayers(places);
            Assert.Equal(0, places.Players.Count);
            Assert.Throws <TrueFalseGameException>(() => { places.RemovePlayer(player); });
        }
 private void CreatePlayPlacesTestInternal(PlayPlaces places)
 {
     Assert.Empty(places.Players);
     Assert.False(places.IsFull);
 }