Esempio n. 1
0
        public IHttpActionResult CreateStock(StockDTO stock)
        {
            if (!ModelState.IsValid)
            {
                log.Error("Formulario con datos inexistentes o incorrectos.");
                return(BadRequest());
            }


            Producto     producto = productoBL.GetProductoById(stock.ProductoID);
            TipoDeUnidad tunidad  = tipoDeUnidadBL.GetTipoDeUnidadById(stock.TipoDeUnidadID);

            Stock stockIngresado = stockBL.ValidarStockProducto(stock.ProductoID, stock.TipoDeUnidadID);

            if (stockIngresado != null)
            {
                stockIngresado.Cantidad = stockIngresado.Cantidad + stock.Cantidad;
                stockBL.UpdateStock(stockIngresado);

                log.Info("Stock Actualizado satisfactoriamente. ID: " + stockIngresado.ID);
            }
            else
            {
                Stock stockNuevo = new Stock();

                stockNuevo.ProductoID           = stock.ProductoID;
                stockNuevo.TipoDeUnidadID       = stock.TipoDeUnidadID;
                stockNuevo.Cantidad             = stock.Cantidad;
                stockNuevo.ProductoAuxiliar     = producto.NombreAuxiliar;
                stockNuevo.TipoDeUnidadAuxiliar = tunidad.Nombre;

                stockBL.AddStock(stockNuevo);

                log.Info("Stock Agregado satisfactoriamente");
            }



            return(Ok());
        }
        public void UpdateStockTest()
        {
            //Arrange
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            var stock = new Stock()
            {
                Id = 1
            };

            mockUnitOfWork.Setup(un => un.StockRepository.Update(It.IsAny <Stock>()));
            mockUnitOfWork.Setup(un => un.Save());


            IStockLogic stockLogic = new StockLogic(mockUnitOfWork.Object);

            stock.Code = "AAAA";
            var result = stockLogic.UpdateStock(stock);

            mockUnitOfWork.Verify(un => un.StockRepository.Update(It.IsAny <Stock>()), Times.Once());
            mockUnitOfWork.Verify(un => un.Save(), Times.Once());
            Assert.True(result);
        }