public void GetAnagrams_IfUserIsNotValidToSearch_ShouldSetBoolOfModelFalseAndReturn()
        {
            _userManagingService.CheckIfValidToSearch(ip).Returns(false);

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

            result.isValidToSearch.ShouldBe(false);
        }
Ejemplo n.º 2
0
        public AnagramsSearchInfoModel GetAnagrams(string requestWord, string userIp)
        {
            var anagramsSearchInfoModel = new AnagramsSearchInfoModel();

            if (!_userManagingService.CheckIfRegistered(userIp))
            {
                _userContract.SetUser(userIp);
            }

            anagramsSearchInfoModel.isValidToSearch = _userManagingService.CheckIfValidToSearch(userIp);

            if (!anagramsSearchInfoModel.isValidToSearch)
            {
                return(anagramsSearchInfoModel);
            }

            if (_cachedWords.CheckIfCached(requestWord))
            {
                _logger.Log(requestWord, userIp);
                anagramsSearchInfoModel.Anagrams = _cachedWords.GetCachedAnagrams(requestWord);

                return(anagramsSearchInfoModel);
            }

            anagramsSearchInfoModel.Anagrams = _anagramSolver.GetAnagrams(requestWord).ToList();
            _requestWordContract.SetRequestWord(requestWord);
            _cachedWords.SetCachedAnagrams(anagramsSearchInfoModel.Anagrams, requestWord);
            _logger.Log(requestWord, userIp);

            return(anagramsSearchInfoModel);
        }