Exemplo n.º 1
0
        public async Task InsertCachedWord(CachedWord cachedWord)
        {
            var entity = new CachedWordEntity
            {
                AnagramsIds = cachedWord.AnagramsIds,
                Phrase      = cachedWord.SearchPhrase
            };

            await _context.CachedWords.AddAsync(entity);
        }
        public async Task InsertAndFetchCachedWord()
        {
            var word = new CachedWord("test-phrase8", "1;2;3");

            await _repo.InsertCachedWord(word);

            var insertedWord = await _repo.GetCachedWord(word.SearchPhrase);

            Assert.AreEqual(word.SearchPhrase, insertedWord.Phrase);
            Assert.AreEqual(word.AnagramsIds, insertedWord.AnagramsIds);
        }
Exemplo n.º 3
0
        public void SetCachedAnagrams(List <string> anagrams, string requestWord)
        {
            foreach (string anagram in anagrams)
            {
                CachedWord cachedWord = new CachedWord();
                cachedWord.RequestWordId    = _em.RequestWords.Where(r => r.Word == requestWord).Select(r => r.Id).FirstOrDefault();
                cachedWord.DictionaryWordId = _em.DictionaryWords.Where(d => d.Word == anagram).Select(d => d.Id).FirstOrDefault();
                _em.CachedWords.Add(cachedWord);
            }

            _em.SaveChanges();
        }
Exemplo n.º 4
0
 public void InsertIntoCashedWords(string word)
 {
     using (var context = new AnagramCFContext())
     {
         var cachedWord = new CachedWord()
         {
             CachedWord1 = word
         };
         context.CachedWords.Add(cachedWord);
         context.SaveChanges();
     }
 }
Exemplo n.º 5
0
        public Task AddCachedWord(string phrase, List <string> anagramsIds)
        {
            if (string.IsNullOrEmpty(phrase) || anagramsIds == null || anagramsIds.Count < 1)
            {
                throw new Exception("Cannot add CachedWord, because CachedWord is empty");
            }

            var formatedIds = string.Join(";", anagramsIds);
            var cachedWord  = new CachedWord(phrase, formatedIds);

            return(_cachedWordRepository.InsertCachedWord(cachedWord));
        }
Exemplo n.º 6
0
        public async Task SuccessWhenGettingSelectedCachedWord()
        {
            var model = new CachedWord("phrase", "anagrams");

            _cachedWordRepoMock.GetCachedWord(Arg.Any <string>()).Returns(new CachedWordEntity());
            _mapperMock.Map <CachedWord>(Arg.Any <object>()).Returns(model);

            var result = await _cachedWordService.GetSelectedCachedWord("phrase");

            await _cachedWordRepoMock.Received().GetCachedWord(Arg.Any <string>());

            _mapperMock.Received().Map <CachedWord>(Arg.Any <CachedWordEntity>());
            Assert.AreEqual(model.SearchPhrase, result.SearchPhrase);
            Assert.AreEqual(model.AnagramsIds, result.AnagramsIds);
        }
Exemplo n.º 7
0
        public async Task InsertCachedWord(CachedWord cachedWord)
        {
            sqlConnection.Open();
            SqlCommand cmd = new SqlCommand
            {
                Connection  = sqlConnection,
                CommandType = CommandType.Text,
                CommandText = "insert into CachedWords(Phrase, AnagramsIds) " +
                              "values (@phrase, @anagrams)"
            };

            cmd.Parameters.Add(new SqlParameter("@phrase", cachedWord.SearchPhrase));
            cmd.Parameters.Add(new SqlParameter("@anagrams", cachedWord.AnagramsIds));

            await cmd.ExecuteNonQueryAsync();

            sqlConnection.Close();
        }
Exemplo n.º 8
0
        public async Task GetSearchedAnagramsSuccessWhenSearchPhraseDefined()
        {
            var chachedWord = new CachedWord("phrase", "1;2/8");
            var word        = new Anagram()
            {
                Category = "cat", Word = "word"
            };

            _cachedWordService.GetSelectedCachedWord(Arg.Any <string>()).Returns(chachedWord);
            _wordServiceMock.GetWordById(Arg.Any <int>()).Returns(word);

            var result = await _historyService.GetSearchedAnagrams("phrase");

            await _cachedWordService.Received().GetSelectedCachedWord(Arg.Any <string>());

            await _wordServiceMock.Received().GetWordById(Arg.Any <int>());

            Assert.AreEqual(2, result.Count);
            Assert.AreEqual(word.Word, result[0]);
            Assert.AreEqual($"{word.Word} {word.Word}", result[1]);
        }