public static void ConversationRunner(IConversation conversation) { IEnumerable<IDialog> currentDialogs = conversation.CurrentDialogs().ToList(); Console.WriteLine(conversation.GetDescription()); Console.WriteLine(""); Console.WriteLine("----------------------------"); while (currentDialogs.Any()) { if (currentDialogs.Count() == 1) { Console.WriteLine("-" + currentDialogs.First().GetText()); Console.ReadKey(); conversation.Next(); } else if (currentDialogs.Count() > 1) { Console.WriteLine("(Select an answer) 1-"+currentDialogs.Count()+")"); int i = 1; foreach (var dialog in currentDialogs) { Console.WriteLine(" "+i+")"+dialog.GetText()); i++; } int answer = ReadAnswerNumber(1, currentDialogs.Count()); conversation.Answer(currentDialogs.ToList()[answer-1]); } currentDialogs = conversation.CurrentDialogs(); } }
public static void ConversationRunner(IConversation conversation) { IEnumerable <IDialog> currentDialogs = conversation.CurrentDialogs().ToList(); Console.WriteLine(conversation.GetDescription()); Console.WriteLine(""); Console.WriteLine("----------------------------"); while (currentDialogs.Any()) { if (currentDialogs.Count() == 1) { Console.WriteLine("-" + currentDialogs.First().GetText()); Console.ReadKey(); conversation.Next(); } else if (currentDialogs.Count() > 1) { Console.WriteLine("(Select an answer) 1-" + currentDialogs.Count() + ")"); int i = 1; foreach (var dialog in currentDialogs) { Console.WriteLine(" " + i + ")" + dialog.GetText()); i++; } int answer = ReadAnswerNumber(1, currentDialogs.Count()); conversation.Answer(currentDialogs.ToList()[answer - 1]); } currentDialogs = conversation.CurrentDialogs(); } }
public void If_No_More_Conversation_Throw_InvalidOperation() { conversation.SetStartDialog(new[] { Substitute.For <IDialog>() }.ToList()); conversation.Next(); Assert.Throws <InvalidOperationException>(() => { conversation.Next(); }); }
public void Get_Next_Should_Call_Visited_On_Dialog() { conversation.SetStartDialog(new[] { dialog1 }.ToList()); conversation.Next(); dialog1.Received().Visit(); }