public void GetAnagrams_IfWordIsCached_ShouldSetModelAnagramsFromCache()
        {
            List <string> anagrams = new List <string> {
                "sula", "alus"
            };

            _cachedWords.CheckIfCached("test").Returns(true);
            _cachedWords.GetCachedAnagrams("test").Returns(anagrams);
            _userManagingService.CheckIfValidToSearch(ip).Returns(true);

            var result = _anagramsSearchService.GetAnagrams("test", ip);

            _logger.Received().Log("test", ip);
            result.Anagrams.ShouldBe(anagrams);

            _anagramSolver.DidNotReceive().GetAnagrams("test");
        }
Beispiel #2
0
        public void Should_Use_Anagrams_Cache_Only(string word, string userIp)
        {
            _cacheRepository.GetCachedAnagrams(word).Returns(new List <WordModel>()
            {
                new WordModel(word)
            });
            _wordsRepository.GetWords().Returns(_dummyWordsRepository.GetWords());
            _anagramSolver.GetAnagrams(word, _dummyWordsRepository.GetWords()).Returns(new List <WordModel>()
            {
                new WordModel(word)
            });

            _anagramsService.GetAnagrams(word, userIp);

            _cacheRepository.Received().GetCachedAnagrams(word);
            _wordsRepository.DidNotReceive().GetWords();
            _anagramSolver.DidNotReceive().GetAnagrams(word, _wordsRepository.GetWords());
        }