Beispiel #1
0
        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));
        }
Beispiel #2
0
        public void ThrowArgumentNullException_WhenModelIsNull()
        {
            //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.AddProduct(null));
        }
Beispiel #3
0
        public void InvokeSaveChanges_WhenModelIsAcceptable()
        {
            //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.AddProduct(productToAdd);

            //Assert
            mockContext.Verify(v => v.SaveChanges(), Times.Once);
        }
Beispiel #4
0
        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));
        }