public void ShouldDisplayDelete()
        {
            // 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.Delete(id);

            // Assert
            repositoryMock.Verify(r => r.GetById<Person>(id), Times.Exactly(1));

            Assert.IsNotNull(result);

            // check the Model
            Assert.IsNotNull(result);
            Assert.AreEqual(typeof(Person), ((ViewResultBase)(result)).Model.GetType());
            Assert.AreEqual(person.Id, ((Person)((ViewResultBase)(result)).Model).Id);
        }