public void Add_Should_Add_The_Score_And_Return_Top_5_Of_The_Scores() { // Arrange var fakeScore = new UserScore { Id = 1, UserId = 1, Score = 100 }; var fakeScoreViewModel = new UserScoreViewModel { Id = 1, UserId = 0, Score = 100 }; _mockRepo.Setup(repo => repo.Add(fakeScore, 1)); _mockRepo.Setup(repo => repo.IncreaseScore(fakeScore.Score, fakeScore.UserId)); _mockRepo.Setup(repo => repo.GetTopRanks(It.IsAny <UserScore>())).Returns(_fakeRankList.Where(x => x.Email != "You").ToList()); // Act var methodResult = _mockController.Add(fakeScoreViewModel); // Assert var testResult = methodResult.Result as OkObjectResult; Assert.Equal(JsonConvert.SerializeObject(_fakeRankList), JsonConvert.SerializeObject(testResult.Value)); }
public ActionResult <List <RankResultViewModel> > Add([FromBody] UserScoreViewModel model) { var result = new List <RankResultViewModel>(); if (model.IsFeedback) { model.UserId = _userRepository.GetUserInformationByEmail(model.Email).Id; } else { model.UserId = GetUser().Id; } if (model.UserId != 0) { _scoreRepository.Add(new UserScore { UserId = model.UserId, GuestCode = model.GuestCode, GameName = model.GameName, BookId = model.BookId, ChapterId = model.ChapterId, AddedDate = model.AddedDate, Score = model.Score, FeedbackUniqueKey = model.FeedbackUniqueKey, BaseLanguageId = model.BaseLanguageId, TargetLanguageId = model.TargetLanguageId }, model.UserId); _scoreRepository.IncreaseScore(model.Score, model.UserId); } result.AddRange(_scoreRepository.GetTopRanks(new UserScore { GameName = model.GameName, BookId = model.BookId, ChapterId = model.ChapterId, Count = model.Count, BaseLanguageId = model.BaseLanguageId, TargetLanguageId = model.TargetLanguageId }).Select(x => new RankResultViewModel { Score = x.Score, DisplayName = x.DisplayName, Email = x.Email })); return(Ok(result.Take(5).ToList())); }
public ActionResult <List <RankResultViewModel> > GetTopScores([FromBody] UserScoreViewModel model) { var result = new List <RankResultViewModel>(); result.AddRange(_scoreRepository.GetTopRanks(new UserScore { GameName = model.GameName, BookId = model.BookId, ChapterId = model.ChapterId, Count = model.Count, BaseLanguageId = model.BaseLanguageId, TargetLanguageId = model.TargetLanguageId }).Select(x => new RankResultViewModel { Score = x.Score, DisplayName = x.DisplayName, Email = x.Email })); return(Ok(result.ToList())); }