public void SetUp() { #region BaseProductos _bandejaDeMaduro = new ProductoParaVenderConEnvoltorio(). SetNombre("Bandeja de maduro").SetCantidad(25).SetCostoUnitario(2500); _bandejaDeMaduro.Id = 1; _envueltoDeMaduro = new ProductoParaVenderConEnvoltorio(). SetNombre("Embuelto de Maduro").SetCantidad(10).SetCostoUnitario(3000); _envueltoDeMaduro.Id = 2; _bandejaDeLeche = new ProductoParaVenderConEnvoltorio(). SetNombre("Bandeja de Leche").SetCantidad(13).SetCostoUnitario(2700); _bandejaDeLeche.Id = 3; _leche = new ProductoMateriaPrima().SetNombre("Leche"). SetCantidad(15).SetCostoUnitario(1500); _leche.Id = 4; _dulceDeLeche = new ProductoParaFabricarDuro().SetNombre("Dulce de leche"). SetCantidad(35).SetCostoUnitario(1500); _dulceDeLeche.Id = 5; _unidadesMedianasDeMaduro = new ProductoParaVenderSinEnvoltorio(). SetNombre("Unidades medianas de maduro").SetCantidad(50). SetCostoUnitario(300); #endregion #region BaseTercero _duvan = new Tercero.TerceroBuilder("1065840833", "Duvan").Build(); #endregion #region BaseCliente _clienteDuvan = new TerceroCliente. TerceroClienteBuilder(_duvan).Build(); _clienteDuvan.Id = 1; TerceroClientePrecioProducto precioProducto3 = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(_clienteDuvan, _bandejaDeMaduro). SetPrecio(3600).Build(); _clienteDuvan.AddPrecio(precioProducto3); TerceroClientePrecioProducto precioProducto4 = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(_clienteDuvan, _bandejaDeLeche). SetPrecio(3900).Build(); _clienteDuvan.AddPrecio(precioProducto4); TerceroClientePrecioProducto precioProducto5 = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(_clienteDuvan, _envueltoDeMaduro). SetPrecio(4300).Build(); _clienteDuvan.AddPrecio(precioProducto5); #endregion #region BaseUsuario _usuarioDuvan = new TerceroUsuario.TerceroUsuarioBuilder(_duvan). SetUsuario("duvaninho").SetPassword("1234").Build(); _usuarioDuvan.Id = 1; #endregion }
public void ClienteAgregarPrecioProductoNoEsParaVender() { TerceroClientePrecioProducto precioProducto3 = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(clienteDuvan, _bandejaDeMaduro). SetPrecio(3600).Build(); clienteDuvan.AddPrecio(precioProducto3); InvalidOperationException ex = Assert.Throws <InvalidOperationException>(() => { TerceroClientePrecioProducto precioProducto1 = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(clienteDuvan, _leche). SetPrecio(1500).Build(); clienteDuvan.AddPrecio(precioProducto1); }); Assert.AreEqual("El producto " + $"Leche no se puede vender", ex.Message); }
public void ClienteAgregarPrecioMenorAlPermitido() { TerceroClientePrecioProducto precioProducto2 = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(clienteDuvan, _bandejaDeMaduro). SetPrecio(3600).Build(); clienteDuvan.AddPrecio(precioProducto2); InvalidOperationException ex = Assert.Throws <InvalidOperationException>(() => { TerceroClientePrecioProducto precioProducto1 = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(clienteDuvan, _bandejaDeLeche). SetPrecio(1500).Build(); clienteDuvan.AddPrecio(precioProducto1); }); Assert.AreEqual("El precio del " + $"producto Bandeja de Leche no puede ser menor al" + $" precio sugerido de 3857,14", ex.Message); }
public void ClienteAgregarPreciosValidos() { TerceroClientePrecioProducto precioProducto3 = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(clienteDuvan, _bandejaDeMaduro). SetPrecio(3600).Build(); clienteDuvan.AddPrecio(precioProducto3); TerceroClientePrecioProducto precioProducto4 = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(clienteDuvan, _bandejaDeLeche). SetPrecio(3900).Build(); clienteDuvan.AddPrecio(precioProducto4); TerceroClientePrecioProducto precioProducto5 = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(clienteDuvan, _envueltoDeMaduro). SetPrecio(4300).Build(); clienteDuvan.AddPrecio(precioProducto5); Assert.AreEqual(3, clienteDuvan.ListaDePrecios.Count); }
public Response Crear(TerceroClienteRequest request) { TerceroCliente cliente1 = this._unitOfWork.TerceroClienteRepository. FindBy(cliente => cliente.Tercero.Nit == request.NitTercero, includeProperties: "Tercero").FirstOrDefault(); if (cliente1 != null) { return(new Response { Mensaje = $"No se pudo registrar el cliente porque ya esta en el sistema" }); } Tercero tercero = this._unitOfWork.TerceroRepository. FindFirstOrDefault(tercero => tercero.Nit == request.NitTercero); if (tercero == null) { tercero = request.Tercero.UnMap(); } TerceroCliente cliente = new TerceroCliente.TerceroClienteBuilder(tercero) .Build(); List <Producto> productos = this._unitOfWork.ProductoRepository.GetAll().ToList(); List <Producto> productosEncontrados = productos. Where(producto => request.Precios.Select(p => p.ProductoId).Contains(producto.Id)). ToList(); if (productosEncontrados.Count != request.Precios.Count) { var productosNoEncontrados = request.Precios.Where(precio => !productosEncontrados. Select(p => p.Id).Contains(precio.ProductoId)). Select(p => $"{p.NombreProducto} con Id {p.ProductoId}").ToList(); return(new Response { Mensaje = "Los siguientes productos no fueron encontrados en el sistema\n" + string.Join("\n", productosNoEncontrados) }); } cliente = new TerceroCliente.TerceroClienteBuilder(tercero).Build(); try { IEnumerator <Producto> enumerator = productosEncontrados.GetEnumerator(); request.Precios.ForEach((precio) => { enumerator.MoveNext(); TerceroClientePrecioProducto precioProducto = new TerceroClientePrecioProducto. TerceroClientePrecioProductoBuilder(cliente, enumerator.Current). SetPrecio(precio.Precio).Build(); cliente.AddPrecio(precioProducto); }); } catch (InvalidOperationException e) { return(new Response { Mensaje = e.Message }); } this._unitOfWork.TerceroClienteRepository.Add(cliente); this._unitOfWork.Commit(); return(new Response { Mensaje = "Cliente registrado con éxito", Data = new TerceroClienteRequest().Map(cliente) }); }