예제 #1
0
        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);
        }
예제 #2
0
        public async Task <IActionResult> OnPostDeleteAsync(int id)
        {
            await recipeController.RemoveRecipeAsync(id);

            return(RedirectToPage("Index"));
        }