示例#1
0
        /// <summary>
        /// Build a Product
        /// </summary>
        /// <returns></returns>
        public static Product BuildProduct(BelezaWebContext db, out int idItem, bool saveData = true)
        {
            idItem = 0;

            var product = new Product
            {
                Sku  = 909090,
                Name = "Test Product"
            };

            product.Warehouses.Add(new Models.Warehouse
            {
                Locality = "SP",
                Quantity = 250,
                Type     = Common.WarehouseType.ECOMMERCE.ToString()
            });

            product.Warehouses.Add(new Models.Warehouse
            {
                Locality = "MOEMA",
                Quantity = 255,
                Type     = Common.WarehouseType.PHYSICAL_STORE.ToString()
            });

            if (saveData)
            {
                db.Products.Add(product);
                db.SaveChanges();
                idItem = product.Id;
            }

            return(product);
        }
示例#2
0
        /// <summary>
        /// Create a data
        /// </summary>
        /// <param name="serviceProvider"></param>
        public static void CreateData(IServiceProvider serviceProvider)
        {
            using (var context = new BelezaWebContext(serviceProvider.GetRequiredService <DbContextOptions <BelezaWebContext> >()))
            {
                // Look for any Products
                if (context.Products.Any())
                {
                    return;   // Data was already exists
                }

                var product = new Models.Product
                {
                    Name = "L'Oréal Professionnel Expert Absolut Repair Cortex Lipidium - Máscara de Reconstrução 500g",
                    Sku  = 43264
                };

                product.Warehouses.Add(new Models.Warehouse
                {
                    Locality = "SP",
                    Quantity = 12,
                    Type     = Common.WarehouseType.ECOMMERCE.ToString()
                });

                product.Warehouses.Add(new Models.Warehouse
                {
                    Locality = "MOEMA",
                    Quantity = 3,
                    Type     = Common.WarehouseType.PHYSICAL_STORE.ToString()
                });

                context.Products.Add(product);
                context.SaveChanges();
            }
        }
示例#3
0
        /// <summary>
        /// Build a Product
        /// </summary>
        /// <returns></returns>
        public static ProductDTO BuildProductDTO(BelezaWebContext db, out int idItem, bool saveData = true)
        {
            var product = BuildProduct(db, out idItem, saveData);

            //Configure a map for model and list of models inside
            var config = GetMapperConfigurationToProductDTO();

            //Create a Imapper
            IMapper iMapper   = config.CreateMapper();
            var     domainDto = iMapper.Map <Product, ProductDTO>(product);

            return(domainDto);
        }
示例#4
0
        public async Task Post_Product()
        {
            using (var context = new BelezaWebContext(DatabaseOptions))
            {
                //arrange
                var product    = BuilderProduct.BuildProductDTO(context, out int idItem, false);
                var mockRepo   = new ProductService(context);
                var controller = new ProductsController(mockRepo);

                // Act
                var result = await controller.Post(product);

                // Assert
                var okResult      = Assert.IsType <OkObjectResult>(result);
                var returnSession = Assert.IsAssignableFrom <ProductDTO>(okResult.Value);
                Assert.True(returnSession != null);

                //Clean database
                context.Database.EnsureDeleted();
            }
        }
示例#5
0
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="context"></param>
 public ProductService(BelezaWebContext context)
 {
     _context = context;
 }