public static BarReview ToContract(this BarReviewEntity entity) { if (entity == null) { return(null); } return(new BarReview { Id = entity.Id, User = entity.User.ToContract(), Bar = entity.Bar.ToContract(), Rating = entity.Rating, Review = entity.Review }); }
public async Task ReturnCorrectCurrentRatingValue() { const string testBarName = "TestBarName"; const string testBarAddress = "TestBarAddress"; var testBarCocktails = new List <Cocktail>() { new Cocktail { Name = "testCocktail1", Recipe = "TestRecipe1", Ingredients = new List <Ingredient>() } }; const int testBarId = 3; const int testNewRatingInt = 5; const int oldRatingsCount = 3; const int testRating1 = 1; const int testRating2 = 2; const int testRating3 = 5; const string testUserId1 = "userId1"; const string testUserId2 = "userId2"; const string testUserId3 = "userId3"; var barReview1 = new BarReviewEntity() { UserEntityId = testUserId1, BarEntityId = testBarId, Rating = testRating1 }; var barReview2 = new BarReviewEntity() { UserEntityId = testUserId2, BarEntityId = testBarId, Rating = testRating2 }; var barReview3 = new BarReviewEntity() { UserEntityId = testUserId3, BarEntityId = testBarId, Rating = testRating3 }; var options = TestUtilities.GetOptions(nameof(ReturnCorrectCurrentRatingValue)); var bar = new Bar() { Id = testBarId, Name = testBarName, Address = testBarAddress, Rating = 2.67, Cocktails = testBarCocktails }; using (var arrangeContext = new AppDBContext(options)) { await arrangeContext.BarReviews.AddAsync(barReview1); await arrangeContext.BarReviews.AddAsync(barReview2); await arrangeContext.BarReviews.AddAsync(barReview3); await arrangeContext.SaveChangesAsync(); } using (var actContext = new AppDBContext(options)) { var sut = new BarService(actContext); var rating = await sut.CalculateAverageRating(bar, testNewRatingInt); var expectedRating = ((bar.Rating) + (testNewRatingInt - bar.Rating) / (oldRatingsCount + 1)); var expectedRatingRounded = Math.Round((double)expectedRating, 1); Assert.AreEqual(expectedRatingRounded, rating); } }
public async Task ReturnCorrectCurrentRatingsCount() { const string testBarName = "TestBarName"; const string testBarAddress = "TestBarAddress"; var testBarCocktails = new List <Cocktail>() { new Cocktail { Name = "testCocktail1", Recipe = "TestRecipe1", Ingredients = new List <Ingredient>() } }; const string testUserId1 = "userId1"; const string testUserId2 = "userId2"; const string testUserId3 = "userId3"; const int testBarId = 3; const int testRating = 5; const int testNewRatingInt = 99; var barReview1 = new BarReviewEntity() { UserEntityId = testUserId1, BarEntityId = testBarId, Rating = testRating }; var barReview2 = new BarReviewEntity() { UserEntityId = testUserId2, BarEntityId = testBarId, Rating = testRating }; var barReview3 = new BarReviewEntity() { UserEntityId = testUserId3, BarEntityId = testBarId, Rating = testRating }; var options = TestUtilities.GetOptions(nameof(ReturnCorrectCurrentRatingsCount)); var bar = new Bar() { Id = testBarId, Name = testBarName, Address = testBarAddress, Cocktails = testBarCocktails }; using (var arrangeContext = new AppDBContext(options)) { await arrangeContext.BarReviews.AddAsync(barReview1); await arrangeContext.BarReviews.AddAsync(barReview2); await arrangeContext.BarReviews.AddAsync(barReview3); await arrangeContext.SaveChangesAsync(); } using (var actContext = new AppDBContext(options)) { var sut = new BarService(actContext); await sut.CalculateAverageRating(bar, testNewRatingInt); var currentRatingsCount = await actContext.BarReviews.Where(x => x.BarEntityId == bar.Id).CountAsync(); Assert.AreEqual(3, currentRatingsCount); } }