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); } }
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))); }