public async void AddProductToOrderAsyncTest() { //arrange Mock <IProductRepositoryAsync> productRepository = new Mock <IProductRepositoryAsync>(); Mock <IOrderRepositoryAsync> orderRepository = new Mock <IOrderRepositoryAsync>(); Mock <Order> mockOrder = new Mock <Order>(); Product product = new Product("p1", "Pedigree Chum", 0.70, 1.42); EcommerceService service = new EcommerceService(productRepository.Object, orderRepository.Object); //Setup the mock Order such that its LineItems property returns a List containing one LineItem, comprising the Product defined above mockOrder.Setup(o => o.LineItems).Returns(new List <LineItem> { new LineItem { Product = product } }); productRepository.Setup(p => p.SelectByIdAsync("p1")).Returns(Task.FromResult <Product>(product)); orderRepository.Setup(o => o.SelectProvisionalOrderByAccountIdAsync("acc1")).Returns(Task.FromResult <Order>(mockOrder.Object)); //act Order order = await service.AddProductToOrderAsync("p1", "acc1"); //assert Assert.Equal(product, order.LineItems.Single(li => li.Product.Id == "p1").Product); orderRepository.Verify(or => or.UpdateAsync(order)); }
public async void SelectOrderAsync_Calls_SelectByOrderIdAsync_Method_Of_IOrderRepositoryAsync() { //arrange var orderRepository = new Mock <IOrderRepositoryAsync>(); EcommerceService service = new EcommerceService(null, orderRepository.Object); //act await service.SelectOrderAsync(1); //assert orderRepository.Verify(repo => repo.SelectByOrderIdAsync(1)); }
public async void SelectProductAsync_WhenNotPassedString_CallsSelectAllAsyncMethodOfIProductRepositoryAsync() { //arrange Mock <IProductRepositoryAsync> productRepository = new Mock <IProductRepositoryAsync>(); EcommerceService service = new EcommerceService(productRepository.Object, null); //act await service.SelectProductsAsync(); //assert productRepository.Verify(repo => repo.SelectAllAsync()); }
public async void ConfirmOrderAsync_WhenPassedAccountIdWithNoProvisionalOrder_ThrowsInvalidOperationException() { //arrange Mock <IOrderRepositoryAsync> orderRepository = new Mock <IOrderRepositoryAsync>(); Order order = null; orderRepository.Setup(or => or.SelectProvisionalOrderByAccountIdAsync(It.IsAny <string>())).Returns(Task.FromResult(order)); IEcommerceService service = new EcommerceService(null, orderRepository.Object); //act //assert await Assert.ThrowsAsync <InvalidOperationException>(() => service.ConfirmOrderAsync("acc1")); }
public async void SelectProductAsync_WhenPassedString_CallsSelectByNameAsyncMethodOfIProductRepositoryAsync() { //arrange Mock <IProductRepositoryAsync> productRepository = new Mock <IProductRepositoryAsync>(); ICollection <Product> products = new List <Product> { new Product("p1", "Pedigree Chum", 0.70, 1.42), new Product("p2", "Knife", 0.60, 1.31) }; productRepository.Setup(repo => repo.SelectByNameAsync("e")) .Returns(Task.FromResult(products)); EcommerceService service = new EcommerceService(productRepository.Object, null); //act ICollection <Product> result = await service.SelectProductsAsync("e"); //assert productRepository.Verify(repo => repo.SelectByNameAsync("e")); Assert.Equal(products, result); }
public EcommerceitemDetailsController() { UnitOfWork = new UnitOfWork(); ecommerceService = new EcommerceService(UnitOfWork); }
public CatagorywiseSalesController() { UnitOfWork = new UnitOfWork(); ecommerceService = new EcommerceService(UnitOfWork); customerRegisterService = new CustomerRegisterService(UnitOfWork); }