public void GetAnagrams_ShouldReturnExistingAnagrams() { string word = "dangus"; string ip = "107.0.0.1"; allowedSearchesRepository.CheckIfExists(ip).Returns(true); allowedSearchesRepository.GetAmountOfSearches(ip).Returns(10); userLogRepository.CountUserSearchesByIp(ip).Returns(1); cacheRepository.GetCachedAnagrams(word).Returns(new List <string> { "dugnas", "gandus" }); var result = anagramService.GetAnagrams(word, ip); Assert.IsNotNull(result); Assert.AreEqual("dugnas", result.First()); allowedSearchesRepository.Received().CheckIfExists(ip); allowedSearchesRepository.Received().GetAmountOfSearches(ip); userLogRepository.Received().CountUserSearchesByIp(ip); cacheRepository.Received().GetCachedAnagrams(word); allowedSearchesRepository.DidNotReceive().SaveNewUser(Arg.Any <string>(), Arg.Any <int>()); wordRepository.DidNotReceive().FindAnagrams(Arg.Any <string>()); cacheRepository.DidNotReceive().Save(Arg.Any <string>(), Arg.Any <IEnumerable <string> >()); }