public void TestCreateProduct_ShouldCallRepositoryAdd(string name, string categoryName, int quantity, decimal price, double volume, string maker, string imageMimeType) { var mockedProduct = new Mock <Product>(); var factory = new Mock <IProductFactory>(); factory.Setup(f => f.CreateProduct(It.IsAny <string>(), It.IsAny <Category>(), It.IsAny <int>(), It.IsAny <decimal>(), It.IsAny <double>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <byte[]>())) .Returns(mockedProduct.Object); var repository = new Mock <IRepository <Product> >(); var categoryService = new Mock <ICategoryService>(); categoryService.Setup(x => x.GetCategoryByName(It.IsAny <string>())).Returns(It.IsAny <Category>()); var unitOfWork = new Mock <IUnitOfWork>(); var service = new ZobShop.Services.ProductService(factory.Object, repository.Object, categoryService.Object, unitOfWork.Object); var buffer = new byte[2]; service.CreateProduct(name, categoryName, quantity, price, volume, maker, imageMimeType, buffer); repository.Verify(x => x.Add(mockedProduct.Object), Times.Once); }
public void TestCreateProduct_ServiceReturnsNull_ShouldCallCategoryServiceCreateCategoryWithCorrectValue(string name, string categoryName, int quantity, decimal price, double volume, string maker, string imageMimeType) { var factory = new Mock <IProductFactory>(); var repository = new Mock <IRepository <Product> >(); var categoryService = new Mock <ICategoryService>(); categoryService.Setup(x => x.GetCategoryByName(It.IsAny <string>())).Returns(It.IsAny <Category>()); var unitOfWork = new Mock <IUnitOfWork>(); var service = new ZobShop.Services.ProductService(factory.Object, repository.Object, categoryService.Object, unitOfWork.Object); var buffer = new byte[3]; service.CreateProduct(name, categoryName, quantity, price, volume, maker, imageMimeType, buffer); categoryService.Verify(x => x.CreateCategory(categoryName), Times.Once); }