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);
        }
示例#2
0
        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);
        }