Exemple #1
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);
        }
Exemple #2
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);
            }
        }
Exemple #3
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);
        }