public void AddFavoriteProduct_WithExistentSameFavoriteProduct_ShouldReturnFalse() { string errorMessagePrefix = "FavoriteProductsService AddFavoriteProduct() method does not work properly."; var context = UniShopDbContextInMemoryFactory.InitializeContext(); this.SeedData(context); this.favoriteProductsService = new FavoriteProductsService(context, new UniShopUsersService(context)); UniShopUser user = context.Users.First(); int productId = context.Products.First().Id; UniShopUserFavoriteProduct testFavoriteProduct = new UniShopUserFavoriteProduct { UniShopUserId = user.Id, ProductId = productId }; context.Add(testFavoriteProduct); context.SaveChanges(); int expectedCount = user.FavoriteProducts.Count(); bool actualResult = this.favoriteProductsService.AddFavoriteProduct(productId, user.UserName); int actualCount = user.FavoriteProducts.Count(); Assert.False(actualResult, errorMessagePrefix); Assert.Equal(expectedCount, actualCount); }
public bool AddFavoriteProduct(int productId, string username) { var user = this.uniShopUsersService.GetUserByUsername(username); var isFavoriteProductExist = this.context.UniShopFavoriteProducts.Any(p => p.ProductId == productId); var isProductExist = this.context.Products.Any(p => p.Id == productId); if (user == null || isFavoriteProductExist || !isProductExist) { return(false); } var favoriteProduct = new UniShopUserFavoriteProduct { ProductId = productId, UniShopUserId = user.Id }; this.context.UniShopFavoriteProducts.Add(favoriteProduct); int result = this.context.SaveChanges(); return(result > 0); }