Exemplo n.º 1
0
        public async Task Breadcrumb_ParentDoesNotHaveTitleItIsExcludedFromTheTrail(
            string titleOfMenu1, string titleOfMenu2, string titleOfMenu3,
            string expectMenu1, string expectMenu2, string expectMenu3,
            string message)
        {
            // Arrange
            var classUnderTest = new ConsoleMenuController(_mockConsoleMenuRepository.Object, _mockConsoleCommand.Object, _mockPromptHelper.Object);

            BuildThreeLevelMenu(classUnderTest, titleOfMenu2, titleOfMenu3);

            _mockPromptHelper.SetupSequence(s => s.GetNumber(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(3)      // User presses 3 and goes to menu2
            .Returns(3)      // User presses 3 and goes to menu3
            .Returns(0)      // Users exits menu3 and returns to menu2
            .Returns(0)      // Users exits menu2 and returns to menu1
            .Returns(0);     // Users exits menu1 and the app too

            // Act
            await classUnderTest.DisplayMenuAsync("Menu1", titleOfMenu1, BreadCrumbType.Concatenate);

            // Assert
            if (string.IsNullOrWhiteSpace(expectMenu1) == false)
            {
                _mockConsoleCommand.Verify(v => v.WriteLine(expectMenu1), Times.Exactly(2), message);
            }
            if (string.IsNullOrWhiteSpace(expectMenu2) == false)
            {
                _mockConsoleCommand.Verify(v => v.WriteLine(expectMenu2), Times.Exactly(2), message);
            }
            if (string.IsNullOrWhiteSpace(expectMenu3) == false)
            {
                _mockConsoleCommand.Verify(v => v.WriteLine(expectMenu3), Times.Once, message);
            }
        }
Exemplo n.º 2
0
        public async Task Breadcrumb_IfIsSpecifiedItIsWrittenToTheScreen()
        {
            // Arrange
            string titleOfMenu1 = "Title of menu 1";
            string titleOfMenu2 = "Title of menu 2";
            string titleOfMenu3 = "Title of menu 3";

            var classUnderTest = new ConsoleMenuController(_mockConsoleMenuRepository.Object, _mockConsoleCommand.Object, _mockPromptHelper.Object);

            BuildThreeLevelMenu(classUnderTest, titleOfMenu2, titleOfMenu3);

            _mockPromptHelper.SetupSequence(s => s.GetNumber(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(3)      // User presses 3 and goes to menu2
            .Returns(3)      // User presses 3 and goes to menu3
            .Returns(0)      // Users exits menu3 and returns to menu2
            .Returns(0)      // Users exits menu2 and returns to menu1
            .Returns(0);     // Users exits menu1 and the app too

            // Act
            await classUnderTest.DisplayMenuAsync("Menu1", titleOfMenu1, BreadCrumbType.Concatenate);

            // Assert
            _mockConsoleCommand.Verify(v => v.WriteLine(titleOfMenu1), Times.Exactly(2));
            _mockConsoleCommand.Verify(v => v.WriteLine($"{titleOfMenu1} > {titleOfMenu2}"), Times.Exactly(2));
            _mockConsoleCommand.Verify(v => v.WriteLine($"{titleOfMenu1} > {titleOfMenu2} > {titleOfMenu3}"), Times.Once);
        }
Exemplo n.º 3
0
 static void Main(string[] args)
 {
     try {
         Settings = SiteUtils.GetUserSettings();
         ConsoleMenuController menu = new ConsoleMenuController(Settings);
         menu.RunCommand(args);
     } catch (System.Exception exc) {
         Console.WriteLine(exc.Message);
     }
 }
Exemplo n.º 4
0
    public void RenderMenu()
    {
        ConsoleColor f = ConsoleColor.Gray;
        ConsoleColor b = ConsoleColor.Black;

        char[] label;
        string content;

        ConsoleMenuController temp = (ConsoleMenuController)MasterControlProgram.GetController();

        for (int i = 0; i < uiContent.GetLength(0); i++)
        {
            for (int j = 0; j < uiContent.GetLength(1); j++)
            {
                uiContent[i, j] = new ConsolePixel();
            }
        }

        content = "CONSOLE DUNGEON CRAWLER : MAIN MENU";
        label   = content.ToCharArray();
        for (int i = 0; i < label.Length; i++)
        {
            f = ConsoleColor.Green;
            uiContent[0, i] = new ConsolePixel(label[i], f);
        }

        if (temp.states.Count > 0)
        {
            for (int i = 0; i < temp.states.Count; i++)
            {
                content = temp.states[i].ToString();
                label   = content.ToCharArray();

                for (int j = 0; j < label.Length; j++)
                {
                    if (i == temp.index)
                    {
                        f = ConsoleColor.Gray;
                        b = ConsoleColor.Magenta;
                    }
                    else
                    {
                        f = ConsoleColor.Gray;
                        b = ConsoleColor.Black;
                    }

                    uiContent[1 + i, j] = new ConsolePixel(label[j], f, b);
                }
            }
        }
    }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            MasterControlProgram MCP = new MasterControlProgram();
            ConsoleMenuController menuController = new ConsoleMenuController();
            ConsolePlayerController playerController = new ConsolePlayerController();
            ConsoleView view = new ConsoleView();

            //Console.SetWindowSize(236, 80);
            Console.SetWindowSize(60, 60);
            MasterControlProgram.SetController(menuController);
            MCP.view = view;
            MCP.Run();
            return;
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            MasterControlProgram    MCP              = new MasterControlProgram();
            ConsoleMenuController   menuController   = new ConsoleMenuController();
            ConsolePlayerController playerController = new ConsolePlayerController();
            ConsoleView             view             = new ConsoleView();

            //Console.SetWindowSize(236, 80);
            Console.SetWindowSize(60, 60);
            MasterControlProgram.SetController(menuController);
            MCP.view = view;
            MCP.Run();
            return;
        }
Exemplo n.º 7
0
        public async Task  Title_IfSpecifiedItIsWrittenToTheScreen()
        {
            // Arrange
            var    classUnderTest = new ConsoleMenuController(_mockConsoleMenuRepository.Object, _mockConsoleCommand.Object, _mockPromptHelper.Object);
            string titleOfMenu1   = "Title of menu 1";

            BuildThreeLevelMenu(classUnderTest, string.Empty, string.Empty);

            _mockPromptHelper.Setup(s => s.GetNumber(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(0);     //Users exits menu1 and the app too

            // Act
            await classUnderTest.DisplayMenuAsync("Menu1", titleOfMenu1);

            // Assert
            _mockConsoleCommand.Verify(v => v.WriteLine(titleOfMenu1), Times.Once);
        }
Exemplo n.º 8
0
        private void BuildThreeLevelMenu(ConsoleMenuController classUnderTest, string titleOfMenu2, string titleOfMenu3)
        {
            // MENU 1
            var menu1List = new List <ConsoleMenuItemWrapper>
            {
                new ConsoleMenuItemWrapper {
                    Item = new TestMenuItem("Test 1"), ItemNumber = 1, TheType = typeof(TestMenuItem)
                },
                new ConsoleMenuItemWrapper {
                    Item = new TestMenuItem("Test 2"), ItemNumber = 2, TheType = typeof(TestMenuItem)
                },
                new ConsoleMenuItemWrapper {
                    Item = new TestSubMenuItem("Menu2", "Test 2", titleOfMenu2, BreadCrumbType.Concatenate, classUnderTest), ItemNumber = 3, TheType = typeof(TestSubMenuItem)
                },
                new ConsoleMenuItemWrapper {
                    Item = new ExitConsoleMenuItem(), ItemNumber = 0, TheType = typeof(ExitConsoleMenuItem)
                }
            };

            _mockConsoleMenuRepository.Setup(s => s.LoadMenus("Menu1")).Returns(menu1List);
            _mockConsoleMenuRepository.Setup(s => s.CreateMenuItems(menu1List)).Returns(menu1List);

            // MENU 2
            var menu2List = new List <ConsoleMenuItemWrapper>
            {
                new ConsoleMenuItemWrapper {
                    Item = new TestMenuItem("Test 4"), ItemNumber = 1, TheType = typeof(TestMenuItem)
                },
                new ConsoleMenuItemWrapper {
                    Item = new TestMenuItem("Test 5"), ItemNumber = 2, TheType = typeof(TestMenuItem)
                },
                new ConsoleMenuItemWrapper {
                    Item = new TestSubMenuItem("Menu3", "Test 4", titleOfMenu3, BreadCrumbType.Concatenate, classUnderTest), ItemNumber = 3, TheType = typeof(TestSubMenuItem)
                },
                new ConsoleMenuItemWrapper {
                    Item = new ExitConsoleMenuItem(), ItemNumber = 0, TheType = typeof(ExitConsoleMenuItem)
                }
            };

            _mockConsoleMenuRepository.Setup(s => s.LoadMenus("Menu2")).Returns(menu2List);
            _mockConsoleMenuRepository.Setup(s => s.CreateMenuItems(menu2List)).Returns(menu2List);

            // MENU 3
            var menu3List = new List <ConsoleMenuItemWrapper>
            {
                new ConsoleMenuItemWrapper {
                    Item = new TestMenuItem("Test 7"), ItemNumber = 1, TheType = typeof(TestMenuItem)
                },
                new ConsoleMenuItemWrapper {
                    Item = new TestMenuItem("Test 8"), ItemNumber = 2, TheType = typeof(TestMenuItem)
                },
                new ConsoleMenuItemWrapper {
                    Item = new TestMenuItem("Test 9"), ItemNumber = 3, TheType = typeof(TestSubMenuItem)
                },
                new ConsoleMenuItemWrapper {
                    Item = new ExitConsoleMenuItem(), ItemNumber = 0, TheType = typeof(ExitConsoleMenuItem)
                }
            };

            _mockConsoleMenuRepository.Setup(s => s.LoadMenus("Menu3")).Returns(menu3List);
            _mockConsoleMenuRepository.Setup(s => s.CreateMenuItems(menu3List)).Returns(menu3List);
        }