public void GetProductByKeysReturnsCorrectItemsFromRepository() { //// Arrange Guid productKey = Guid.NewGuid(); ProductActual productActual = CreateFakeProduct(productKey, 20.0M); Guid productKey2 = Guid.NewGuid(); ProductActual product2 = CreateFakeProduct(productKey2, 30.0M); Guid productKey3 = Guid.NewGuid(); ProductActual product3 = CreateFakeProduct(productKey3, 40.0M); List <ProductActual> productsList = new List <ProductActual>(); productsList.Add(productActual); productsList.Add(product3); var productKeys = new[] { productKey, productKey3 }; var MockProductService = new Mock <IProductService>(); MockProductService.Setup(cs => cs.GetByKeys(productKeys)).Returns(productsList); MerchelloContext merchelloContext = GetMerchelloContext(MockProductService.Object); ProductApiController ctrl = new ProductApiController(merchelloContext, tempUmbracoContext); //// Act var result = ctrl.GetProducts(productKeys); //// Assert Assert.AreEqual(productsList, result); }
public void GetAllProductIds() { var mockRepository = new Mock <ProductRepository>(); var listIds = new List <long>(); listIds.Add(1); listIds.Add(2); mockRepository.Setup(mock => mock.GetAllIds()).Returns(listIds); OkNegotiatedContentResult <AllProductsRestResponse> response = null; var controller = new ProductApiController(mockRepository.Object) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; controller.Request.RequestUri = new Uri("http://localhost/fake-api"); response = controller.GetProducts() as OkNegotiatedContentResult <AllProductsRestResponse>; mockRepository.Verify(mock => mock.GetAllIds(), Times.Once()); Assert.AreEqual(2, response.Content.Products.Count); var firstProduct = response.Content.Products.Find(a => a.Id == 1); var secondProduct = response.Content.Products.Find(a => a.Id == 2); Assert.IsNotNull(firstProduct); Assert.IsNotNull(secondProduct); Assert.IsTrue(firstProduct.DetailsUrl.Equals(controller.Request.RequestUri + "/1", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(secondProduct.DetailsUrl.Equals(controller.Request.RequestUri + "/2", StringComparison.OrdinalIgnoreCase)); }