예제 #1
0
        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();
            }
        }
예제 #2
0
        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();
            }
        }
예제 #3
0
        public void If_No_More_Conversation_Throw_InvalidOperation()
        {
            conversation.SetStartDialog(new[] { Substitute.For <IDialog>() }.ToList());
            conversation.Next();

            Assert.Throws <InvalidOperationException>(() => { conversation.Next(); });
        }
예제 #4
0
        public void Get_Next_Should_Call_Visited_On_Dialog()
        {
            conversation.SetStartDialog(new[] { dialog1 }.ToList());

            conversation.Next();

            dialog1.Received().Visit();
        }