public async Task DeletePoint_Should_ReturnOk() { // Arrange var adapterMock = new Mock <ITodoPointAdapter>(); var loggerMock = new Mock <ILogger <PointController> >(); var testPoint = new TodoPointViewModel { PointId = 2, TodoId = 1, Description = "test point 2" }; var testPoints = GetTestPoints(); adapterMock.Setup(x => x.DeletePoint(It.IsAny <int>())) .Callback(() => testPoints.Remove(testPoints.Where(x => x.PointId == testPoint.PointId).FirstOrDefault())); var controller = new PointController(adapterMock.Object, loggerMock.Object); // Act var result = await controller.DeletePoint(testPoint.PointId, testPoint); // Assert var actionResult = Assert.IsAssignableFrom <ActionResult <TodoPointViewModel> >(result); var returnValue = Assert.IsAssignableFrom <OkResult>(actionResult.Result); Assert.Single(testPoints); }