public void ReturnCorrectAmountOfProducts_WhenInvoked() { // Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var mockContext = new Mock <IOnlineStoreContext>(); var productsMock = new List <Product> { new Product { Name = "Testproduct", Quantity = 5, Category = new Category() { Name = "Patki" } } }.GetQueryableMockDbSet(); var fakemapper = new Mock <IMapper>(); var fakeCategoryService = new Mock <ICategoryService>(); mockContext.Setup(s => s.Products).Returns(productsMock.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); // Act var products = service.GetProductsByCategoryName("Patki"); //Assert Assert.AreEqual(1, products.Count()); }
public void ReturnCorrectData_WhenInvoked() { // Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var mockContext = new Mock <IOnlineStoreContext>(); var products = new List <Product> { new Product { Name = "Testproduct", Quantity = 5, Category = new Category { Name = "Patki" } } }; var fakemapper = new Mock <IMapper>(); var fakeCategoryService = new Mock <ICategoryService>(); var mockSet = new Mock <DbSet <Product> >(); mockSet.SetupData(products); mockContext.Setup(s => s.Products).Returns(mockSet.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); // Act var productsGot = service.GetAllProducts(); //Assert Assert.AreEqual(products.Count, productsGot.Count()); }
public void ReturnInstanceOfTypeIEnumerableProductModel_WhenInvoked() { // Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var mockContext = new Mock <IOnlineStoreContext>(); var productsMock = new List <Product> { new Product { Name = "Testproduct", Quantity = 5, Category = new Category() { Name = "Patki" } } }.GetQueryableMockDbSet(); var fakemapper = new Mock <IMapper>(); var fakeCategoryService = new Mock <ICategoryService>(); mockContext.Setup(s => s.Products).Returns(productsMock.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); // Act var products = service.GetProductsByCategoryName("Patki"); //Assert Assert.IsInstanceOfType(products, typeof(IEnumerable <ProductModel>)); }
public void ThrowArgumentException_WhenProductExists() { //Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var mockContext = new Mock <IOnlineStoreContext>(); var products = new List <Product> { new Product { Name = "Testproduct", Quantity = 5, Category = new Category { Name = "Patki" } } }; var fakemapper = new Mock <IMapper>(); var fakeCategoryService = new Mock <ICategoryService>(); var mockSet = new Mock <DbSet <Product> >(); mockSet.SetupData(products); mockContext.Setup(s => s.Products).Returns(mockSet.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act var productToAdd = new ProductImportModel { Name = "Testproduct" }; //Assert Assert.ThrowsException <ArgumentException>(() => service.AddProduct(productToAdd)); }
public void InvokeAddMethod_WhenModelsAreValid() { //Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var productToImport = new ProductImportModel { Category = "TestCategory", Name = "TestProduct 2", PurchasePrice = 50m, Quantity = 5, Supplier = "TestSupplier" }; var productToImport2 = new ProductImportModel { Category = "TestCategory", Name = "TestProduct 5", PurchasePrice = 50m, Quantity = 5, Supplier = "TestSupplier" }; var productsToImport = new List <ProductImportModel> { productToImport, productToImport2 }; var mockContext = new Mock <IOnlineStoreContext>(); var productsMock = new List <Product> ().GetQueryableMockDbSet(); var categoriesMock = new List <Category> { new Category { Name = "TestCategory" } }.GetQueryableMockDbSet(); var suppliersMock = new List <Supplier> { new Supplier { Name = "TestSupplier" } }.GetQueryableMockDbSet(); var fakemapper = new Mock <IMapper>(); fakemapper.SetupSequence(x => x.Map <IProductImportModel, Product>(It.IsAny <IProductImportModel>())).Returns(new Product { Name = productToImport.Name, PurchasePrice = productToImport.PurchasePrice, SellingPrice = productToImport.PurchasePrice * 1.5m, Quantity = productToImport.Quantity }).Returns(new Product { Name = productToImport2.Name, PurchasePrice = productToImport2.PurchasePrice, SellingPrice = productToImport2.PurchasePrice * 1.5m, Quantity = productToImport2.Quantity }); var fakeCategoryService = new Mock <ICategoryService>(); mockContext.Setup(s => s.Categories).Returns(categoriesMock.Object); mockContext.Setup(s => s.Suppliers).Returns(suppliersMock.Object); mockContext.Setup(s => s.Products).Returns(productsMock.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act service.AddProductRange(productsToImport); //Assert productsMock.Verify(v => v.Add(It.IsAny <Product>()), Times.Exactly(2)); }
public void ThrowNullArgumentException_WhenProductModelsIsNull() { //Arrange var fakeContext = new Mock <IOnlineStoreContext>(); var fakemapper = new Mock <IMapper>(); var fakeCategoryService = new Mock <ICategoryService>(); var service = new Logic.Services.ProductService(fakeContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act && Assert Assert.ThrowsException <ArgumentNullException>(() => service.AddProductRange(null)); }
public void ThrowArgumentNullException_WhenInputStringIsNull() { //Arrange var fakeContext = new Mock <IOnlineStoreContext>(); var fakemapper = new Mock <IMapper>(); var fakeCategoryService = new Mock <ICategoryService>(); var service = new Logic.Services.ProductService(fakeContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act && Assert Assert.ThrowsException <ArgumentNullException>(() => service.RemoveProductByName(null)); }
public void InvokeCategoryServiceCreate_WhenCategoryNotAvailable() { //Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var productToImport = new ProductImportModel { Category = "Patkiii", Name = "TestProduct", PurchasePrice = 50m, Quantity = 5, Supplier = "TestSupplier" }; var productsToImport = new List <ProductImportModel> { productToImport }; var mockContext = new Mock <IOnlineStoreContext>(); var productsMock = new List <Product>().GetQueryableMockDbSet(); var categoriesMock = new List <Category> { new Category { Name = "TestCategory" } }.GetQueryableMockDbSet(); var categoriesAddedMock = new List <Category> { new Category { Name = "Patkiii" } }.GetQueryableMockDbSet(); var suppliersMock = new List <Supplier> { new Supplier { Name = "TestSupplier" } }.GetQueryableMockDbSet(); var fakemapper = new Mock <IMapper>(); fakemapper.Setup(x => x.Map <IProductImportModel, Product>(It.IsAny <IProductImportModel>())).Returns(new Product { Name = productToImport.Name, PurchasePrice = productToImport.PurchasePrice, SellingPrice = productToImport.PurchasePrice * 1.5m, Quantity = productToImport.Quantity }); var fakeCategoryService = new Mock <ICategoryService>(); mockContext.SetupSequence(s => s.Categories).Returns(categoriesMock.Object).Returns(categoriesAddedMock.Object); mockContext.Setup(s => s.Suppliers).Returns(suppliersMock.Object); mockContext.Setup(s => s.Products).Returns(productsMock.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act service.AddProductRange(productsToImport); //Assert fakeCategoryService.Verify(v => v.Create(It.IsAny <string>()), Times.Once); }
public void InvokeRemoveMethod_WhenProductIsFound() { //Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var productToAdd = new ProductImportModel { Name = "Testproduct2", Supplier = "TestSupplier", Category = "TestCategory", PurchasePrice = 5.50m, Quantity = 5 }; var mockContext = new Mock <IOnlineStoreContext>(); var productsMock = new List <Product> { new Product { Name = "Testproduct", Quantity = 5, Category = new Category { Name = "Patki" } } }.GetQueryableMockDbSet(); var categoriesMock = new List <Category> { new Category { Name = "TestCategory" } }.GetQueryableMockDbSet(); var suppliersMock = new List <Supplier> { new Supplier { Name = "TestSupplier" } }.GetQueryableMockDbSet(); var fakemapper = new Mock <IMapper>(); fakemapper.Setup(x => x.Map <Product>(It.IsAny <IProductImportModel>())).Returns(new Product { Name = productToAdd.Name, PurchasePrice = productToAdd.PurchasePrice, SellingPrice = productToAdd.PurchasePrice * 1.5m }); var fakeCategoryService = new Mock <ICategoryService>(); mockContext.Setup(s => s.Categories).Returns(categoriesMock.Object); mockContext.Setup(s => s.Suppliers).Returns(suppliersMock.Object); mockContext.Setup(s => s.Products).Returns(productsMock.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act service.RemoveProductByName("Testproduct"); //Assert productsMock.Verify(v => v.Remove(It.IsNotNull <Product>()), Times.Once); }
public void ThrowArgumentException_WhenSupplierNotFound() { //Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var productToImport = new ProductImportModel { Category = "TestCategory", Name = "TestProduct", PurchasePrice = 50m, Quantity = 5, Supplier = "Pesho" }; var productsToImport = new List <ProductImportModel> { productToImport }; var mockContext = new Mock <IOnlineStoreContext>(); var productsMock = new List <Product>().GetQueryableMockDbSet(); var categoriesMock = new List <Category> { new Category { Name = "TestCategory" } }.GetQueryableMockDbSet(); var suppliersMock = new List <Supplier> { new Supplier { Name = "TestSupplier" } }.GetQueryableMockDbSet(); var fakemapper = new Mock <IMapper>(); fakemapper.Setup(x => x.Map <IProductImportModel, Product>(It.IsAny <IProductImportModel>())).Returns(new Product { Name = productToImport.Name, PurchasePrice = productToImport.PurchasePrice, SellingPrice = productToImport.PurchasePrice * 1.5m, Quantity = productToImport.Quantity }); var fakeCategoryService = new Mock <ICategoryService>(); mockContext.Setup(s => s.Categories).Returns(categoriesMock.Object); mockContext.Setup(s => s.Suppliers).Returns(suppliersMock.Object); mockContext.Setup(s => s.Products).Returns(productsMock.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act && Assert Assert.ThrowsException <ArgumentException>(() => service.AddProductRange(productsToImport)); }
public void ThrowArgumentException_WhenCategoryNotFound() { //Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var mockContext = new Mock <IOnlineStoreContext>(); var products = new List <Product> { new Product { Name = "Testproduct", Quantity = 5, Category = new Category { Name = "Patki" } } }; var categoriesMock = new List <Category> { new Category { Name = "TestCategory" } }.GetQueryableMockDbSet(); var suppliersMock = new List <Supplier> { new Supplier { Name = "TestSupplier" } }.GetQueryableMockDbSet(); var fakemapper = new Mock <IMapper>(); var fakeCategoryService = new Mock <ICategoryService>(); var mockSet = new Mock <DbSet <Product> >(); mockSet.SetupData(products); mockContext.Setup(s => s.Products).Returns(mockSet.Object); mockContext.Setup(s => s.Categories).Returns(categoriesMock.Object); mockContext.Setup(s => s.Suppliers).Returns(suppliersMock.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act var productToAdd = new ProductImportModel { Name = "Testproduct2", Category = "Gubi" }; //Assert Assert.ThrowsException <ArgumentException>(() => service.AddProduct(productToAdd)); }
public void ThrowArgumentException_WhenProductNotFound() { //Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var mockContext = new Mock <IOnlineStoreContext>(); var productsMock = new List <Product> { new Product { Name = "Testproduct", Quantity = 5, Category = new Category { Name = "Patki" } } }.GetQueryableMockDbSet(); var fakemapper = new Mock <IMapper>(); var fakeCategoryService = new Mock <ICategoryService>(); mockContext.Setup(s => s.Products).Returns(productsMock.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act && Assert Assert.ThrowsException <ArgumentException>(() => service.RemoveProductByName("Patka")); }
public void ReturnInstanceOfTypeIProductModel_WhenProductExists() { //Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var mockContext = new Mock <IOnlineStoreContext>(); var productToAdd = new Product { Name = "Testproduct", Quantity = 5, Category = new Category { Name = "Patki" }, Supplier = new Supplier() { Name = "Pesho" }, PurchasePrice = 50m, SellingPrice = 75m }; var productsMock = new List <Product> { productToAdd }.GetQueryableMockDbSet(); var fakemapper = new Mock <IMapper>(); fakemapper.Setup(x => x.Map <IProductModel>(It.IsAny <Product>())).Returns(new ProductModel { Name = productToAdd.Name, PurchasePrice = productToAdd.PurchasePrice, SellingPrice = productToAdd.PurchasePrice * 1.5m, Quantity = productToAdd.Quantity, CategoryName = productToAdd.Category.Name }); var fakeCategoryService = new Mock <ICategoryService>(); mockContext.Setup(s => s.Products).Returns(productsMock.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act var productFound = service.FindProductByName("Testproduct"); // Assert Assert.IsInstanceOfType(productFound, typeof(IProductModel)); }
public void ReturnFalse_WhenProductDoesNotExist() { //Arrange Mapper.Reset(); AutomapperConfiguration.Initialize(); var mockContext = new Mock <IOnlineStoreContext>(); var productsMock = new List <Product> { new Product { Name = "Pesho" } }.GetQueryableMockDbSet(); var fakemapper = new Mock <IMapper>(); var fakeCategoryService = new Mock <ICategoryService>(); mockContext.Setup(s => s.Products).Returns(productsMock.Object); var service = new Logic.Services.ProductService(mockContext.Object, fakemapper.Object, fakeCategoryService.Object); //Act var searchResult = service.ProductExistsByName("Pesho go nqma"); //Assert Assert.IsFalse(searchResult); }