public void ShouldDeleteOnPostback()
        {
            // Arrange
            const int id = 1;
            Person person = new Person { Id = 1, FirstName = "TestFirstName1", LastName = "TestLastName1" };

            var repositoryMock = new Mock<IRepository>();
            PersonController controller = new PersonController(repositoryMock.Object);

            repositoryMock.Setup(r => r.GetById<Person>(id)).Returns(person);

            // Act
            ActionResult result = controller.DeleteConfirmed(id);

            // Assert
            repositoryMock.Verify(r => r.GetById<Person>(id), Times.Once());
            repositoryMock.Verify(r => r.Delete(person), Times.Once());
            repositoryMock.Verify(r => r.SaveChanges(), Times.Once());

            // Assert
            Assert.IsNotNull(result);
            // check that the controller returns a redirect to action where the action method is "Index"
            Assert.AreEqual(typeof(RedirectToRouteResult), result.GetType());
            Assert.AreEqual("Index", (((RedirectToRouteResult)result)).RouteValues["action"]);
        }