public void NewListReurnStringEmpty() { //Arrange List <string> stringList = new List <string>(); //Act var results = ListStringToCSVString.ListToString(stringList); //Assert Assert.AreEqual(results, ""); }
public void ListWithOneItemReurnStringEmpty() { //Arrange List <string> stringList = new List <string>(); stringList.Add("A"); //Act var results = ListStringToCSVString.ListToString(stringList); //Assert Assert.AreEqual(results, "A"); }
public void ListWithThreeItemsOutOfOrderReurnStringEmpty() { //Arrange List <string> stringList = new List <string>(); stringList.Add("C"); stringList.Add("A"); stringList.Add("B"); //Act var results = ListStringToCSVString.ListToString(stringList); //Assert Assert.AreEqual(results, "A, B and C"); }
/// <summary> /// If the tile a player is one is gone, they have to swim to the nearest tile /// If there is no nearby tile, that isnt normal or flooded, they lose /// </summary> /// <param name="IslandBoard"> The island board</param> /// <param name="WaterLevel">Dont care in this canLose</param> /// <returns></returns> public ValidationResults IsValid(List <IslandTile> IslandBoard, int WaterLevel) { foreach (var tilePlayerIsOn in IslandBoard.Where(x => x.PlayersOnTile.Any())) { if (TileGone(tilePlayerIsOn)) { ThisTilelIsValid = false; WorkOutIfThereIsAnEscape(IslandBoard, (tilePlayerIsOn.RowNumber - 1), (tilePlayerIsOn.ColumnNumber - 1)); WorkOutIfThereIsAnEscape(IslandBoard, (tilePlayerIsOn.RowNumber - 1), tilePlayerIsOn.ColumnNumber); WorkOutIfThereIsAnEscape(IslandBoard, (tilePlayerIsOn.RowNumber - 1), (tilePlayerIsOn.ColumnNumber + 1)); WorkOutIfThereIsAnEscape(IslandBoard, tilePlayerIsOn.RowNumber, (tilePlayerIsOn.ColumnNumber - 1)); WorkOutIfThereIsAnEscape(IslandBoard, tilePlayerIsOn.RowNumber, (tilePlayerIsOn.ColumnNumber + 1)); WorkOutIfThereIsAnEscape(IslandBoard, (tilePlayerIsOn.RowNumber + 1), (tilePlayerIsOn.ColumnNumber - 1)); WorkOutIfThereIsAnEscape(IslandBoard, (tilePlayerIsOn.RowNumber + 1), tilePlayerIsOn.ColumnNumber); WorkOutIfThereIsAnEscape(IslandBoard, (tilePlayerIsOn.RowNumber + 1), (tilePlayerIsOn.ColumnNumber + 1)); if (!ThisTilelIsValid) { foreach (var player in tilePlayerIsOn.PlayersOnTile) { DrownedPlayerNames.Add(player.Name); } } } } if (DrownedPlayerNames.Any()) { return(new ValidationResults() { IsValid = false, ErrorMessage = String.Format(CanLoseConstants.PLAYER_HAS_GONE, ListStringToCSVString.ListToString(DrownedPlayerNames)) }); } return(new ValidationResults() { IsValid = true }); }
/// <summary> /// There is two treasure tile for each treasure /// If both are gone the game is over. /// </summary> /// <param name="IslandBoard">All the tiles in te board</param> /// <param name="WaterLevel"></param> /// <returns></returns> public ValidationResults IsValid(List <IslandTile> IslandBoard, int WaterLevel) { AreBothTreasuresGone(IslandBoard, CardConstants.OCEANS_CHALICE_NAME, TreasureStatue.OceansChalice); AreBothTreasuresGone(IslandBoard, CardConstants.CRYSTAL_OF_FIRE_NAME, TreasureStatue.CrystalOfFire); AreBothTreasuresGone(IslandBoard, CardConstants.STATUE_OF_THE_WIND_NAME, TreasureStatue.StatueOfTheWind); AreBothTreasuresGone(IslandBoard, CardConstants.EARTH_STONE_NAME, TreasureStatue.EarthStone); if (goneTileNames.Any()) { return(new ValidationResults() { IsValid = false, ErrorMessage = String.Format(CanLoseConstants.TREASURE_GONE, ListStringToCSVString.ListToString(goneTileNames)) }); } return(new ValidationResults() { IsValid = true }); }