public async Task ApproveAchievementRequestAsync(Guid id, CancellationToken cancellationToken) { var achievementRequest = await _requestAchievementRepository.GetByIdAsync(id, cancellationToken); await _userAchievementService.AddAsync(achievementRequest.UserId, achievementRequest.AchievementId, cancellationToken); await DeleteAsync(achievementRequest, cancellationToken); await _unitOfWork.SaveChangesAsync(cancellationToken); }
public async Task AddAsync_ValidUserId_AchievementId() { //Arrange var user = UserDumbData.GetRandomEntity(); var achievement = AchievementDumbData.GetRandomEntity(); var cancellationToken = new CancellationToken(); _userRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken)).ReturnsAsync(user); _achievementRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken)).ReturnsAsync(achievement); _userAchievementRepository.Setup(x => x.AddAsync(It.IsAny <UserAchievement>(), cancellationToken)).Returns(Task.CompletedTask); _eventRepository.Setup(x => x.AddAsync(It.IsAny <Event>(), cancellationToken)).Returns(Task.CompletedTask); _unitOfWork.Setup(x => x.SaveChangesAsync(cancellationToken)).Returns(Task.CompletedTask); // Act await _userAchievementService.AddAsync(user.Id, achievement.Id, cancellationToken); // Assert _userRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); _userAchievementRepository.Verify(x => x.AddAsync(It.IsAny <UserAchievement>(), cancellationToken), Times.Once); _achievementRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); _eventRepository.Verify(x => x.AddAsync(It.IsAny <Event>(), cancellationToken), Times.Once); _unitOfWork.Verify(x => x.SaveChangesAsync(cancellationToken), Times.Once); }