public void Can_Delete_Nonexisting_Log() { // Arrange - creating a sound var log = new TimerLog { Activity = new TimerActivity(), Date = DateTime.Now, ID = 2 }; // Arrange - create the mock repository var mockRepository = new Mock <IRepository <TimerLog> >(); mockRepository.Setup(m => m.GetAll()).Returns(new[] { new TimerLog { Activity = new TimerActivity(), Date = DateTime.Now, ID = 1 }, new TimerLog { Activity = new TimerActivity(), Date = DateTime.Now, ID = 3 } }.AsQueryable); // Arrange - create a controller var target = new TimerController(null, null, mockRepository.Object); // Act - delete the product var result = target.DeleteLog(log.ID); // Assert - ensure that the repository delete method was // called with the correct Log mockRepository.Verify(m => m.Delete(log.ID)); Assert.Equal(2, mockRepository.Object.GetAll().Count()); }