public void IntentarSustraerStockCuandoProductoTieneStock() { var context = ApplicationDbContextInMemory.Get(); var productoId = 1; var stock = 1; context.Stocks.Add(new ProductoEnStock { ProductoEnStockId = 1, ProductoId = productoId, Stock = stock }); context.SaveChanges(); var handler = new ProductoEnStockActualizarEventHandler(context, GetLogger); handler.Handle(new ProductoEnStockActualizarComnando { Items = new List <ProductoEnStockActualizarItem>() { new ProductoEnStockActualizarItem { ProductoId = productoId, Stock = stock, Accion = ProductoEnStockAccion.Substract } } }, new CancellationToken()).Wait(); }
public void IntentarAgregarStockCuandoProductoExiste() { var context = ApplicationDbContextInMemory.Get(); var productoId = 5; context.Stocks.Add(new ProductoEnStock { ProductoEnStockId = 5, ProductoId = productoId, Stock = 3 }); context.SaveChanges(); var handler = new ProductoEnStockActualizarEventHandler(context, GetLogger); handler.Handle(new ProductoEnStockActualizarComnando { Items = new List <ProductoEnStockActualizarItem>() { new ProductoEnStockActualizarItem { ProductoId = productoId, Stock = 3, Accion = ProductoEnStockAccion.Add } } }, new CancellationToken()).Wait(); var stockIdDb = context.Stocks.Single(x => x.ProductoId == productoId).Stock; Assert.AreEqual(stockIdDb, 6); }
public void IntentarSustraerStockCuandoProductoNoTieneStock() { var context = ApplicationDbContextInMemory.Get(); var productoId = 2; var stock = 1; context.Stocks.Add(new ProductoEnStock { ProductoEnStockId = 2, ProductoId = productoId, Stock = stock }); context.SaveChanges(); var handler = new ProductoEnStockActualizarEventHandler(context, GetLogger); try { handler.Handle(new ProductoEnStockActualizarComnando { Items = new List <ProductoEnStockActualizarItem>() { new ProductoEnStockActualizarItem { ProductoId = productoId, Stock = 2, Accion = ProductoEnStockAccion.Substract } } }, new CancellationToken()).Wait(); } catch (AggregateException ae) { var excepcion = ae.GetBaseException(); if (excepcion is ProductoEnStockActualizarComnandoExcepcion) { throw new ProductoEnStockActualizarComnandoExcepcion(excepcion?.InnerException?.Message); } } }