public async Task ChangeUserAchievementsAsync_ValidAssignAchievementsToUserModel(AssignAchievementsToUserModel model) { //Arrange var user = UserDumbData.GetRandomEntity(); var userAchievements = UserAchievementDumbData.GetRandomEntities(5, user); var returnpagingInfo = ReturnPagingInfoDumbData.GetForModel(new PagingInfo(), userAchievements); var cancellationToken = new CancellationToken(); _userRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken)).ReturnsAsync(user); _userAchievementRepository.Setup(x => x.GetCountAchievementsByUserAsync(It.IsAny <Guid>(), cancellationToken)).ReturnsAsync(RandomHelper.GetRandomNumber()); _userAchievementRepository.Setup(x => x.GetAllAchievementsByUserAsync(It.IsAny <PagingInfo>(), It.IsAny <Guid>(), cancellationToken)).Returns(Task.FromResult(returnpagingInfo)); _userAchievementRepository.Setup(x => x.AddAsync(It.IsAny <UserAchievement>(), cancellationToken)).Returns(Task.CompletedTask); _userAchievementRepository.Setup(x => x.Delete(It.IsAny <UserAchievement>())); _achievementRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken)) .Returns(Task.FromResult(AchievementDumbData.GetRandomEntity())); _unitOfWork.Setup(x => x.SaveChangesAsync(cancellationToken)).Returns(Task.CompletedTask); // Act await _userAchievementService.ChangeUserAchievementsAsync(model, user.Id, cancellationToken); // Assert _userRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); _userAchievementRepository.Verify(x => x.GetCountAchievementsByUserAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); _userAchievementRepository.Verify(x => x.GetAllAchievementsByUserAsync(It.IsAny <PagingInfo>(), It.IsAny <Guid>(), cancellationToken), Times.Once); _userAchievementRepository.Verify(x => x.AddAsync(It.IsAny <UserAchievement>(), cancellationToken), Times.Once); _userAchievementRepository.Verify(x => x.Delete(It.IsAny <UserAchievement>()), Times.Once); _achievementRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); _unitOfWork.Verify(x => x.SaveChangesAsync(cancellationToken), Times.Once); }
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 UpdateAchievementAsync_UpdateAchievementModel_ReturnsReadAchievementModel(UpdateAchievementModel model) { //Arrange var achievement = AchievementDumbData.GetEntity(model); var user = UserDumbData.GetRandomEntity(); var userAchievements = UserAchievementDumbData.GetRandomEntities(5, user, achievement); var returnPagingInfo = ReturnPagingInfoDumbData.GetForModel(new PagingInfo(), userAchievements); var expectedValue = _mapper.Map <ReadAchievementModel>(achievement); var cancellationToken = new CancellationToken(); _achievementRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken)).Returns(Task.FromResult(achievement)); _userAchievementRepository.Setup(x => x.GetAllUsersByAchievementAsync(It.IsAny <PagingInfo>(), It.IsAny <Guid>(), cancellationToken)).Returns(Task.FromResult(returnPagingInfo)); _userRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken)).Returns(Task.FromResult(user)); _achievementRepository.Setup(x => x.Update(It.IsAny <Achievement>())); _fileService.Setup(x => x.AddOrUpdateFileByIdAsync(It.IsAny <IFormFile>(), It.IsAny <Guid?>(), cancellationToken)).Returns(Task.FromResult(expectedValue.IconId)); _unitOfWork.Setup(x => x.SaveChangesAsync(cancellationToken)).Returns(Task.CompletedTask); // Act var response = await _achievementService.UpdateAchievementAsync(model, achievement.Id, cancellationToken); // Assert _achievementRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); _achievementRepository.Verify(x => x.Update(It.IsAny <Achievement>()), Times.Once); _fileService.Verify(x => x.AddOrUpdateFileByIdAsync(It.IsAny <IFormFile>(), It.IsAny <Guid?>(), cancellationToken), Times.Once); _unitOfWork.Verify(x => x.SaveChangesAsync(cancellationToken), Times.Once); response.Should().BeEquivalentTo(expectedValue); }
public async Task GetUserAchievementByIdAsync() { //Arrange var userAchievement = UserAchievementDumbData.GetRandomEntity(); var expectedValue = _mapper.Map <ReadUserAchievementModel>(userAchievement); var cancellationToken = new CancellationToken(); _userAchievementRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken)).ReturnsAsync(userAchievement); // Act var response = await _userAchievementService.GetUserAchievementByIdAsync(userAchievement.Id, cancellationToken); // Assert _userAchievementRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); response.Should().BeEquivalentTo(expectedValue); }
public async Task GetAllAchievementsByUserAsync(PagingInfo pagingInfo) { //Arrange var user = UserDumbData.GetRandomEntity(); var returnPage = ReturnPagingInfoDumbData.GetForModel(pagingInfo, UserAchievementDumbData.GetRandomEntities(5, user)); var expectedValue = ReturnPagingInfoDumbData.GetWithModels <ReadUserAchievementModel, UserAchievement>(returnPage, _mapper); var cancellationToken = new CancellationToken(); _userAchievementRepository.Setup(x => x.GetAllAchievementsByUserAsync(It.IsAny <PagingInfo>(), It.IsAny <Guid>(), cancellationToken)).ReturnsAsync(returnPage); // Act var response = await _userAchievementService.GetAllAchievementsByUserAsync(pagingInfo, user.Id, cancellationToken); // Assert _userAchievementRepository.Verify(x => x.GetAllAchievementsByUserAsync(It.IsAny <PagingInfo>(), It.IsAny <Guid>(), cancellationToken), Times.Once); response.Should().BeEquivalentTo(expectedValue); }
public async Task DeleteAsync_ValidUserAchievementId(Guid userAchievementId) { //Arrange var userAchievement = UserAchievementDumbData.GetRandomEntity(); var user = userAchievement.User; var achievement = userAchievement.Achievement; var cancellationToken = new CancellationToken(); _userRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken)).ReturnsAsync(user); _userAchievementRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken)).ReturnsAsync(userAchievement); _userAchievementRepository.Setup(x => x.Delete(It.IsAny <UserAchievement>())); _unitOfWork.Setup(x => x.SaveChangesAsync(cancellationToken)).Returns(Task.CompletedTask); // Act await _userAchievementService.DeleteAsync(userAchievementId, cancellationToken); // Assert _userRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); _userAchievementRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>(), cancellationToken), Times.Once); _userAchievementRepository.Verify(x => x.Delete(It.IsAny <UserAchievement>()), Times.Once); _unitOfWork.Verify(x => x.SaveChangesAsync(cancellationToken), Times.Once); }