public int Execute() { bool hasRequestedHelp = HelpOutput.ShowHelpIfRequested(); if (hasRequestedHelp) { return(1); } InputTextResult inputTextResult = TextInput.GetInputText(); if (inputTextResult.Text.IsNullOrEmpty()) { return(0); } do { WordCountAnalyzerResult analyzeResult = WordCountAnalyzer.Analyze(text: inputTextResult.Text); WordCountAnalyzerOutput.DisplayResult(result: analyzeResult); IndexOutputRequest indexOutputRequest = new IndexOutputRequest { DistinctWords = analyzeResult.DistinctWords }; IndexOutput.OutputIndex(indexOutputRequest: indexOutputRequest); inputTextResult = TextInput.GetInputText(); } while (inputTextResult.HasEnteredConsoleText); return(0); }
public void IndexOutputTests_DistinctWords_Bla_bla_Expect_Output_Index_bla_Bla() { List <string> verifyList = new List <string>(); _mockIndexParameterParser .Setup(m => m.ParseIndexParameter()) .Returns(new IndexParameter { IsPresent = true }); _mockDictionaryParameterParser .Setup(m => m.ParseDictionaryParameter()) .Returns(new DictionaryParameter { IsPresent = false }); _mockDisplayOutput .Setup(expression: m => m.WriteLine(It.IsAny <string>())) .Callback <string>(action: (s) => verifyList.Add(item: s)); IndexOutputRequest indexOutputRequest = new IndexOutputRequest { DistinctWords = new List <string> { "Bla", "bla" } }; _systemUnderTest.OutputIndex(indexOutputRequest: indexOutputRequest); _mockDisplayOutput .Verify( expression: v => v.WriteResourceLine("INDEX"), times: Times.Once); _mockDisplayOutput .Verify( expression: v => v.WriteLine("bla"), times: Times.Once); _mockDisplayOutput .Verify( expression: v => v.WriteLine("Bla"), times: Times.Once); Assert.Equal(expected: "bla", actual: verifyList[index: 0]); Assert.Equal(expected: "Bla", actual: verifyList[index: 1]); }