public async Task ReturnCorrectCurrentRatingValue() { const string testCocktailName = "TestCocktailName"; const string testCocktailRecipe = "TestCocktailRecipe"; const string testUserId1 = "userId1"; const string testUserId2 = "userId2"; const string testUserId3 = "userId3"; const int testCocktailId = 3; const int testNewRatingInt = 5; const int oldRatingsCount = 3; const int testRating1 = 1; const int testRating2 = 2; const int testRating3 = 5; var cocktailReview1 = new CocktailReviewEntity() { UserEntityId = testUserId1, CocktailEntityId = testCocktailId, Rating = testRating1 }; var cocktailReview2 = new CocktailReviewEntity() { UserEntityId = testUserId2, CocktailEntityId = testCocktailId, Rating = testRating2 }; var cocktailReview3 = new CocktailReviewEntity() { UserEntityId = testUserId3, CocktailEntityId = testCocktailId, Rating = testRating3 }; var options = TestUtilities.GetOptions(nameof(ReturnCorrectCurrentRatingValue)); var cocktail = new Cocktail() { Id = testCocktailId, Name = testCocktailName, Rating = 2.67, Recipe = testCocktailRecipe, }; using (var arrangeContext = new AppDBContext(options)) { await arrangeContext.CocktailReviews.AddAsync(cocktailReview1); await arrangeContext.CocktailReviews.AddAsync(cocktailReview2); await arrangeContext.CocktailReviews.AddAsync(cocktailReview3); await arrangeContext.SaveChangesAsync(); } using (var actContext = new AppDBContext(options)) { var sut = new CocktailService(actContext); var rating = await sut.CalculateAverageRating(cocktail, testNewRatingInt); var expectedRating = ((cocktail.Rating) + (testNewRatingInt - cocktail.Rating) / (oldRatingsCount + 1)); var expectedRatingRounded = Math.Round((double)expectedRating, 1); Assert.AreEqual(expectedRatingRounded, rating); } }
public async Task ReturnCorrectCurrentRatingsCount() { const string testCocktailName = "TestCocktailName"; const string testCocktailRecipe = "TestCocktailRecipe"; const string testUserId1 = "userId1"; const string testUserId2 = "userId2"; const string testUserId3 = "userId3"; const int testCocktailId = 3; const int testRating = 5; const int testNewRatingInt = 99; var cocktailReview1 = new CocktailReviewEntity() { UserEntityId = testUserId1, CocktailEntityId = testCocktailId, Rating = testRating }; var cocktailReview2 = new CocktailReviewEntity() { UserEntityId = testUserId2, CocktailEntityId = testCocktailId, Rating = testRating }; var cocktailReview3 = new CocktailReviewEntity() { UserEntityId = testUserId3, CocktailEntityId = testCocktailId, Rating = testRating }; var options = TestUtilities.GetOptions(nameof(ReturnCorrectCurrentRatingsCount)); var cocktail = new Cocktail() { Id = testCocktailId, Name = testCocktailName, Recipe = testCocktailRecipe, }; using (var arrangeContext = new AppDBContext(options)) { await arrangeContext.CocktailReviews.AddAsync(cocktailReview1); await arrangeContext.CocktailReviews.AddAsync(cocktailReview2); await arrangeContext.CocktailReviews.AddAsync(cocktailReview3); await arrangeContext.SaveChangesAsync(); } using (var actContext = new AppDBContext(options)) { var sut = new CocktailService(actContext); await sut.CalculateAverageRating(cocktail, testNewRatingInt); var currentRatingsCount = await actContext.CocktailReviews.Where(x => x.CocktailEntityId == cocktail.Id).CountAsync(); Assert.AreEqual(3, currentRatingsCount); } }