public void WhenPluralIsAddedThenTemporaryDefinitionIsSetToSingular() { var word = "sloths"; var shortenedWord = "sloth"; _wordDefinitionHelper.GetDefinitionForWord(shortenedWord).Returns(TestFileHelper.SlothTemporaryDefinition); _webDictionaryRequestHelper.MakeContentRequest(shortenedWord).Returns("sloth word forms plural sloths"); _wordExistenceHelper.DoesWordExist(shortenedWord).Returns(true); _temporaryDefinitionHelper = new TemporaryDefinitionHelper(_fileHelper); var wordHelper = new WordHelper(_webDictionaryRequestHelper, _wordExistenceHelper, _wordDefinitionHelper, _fileHelper, _temporaryDefinitionHelper); wordHelper.StrippedSuffixDictionaryCheck(_dictionary, word); _wordService.UpdateDictionaryFile(); _wordService.UpdateDictionaryFile(); var json = TestFileHelper.Read(Filename); var dictionary = JsonConvert.DeserializeObject <Dictionary>(json); dictionary.Words.Should().ContainEquivalentOf(new WordData { Word = "sloths", PermanentDefinition = null, TemporaryDefinition = TestFileHelper.SlothTemporaryDefinition, Status = WordStatus.Suffix }); }
public void WhenWordExistsInTheDictionaryThenTheWordServiceShouldReturnTrue() { var word = "sheep"; _wordExistenceHelper .DoesWordExist(word) .Returns(true); var wordService = new WordService(_wordExistenceHelper, _wordHelper, _wordDefinitionHelper, _fileHelper, _filenameHelper); var response = wordService.GetWordStatus(Filename, word); response.Should().BeTrue(); }
public StrippedSuffixTests() { _webDictionaryRequestHelper = Substitute.For <IWebDictionaryRequestHelper>(); _wordExistenceHelper = Substitute.For <IWordExistenceHelper>(); _wordDefinitionHelper = Substitute.For <IWordDefinitionHelper>(); _fileHelper = Substitute.For <IFileHelper>(); _temporaryDefinitionHelper = Substitute.For <ITemporaryDefinitionHelper>(); _wordExistenceHelper .DoesWordExist(Arg.Any <string>()) .Returns(true); }
public bool GetWordStatus(string filename, string word) { var wordExists = _wordExistenceHelper.DoesWordExist(word); if (wordExists) { return(true); } wordExists = _wordHelper.StrippedSuffixDictionaryCheck(_dictionary, word); return(wordExists); }
public bool StrippedSuffixDictionaryCheck(Dictionary dictionary, string word) { word = word.ToLower(); var endings = new List <string> { "ning", "ing", "ed", "er", "es", "s", "d" }; endings = endings .Where(x => x.Length < word.Length) .OrderByDescending(s => s.Length) .ToList(); foreach (var ending in endings) { var shortenedWord = word.Remove(word.Length - ending.Length); if (word.Substring(word.Length - ending.Length) != ending) { continue; } if (!_wordExistenceHelper.DoesWordExist(shortenedWord)) { continue; } if (CheckWordWithEndingExists(word, shortenedWord)) { var temporaryDefinition = _wordDefinitionHelper.GetDefinitionForWord(shortenedWord); _temporaryDefinitionHelper.AutomaticallySetTemporaryDefinitionForWord(dictionary, word, temporaryDefinition); return(true); } } return(false); }