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);
        }
Beispiel #4
0
        public bool GetWordStatus(string filename, string word)
        {
            var wordExists = _wordExistenceHelper.DoesWordExist(word);

            if (wordExists)
            {
                return(true);
            }

            wordExists = _wordHelper.StrippedSuffixDictionaryCheck(_dictionary, word);

            return(wordExists);
        }
Beispiel #5
0
        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);
        }