public void Delete_IdExisting_ReturnsDeletedProductStockWithSpecifiedId()
        {
            //Arrange
            int          existingId = 12;
            ProductStock expected   = new ProductStock
            {
                Id      = existingId,
                Product = new Product {
                    Id = 5
                },
                ProductSize = new ProductSize {
                    Id = 3
                },
                Quantity = 94
            };

            Mock <IProductStockRepository> productStockRepository = new Mock <IProductStockRepository>();

            productStockRepository.Setup(repo => repo.Delete(existingId)).
            Returns(expected);
            Mock <IProductRepository>     productRepository     = new Mock <IProductRepository>();
            Mock <IProductSizeRepository> productSizeRepository = new Mock <IProductSizeRepository>();

            IProductStockService productStockService = new ProductStockService(productStockRepository.Object,
                                                                               productRepository.Object,
                                                                               productSizeRepository.Object);

            //Act
            ProductStock actual = productStockService.Delete(existingId);

            //Assert
            Assert.Equal(expected, actual);
        }
        public void Create_IdSpecified_ThrowsArgumentException()
        {
            //Arrange
            ProductStock invalidProductStock = new ProductStock
            {
                Id      = 5,
                Product = new Product {
                    Id = 5
                },
                ProductSize = new ProductSize {
                    Id = 3
                },
                Quantity = 120
            };

            Mock <IProductStockRepository> productStockRepository = new Mock <IProductStockRepository>();
            Mock <IProductRepository>      productRepository      = new Mock <IProductRepository>();
            Mock <IProductSizeRepository>  productSizeRepository  = new Mock <IProductSizeRepository>();
            IProductStockService           productStockService    = new ProductStockService(productStockRepository.Object,
                                                                                            productRepository.Object,
                                                                                            productSizeRepository.Object);

            //Act
            Action actual = () => productStockService.Create(invalidProductStock);

            //Assert
            Assert.Throws <ArgumentException>(actual);
        }
        public void Update_IdNonExisting_ThrowsArgumentException()
        {
            //Arrange
            ProductStock nonExistingProductStock = new ProductStock
            {
                Id          = 10,
                Product     = null,
                ProductSize = null,
                Quantity    = 120
            };

            ProductStock nullProductStock = null;

            Mock <IProductStockRepository> productStockRepository = new Mock <IProductStockRepository>();

            productStockRepository.Setup(repo => repo.Read(nonExistingProductStock.Id)).
            Returns(nullProductStock);
            Mock <IProductRepository>     productRepository     = new Mock <IProductRepository>();
            Mock <IProductSizeRepository> productSizeRepository = new Mock <IProductSizeRepository>();
            IProductStockService          productStockService   = new ProductStockService(productStockRepository.Object,
                                                                                          productRepository.Object,
                                                                                          productSizeRepository.Object);

            //Act
            Action actual = () => productStockService.Update(nonExistingProductStock);

            //Assert
            Assert.Throws <ArgumentException>(actual);
        }
        public void Update_ProductStockValid_ReturnsUpdatedProductStock()
        {
            //Arrange
            ProductStock validProductStock = new ProductStock
            {
                Id          = 10,
                Product     = null,
                ProductSize = null,
                Quantity    = 120
            };
            ProductStock expected = validProductStock;

            Mock <IProductStockRepository> productStockRepository = new Mock <IProductStockRepository>();

            productStockRepository.Setup(repo => repo.Read(validProductStock.Id)).
            Returns(validProductStock);
            productStockRepository.Setup(repo => repo.Update(validProductStock)).
            Returns(expected);
            Mock <IProductRepository>     productRepository     = new Mock <IProductRepository>();
            Mock <IProductSizeRepository> productSizeRepository = new Mock <IProductSizeRepository>();

            IProductStockService productStockService = new ProductStockService(productStockRepository.Object,
                                                                               productRepository.Object,
                                                                               productSizeRepository.Object);

            //Act
            ProductStock actual = productStockService.Update(validProductStock);

            //Assert
            Assert.Equal(expected, actual);
        }
        public void Create_ProductSizeNonExisting_ThrowsArgumentException()
        {
            //Arrange
            ProductStock invalidProductStock = new ProductStock
            {
                Product = new Product {
                    Id = 5
                },
                ProductSize = new ProductSize {
                    Id = 3
                },
                Quantity = 120
            };

            ProductSize nullProductSize = null;

            Mock <IProductStockRepository> productStockRepository = new Mock <IProductStockRepository>();
            Mock <IProductRepository>      productRepository      = new Mock <IProductRepository>();

            productRepository.Setup(repo => repo.Read(invalidProductStock.Product.Id)).
            Returns(invalidProductStock.Product);
            Mock <IProductSizeRepository> productSizeRepository = new Mock <IProductSizeRepository>();

            productSizeRepository.Setup(repo => repo.Read(invalidProductStock.ProductSize.Id)).
            Returns(nullProductSize);
            IProductStockService productStockService = new ProductStockService(productStockRepository.Object,
                                                                               productRepository.Object,
                                                                               productSizeRepository.Object);

            //Act
            Action actual = () => productStockService.Create(invalidProductStock);

            //Assert
            Assert.Throws <ArgumentException>(actual);
        }
        public void Create_ProductStockValid_ReturnsCreatedProductStockWithId()
        {
            //Arrange
            ProductStock validProductStock = new ProductStock
            {
                Product = new Product {
                    Id = 5
                },
                ProductSize = new ProductSize {
                    Id = 3
                },
                Quantity = 120
            };
            ProductStock expected = new ProductStock
            {
                Id      = 1,
                Product = new Product {
                    Id = 5
                },
                ProductSize = new ProductSize {
                    Id = 3
                },
                Quantity = 120
            };

            Mock <IProductStockRepository> productStockRepository = new Mock <IProductStockRepository>();

            productStockRepository.Setup(repo => repo.Create(validProductStock)).
            Returns(expected);
            Mock <IProductRepository> productRepository = new Mock <IProductRepository>();

            productRepository.Setup(repo => repo.Read(validProductStock.Product.Id)).
            Returns(validProductStock.Product);
            Mock <IProductSizeRepository> productSizeRepository = new Mock <IProductSizeRepository>();

            productSizeRepository.Setup(repo => repo.Read(validProductStock.ProductSize.Id)).
            Returns(validProductStock.ProductSize);

            IProductStockService productStockService = new ProductStockService(productStockRepository.Object,
                                                                               productRepository.Object,
                                                                               productSizeRepository.Object);

            //Act
            ProductStock actual = productStockService.Create(validProductStock);

            //Assert
            Assert.Equal(expected, actual);
        }
        public void Create_ProductStockNull_ThrowsArgumentNullException()
        {
            //Arrange
            ProductStock invalidProductStock = null;

            Mock <IProductStockRepository> productStockRepository = new Mock <IProductStockRepository>();
            Mock <IProductRepository>      productRepository      = new Mock <IProductRepository>();
            Mock <IProductSizeRepository>  productSizeRepository  = new Mock <IProductSizeRepository>();
            IProductStockService           productStockService    = new ProductStockService(productStockRepository.Object,
                                                                                            productRepository.Object,
                                                                                            productSizeRepository.Object);

            //Act
            Action actual = () => productStockService.Create(invalidProductStock);

            //Assert
            Assert.Throws <ArgumentNullException>(actual);
        }
        public void Delete_IdNonExisting_ReturnsNull()
        {
            //Arrange
            int          nonExistingId = 12;
            ProductStock expected      = null;

            Mock <IProductStockRepository> productStockRepository = new Mock <IProductStockRepository>();

            productStockRepository.Setup(repo => repo.Delete(nonExistingId)).
            Returns(expected);
            Mock <IProductRepository>     productRepository     = new Mock <IProductRepository>();
            Mock <IProductSizeRepository> productSizeRepository = new Mock <IProductSizeRepository>();

            IProductStockService productStockService = new ProductStockService(productStockRepository.Object,
                                                                               productRepository.Object,
                                                                               productSizeRepository.Object);

            //Act
            ProductStock actual = productStockService.Delete(nonExistingId);

            //Assert
            Assert.Equal(expected, actual);
        }
Example #9
0
 public CartControllerIfsWithServices(ProductStockService productStockService, CartService cartService)
 {
     _productStockService = productStockService;
     _cartService         = cartService;
 }