public async Task RemoveRecipe_Should_Throw_When_RecipeDoesNotExist() { // Arrange var idToRemove = 2; var recipeToRemove = new Recipe { Id = 1, Name = "Recipe 1", CategoryId = null }; var repositoryMock = new Mock <IRecipeRepository>(); repositoryMock.Setup(r => r.Remove(recipeToRemove)); repositoryMock.Setup(r => r.GetAsync(recipeToRemove.Id)).ReturnsAsync(recipeToRemove); _unitOfWorkMock.SetupGet(uow => uow.Recipes).Returns(repositoryMock.Object); _unitOfWorkMock.Setup(uow => uow.SaveChangesAsync()); // Act & Assert var exception = await Assert.ThrowsAsync <NotFoundException>(async() => await _controller.RemoveRecipeAsync(idToRemove)); Assert.EndsWith("not found.", exception.Message); repositoryMock.Verify(r => r.GetAsync(idToRemove), Times.Once); _unitOfWorkMock.VerifyGet(uow => uow.Recipes, Times.AtLeastOnce); _unitOfWorkMock.Verify(uow => uow.SaveChangesAsync(), Times.Never); }
public async Task <IActionResult> OnPostDeleteAsync(int id) { await recipeController.RemoveRecipeAsync(id); return(RedirectToPage("Index")); }