public void GetIndividualProduct() { var mockRepository = new Mock <ProductRepository>(); mockRepository.Setup(mock => mock.FindById(1)) .ReturnsAsync(new Product { Id = 1, Name = "test", Quantity = 1, SalesAmount = 2 }); OkNegotiatedContentResult <ProductDetailsResponse> response = null; Task.Run(() => { var controller = new ProductApiController(mockRepository.Object) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; response = controller.Details(1).GetAwaiter().GetResult() as OkNegotiatedContentResult <ProductDetailsResponse>; } ).GetAwaiter().GetResult(); mockRepository.Verify(mock => mock.FindById(1), Times.Once()); Assert.IsNotNull(response); Assert.AreEqual(1, response.Content.Product.Id); Assert.AreEqual("test", response.Content.Product.Name); }