public async Task ThrowException_WhenLikeDoesntExist() { var options = TestUtils.GetOptions(nameof(ThrowException_WhenLikeDoesntExist)); var bar = new Bar { Id = "2" }; var user = new AppUser { Id = "1" }; var review1 = new BarReview { Id = "1", Rating = 6, Description = "0100101", BarId = "2" }; //var review2 = new BarReview { Id = "2", Rating = 10, Description = "0100101", BarId = "2" }; var like1 = new BarReviewLike { Id = "1", BarReviewID = "1", AppUserID = "1" }; //var like2 = new BarReviewLike { Id = "2", BarReviewID = "2", AppUserID="1" }; using (var arrangeContext = new CMContext(options)) { var sut = new ReviewServices(arrangeContext); arrangeContext.Add(bar); arrangeContext.Add(user); arrangeContext.Add(review1); //arrangeContext.Add(review2); //arrangeContext.Add(like1); await arrangeContext.SaveChangesAsync(); var ex = await Assert.ThrowsExceptionAsync <MagicException>( async() => await sut.RemoveBarReviewLike(review1.Id, user.Id) ); } }
public async Task RemoveLikeBarReview_WhenValidBarIdIsPassed() { var options = TestUtils.GetOptions(nameof(RemoveLikeBarReview_WhenValidBarIdIsPassed)); var bar = new Bar { Id = "2" }; var user = new AppUser { Id = "1" }; var review1 = new BarReview { Id = "1", Rating = 6, Description = "0100101", BarId = "2" }; var review2 = new BarReview { Id = "2", Rating = 10, Description = "0100101", BarId = "2" }; var like1 = new BarReviewLike { Id = "1", BarReviewID = "1", AppUserID = "1" }; //var like2 = new BarReviewLike { Id = "2", BarReviewID = "2", AppUserID="1" }; using (var arrangeContext = new CMContext(options)) { var sut = new ReviewServices(arrangeContext); arrangeContext.Add(bar); arrangeContext.Add(user); arrangeContext.Add(review1); arrangeContext.Add(like1); await arrangeContext.SaveChangesAsync(); Assert.AreEqual(1, arrangeContext.BarReviewLikes.Count()); await sut.RemoveBarReviewLike(review1.Id, user.Id); Assert.AreEqual(0, arrangeContext.BarReviewLikes.Count()); } }
public static BarReviewLikeDTO BarMapReviewLikeDTO(this BarReviewLike barReviewLike) { var barReviewLikeDTO = new BarReviewLikeDTO(); barReviewLikeDTO.BarReviewId = barReviewLike.BarReviewId; barReviewLikeDTO.BarReview = barReviewLike.BarReview; barReviewLikeDTO.UserId = barReviewLike.UserId; barReviewLikeDTO.User = barReviewLike.User; barReviewLikeDTO.IsLiked = barReviewLike.IsLiked; barReviewLikeDTO.IsInappropriate = barReviewLike.IsInappropriate; return barReviewLikeDTO; }
public async Task GetCorrectCountOfLikes_WhenValidParamethersArePassed() { var options = TestUtils.GetOptions(nameof(GetCorrectCountOfLikes_WhenValidParamethersArePassed)); var bar = new Bar { Id = "2" }; var user = new AppUser { Id = "1" }; var user2 = new AppUser { Id = "2" }; var review1 = new BarReview { Id = "1", Rating = 6, Description = "0100101", BarId = "2" }; //var review2 = new BarReview { Id = "2", Rating = 10, Description = "0100101", BarId = "2" }; var like1 = new BarReviewLike { Id = "1", BarReviewID = "1", AppUserID = "1" }; var like2 = new BarReviewLike { Id = "2", BarReviewID = "1", AppUserID = "2" }; using (var arrangeContext = new CMContext(options)) { var sut = new ReviewServices(arrangeContext); arrangeContext.Add(bar); arrangeContext.Add(user); arrangeContext.Add(user2); arrangeContext.Add(review1); //arrangeContext.Add(review2); arrangeContext.Add(like1); await arrangeContext.SaveChangesAsync(); await sut.LikeBarReview(bar.Id, user.Id); var result = await sut.LikeBarReview(bar.Id, user2.Id); Assert.AreEqual(2, result); } }
//Tested public async Task <int> LikeBarReview(string barReviewID, string userId) { barReviewID.ValidateIfNull(ExceptionMessages.IdNull); userId.ValidateIfNull(ExceptionMessages.IdNull); if (await _context.BarReviewLikes.AnyAsync(l => l.AppUserID == userId && l.BarReviewID == barReviewID)) { throw new MagicException(ExceptionMessages.ReviewIsLiked); } var like = new BarReviewLike() { AppUserID = userId, BarReviewID = barReviewID, Date = DateTime.Now.Date }; _context.BarReviewLikes.Add(like); await _context.SaveChangesAsync(); int count = await _context.BarReviewLikes.Where(r => r.BarReviewID == barReviewID).CountAsync(); return(count); }
public async Task ThrowExceptionForCocktailLike_WhenUserLikeExists() { var options = TestUtils.GetOptions(nameof(ThrowExceptionForCocktailLike_WhenUserLikeExists)); var bar = new Bar { Id = "2" }; var user = new AppUser { Id = "1" }; var review1 = new BarReview { Id = "1", Rating = 6, Description = "0100101", BarId = "2" }; //var review2 = new BarReview { Id = "2", Rating = 10, Description = "0100101", BarId = "2" }; var like1 = new BarReviewLike { Id = "1", BarReviewID = "1", AppUserID = "1" }; //var like2 = new BarReviewLike { Id = "2", BarReviewID = "2", AppUserID="1" }; using (var arrangeContext = new CMContext(options)) { var sut = new ReviewServices(arrangeContext); arrangeContext.Add(bar); arrangeContext.Add(user); arrangeContext.Add(review1); //arrangeContext.Add(review2); arrangeContext.Add(like1); await arrangeContext.SaveChangesAsync(); await sut.LikeBarReview(bar.Id, user.Id); var ex = await Assert.ThrowsExceptionAsync <MagicException>( async() => await sut.LikeBarReview(bar.Id, review1.Id) ); Assert.AreEqual(ExceptionMessages.ReviewIsLiked, ex.Message); } }
public async Task <bool> AddBarReviewLikeAsync(Guid reviewId, Guid userId) { var reviewExists = await _cmContext.BarReviews.AnyAsync(br => br.Id == reviewId && br.DeletedOn == null); if (!reviewExists) { throw new ArgumentNullException("Review does not exist or it is deleted."); } var barReviewLike = await _cmContext.BarReviewLikes .Where(brl => brl.BarReviewId == reviewId && brl.UserId == userId) .FirstOrDefaultAsync(); if (barReviewLike != null) { barReviewLike.IsLiked = true; } else { var barReviewLikeNew = new BarReviewLike() { BarReviewId = reviewId, UserId = userId, IsLiked = true }; _cmContext.BarReviewLikes.Add(barReviewLikeNew); } try { await _cmContext.SaveChangesAsync(); } catch (Exception) { throw; } return(true); }