public void Post_Delete_ShouldRedirectToIndex()
        {
            // Arrange
            var controller = InitializeController();
            var model = new DeleteBeerViewModel { ID = TestData.Beers.First().ID };

            // Act
            var result = controller.Delete(model) as RedirectToRouteResult;

            // Assert
            result.RouteValues["action"].ShouldEqual("Index");
        }
        public void Post_Delete_ShouldReturnNotFoundIfBeerDoesNotExists()
        {
            // Arrange
            var persistenceContext = new FakePersistenceContext();
            var controller = InitializeController(persistenceContext);
            var model = new DeleteBeerViewModel { ID = 0 };

            // Act
            var result = controller.Delete(model);

            // Assert
            result.ShouldBeType<HttpNotFoundResult>();
            persistenceContext.Saved.ShouldBeFalse();
        }
        public void Post_Delete_ShouldDeleteBeer()
        {
            // Arrange
            var persistenceContext = new FakePersistenceContext();
            var controller = InitializeController(persistenceContext);
            var model = new DeleteBeerViewModel { ID = TestData.Beers.First().ID };

            // Act
            var result = controller.Delete(model) as ViewResult;

            // Assert
            persistenceContext.Saved.ShouldBeTrue();
            persistenceContext.Removed.Count.ShouldEqual(1);
        }