예제 #1
0
        public async Task AddSeveral_GetWorstReturnWorstOnes(int worstCount, int bestCount)
        {
            var user = new User {
                Id = ObjectId.GenerateNewId()
            };
            var worstOnes = new List <UserWord>();

            for (int i = 0; i < worstCount; i++)
            {
                var word = CreateWord(user.Id, $"table{i}", $"стол{i}", i);
                worstOnes.Add(word);
            }
            var rand       = new Random();
            var randomList = worstOnes.OrderBy(x => rand.Next()).ToList();

            foreach (var word in randomList)
            {
                await _repo.Add(word);
            }

            for (int i = 0; i < bestCount; i++)
            {
                await _repo.Add(CreateWord(user.Id, $"table{i}", $"стол{i}", i + worstCount ));
            }

            var allWords = await _repo.GetWorstLearned(user, worstCount);

            for (int i = 0; i < worstCount; i++)
            {
                var origin  = worstOnes[i];
                var current = allWords[i];
                Assert.AreEqual(origin.Word, current.Word);
                Assert.AreEqual(origin.Translations[0].Word, current.Translations[0].Word);
            }
        }
예제 #2
0
        private async Task <IEnumerable <UserWordModel> > GetWorstForUserWithPhrasesAsync(User user, int count)
        {
            var words = await _userWordsRepository.GetWorstLearned(user, count);

            await IncludeExamples(words);

            return(words.Select(w => new UserWordModel(w)));
        }