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 OutputIndex(IndexOutputRequest indexOutputRequest) { IndexParameter indexParameter = IndexParameterParser.ParseIndexParameter(); DictionaryParameter dictionaryParameter = DictionaryParameterParser.ParseDictionaryParameter(); if (indexParameter.IsPresent) { List <string> dictionaryWords = DictionaryFileLoader.ReadWords(); int unknwonWordsCount = EnumerableHelpers.CountUnknownWords( distinctWords: indexOutputRequest.DistinctWords, dictionaryWords: dictionaryWords); if (dictionaryParameter.IsPresent) { DisplayOutput.WriteResourceLine( resourceIdent: "INDEX_WITH_UNKNOWN", placeholderValues: unknwonWordsCount); } else { DisplayOutput.WriteResourceLine( resourceIdent: "INDEX"); } DisplayWords( distinctWords: indexOutputRequest.DistinctWords, dictionaryWords: dictionaryWords); } }
public void IndexOutputTests_DistinctWords_Bla_bla_Expect_Output_Index_With_Dict_bla_Bla_star() { List <string> verifyList = new List <string>(); _mockDictionaryParameterParser .Setup(m => m.ParseDictionaryParameter()) .Returns(new DictionaryParameter { IsPresent = true, FileName = It.IsAny <string>() }); _mockIndexParameterParser .Setup(m => m.ParseIndexParameter()) .Returns(new IndexParameter { IsPresent = true }); _mockDisplayOutput .Setup(expression: m => m.WriteLine(It.IsAny <string>())) .Callback <string>(action: (s) => verifyList.Add(item: s)); _mockDictionaryFileLoader .Setup(expression: m => m.ReadWords()) .Returns(value: new List <string> { "bla" }); IndexOutputRequest indexOutputRequest = new IndexOutputRequest { DistinctWords = new List <string> { "Bla", "bla" } }; _systemUnderTest.OutputIndex(indexOutputRequest: indexOutputRequest); _mockDisplayOutput .Verify( expression: v => v.WriteResourceLine("INDEX_WITH_UNKNOWN", 1), 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]); }