public async Task GetAchievementsInfoByUserAsync_ValidUserId(Guid userId) { //Arrange var userAchievement = UserAchievementDumbData.GetRandomEntity(); var cancellationToken = new CancellationToken(); var countAchievementsByUser = RandomHelper.GetRandomNumber(); var countAchievementsByMonth = RandomHelper.GetRandomNumber(); var expectedValue = new AchievementsInfoModel { TotalAchievements = countAchievementsByUser, TotalXP = userAchievement.User.XP, TotalAchievementsByThisMonth = countAchievementsByMonth }; _userAchievementRepository.Setup(x => x.GetCountAchievementsByUserAsync(It.IsAny <Guid>(), cancellationToken)).ReturnsAsync(countAchievementsByUser); _userAchievementRepository.Setup(x => x.GetCountAchievementsByThisMonthAsync(It.IsAny <Guid>(), cancellationToken)).ReturnsAsync(countAchievementsByMonth); _userRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken)).Returns(Task.FromResult(userAchievement.User)); // Act var response = await _userAchievementService.GetAchievementsInfoByUserAsync(userId, cancellationToken); // Assert _userAchievementRepository.Verify(x => x.GetCountAchievementsByUserAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); _userAchievementRepository.Verify(x => x.GetCountAchievementsByThisMonthAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); _userRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); response.Should().BeEquivalentTo(expectedValue); }
public async Task <IActionResult> GetAchievementsInfo(CancellationToken cancellationToken) { var achievementsInfo = await _userAchievementService.GetAchievementsInfoByUserAsync(UserId, cancellationToken); return(Ok(achievementsInfo)); }