/// <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); }
/// <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(); } }
/// <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); }
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(); } }
/// <summary> /// Default constructor /// </summary> /// <param name="context"></param> public ProductService(BelezaWebContext context) { _context = context; }