public void Modify_Existing_Data_Should_Update_The_Data() { var mockRepo = new Mock<IRepository<NewsRecord>>(); var news = new List<NewsRecord>() { new NewsRecord { Id = 1, Title = "HopHop1", Content = "The hoppy hop", PublishDate = DateTime.Now }, new NewsRecord { Id = 2, Title = "HopHop2", Content = "The hoppy hop2", PublishDate = DateTime.Now.AddDays(+5) }, new NewsRecord { Id = 3, Title = "HopHop3", Content = "The hoppy hop3", PublishDate = DateTime.Now.AddDays(+10) } }; mockRepo.Setup(r => r.Update(It.IsAny<NewsRecord>())) .Callback((NewsRecord n) => news[news.FindIndex(x => x.Id == n.Id)] = n); var controller = new NewsController(mockRepo.Object); this.SetupController(controller, "NewsController"); var newsFromRepo = news.SingleOrDefault(n => n.Title == "HopHop1"); var newsFromRepoId = newsFromRepo.Id; var modifyModel = new NewsRecordBindingModel() { Title = "Changed Shit", Content = "Messy shit", }; var response = controller.PutNewsRecord(newsFromRepoId, modifyModel).ExecuteAsync(CancellationToken.None).Result; var newsAfterUpdate = news.SingleOrDefault(n => n.Id == newsFromRepo.Id); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.AreEqual("Changed Shit", newsAfterUpdate.Title); }