public void GetAnagramsFromCache_ShouldReturnListOfCachedWords() { RequestedWord = "labas"; ExpectedList = new List <string>() { "labas", "balas" }; var firstSample = new CachedEntity() { Id = 1, Anagram = new WordEntity() { Id = 1, Word = "labas", SortedWord = "aabls" }, Request = new RequestEntity() { Id = 1, Word = "labas" } }; var secondSample = new CachedEntity() { Id = 1, Anagram = new WordEntity() { Id = 2, Word = "balas", SortedWord = "aabls" }, Request = new RequestEntity() { Id = 1, Word = "labas" } }; IList <CachedEntity> returnedFromCache = new List <CachedEntity>() { firstSample, secondSample }; _cacheRepository.GetCacheListByRequestWord(RequestedWord).Returns(returnedFromCache); ////////////////////////////////// ////////////////////////////////// var result = _cacheService.GetAnagramsFromCache(RequestedWord); result.ShouldNotBeNull(); firstSample.Anagram.Word.ShouldBe(ExpectedList[0]); secondSample.Anagram.Word.ShouldBe(ExpectedList[1]); _cacheRepository.Received().GetCacheListByRequestWord(RequestedWord); }
public void InsertWordToCache(string requestWord, IList <string> anagrams) { InsertWordToRequestedWords(requestWord); bool wordIsCached = _cacheRepository.GetCacheListByRequestWord(requestWord).Any(); if (!wordIsCached) { foreach (var item in anagrams) { CachedEntity cachedEntity = new CachedEntity() { RequestId = _requestRepository.GetByWord(requestWord).Id, AnagramId = _wordRepository.GetByWord(item).Id }; _cacheRepository.Add(cachedEntity); } } }