public void DisplaySaveKeys_CompareWithConsoleOuput_Equal() { using (StringWriter sw = new StringWriter()) { Console.SetOut(sw); sut.DisplaySaveKeys(); string expected = string.Format("\nSave Dices. Dice_1 = [1], Dice_2 = [2], Dice_3 = [3], Dice_4 = [4]\n Dice_5 = [5], Dice_6 = [6], DONE = [7]\n\r\n"); Assert.Equal(expected, sw.ToString()); } }
private async Task Save(IPlayer player, bool a_noTest, model.task.delay.IAsyncDelay a_asyncDelay) { List <model.Dice> diceList = player.GetHand(); List <model.Dice> tempDiceList = new List <model.Dice>(); List <model.Dice> dicesToBeSavedList = new List <model.Dice>(); int dicesInList = 6; for (int i = 0; i < dicesInList; i++) { m_IView.DisplaySaveKeys(); model.Hand.Dices input = m_IView.GetDiceToSave(); if (input == model.Hand.Dices.Done) { break; } int index = diceList.FindIndex(d => d.Dicenumber == input); if (index == -1) { m_IView.DisplayCannotSaveDiceTwice(); if (a_noTest) { i--; // Enables endless loop and player can only exit through option "DONE". } } else { model.Dice diceToSave = diceList[index]; tempDiceList.Add(diceToSave); diceList.RemoveAt(index); } } foreach (model.Dice d in tempDiceList) { dicesToBeSavedList.Add(d); } for (int i = 0; i < dicesToBeSavedList.Count; i++) { player.Save(dicesToBeSavedList[i]); } await RollRemainingDicesAfterSave(player, a_asyncDelay); }