public void SaveProducts() { var mockRepository = new Mock <ProductRepository>(); mockRepository.Setup(mock => mock.SaveAsync(It.IsAny <List <Product> >())) .Returns(Task.CompletedTask); List <ProductDto> dtoList = new List <ProductDto>(); dtoList.Add(new ProductDto { Name = "test", Quantity = 1, SalesAmount = 2 }); dtoList.Add(new ProductDto { Name = "test2", Quantity = 2, SalesAmount = 20 }); OkNegotiatedContentResult <RestResponse> response = null; Task.Run(() => { var controller = new ProductApiController(mockRepository.Object) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; response = controller.Save(dtoList).GetAwaiter().GetResult() as OkNegotiatedContentResult <RestResponse>; } ).GetAwaiter().GetResult(); mockRepository.Verify(mock => mock.SaveAsync(It.IsAny <List <Product> >()), Times.Once()); Assert.IsNotNull(response); Assert.IsFalse(String.IsNullOrWhiteSpace(response.Content.Id)); Assert.IsTrue(response.Content.Timestamp > 0); }