public void ObtenerFechaEntrega_MaritimoTiempoReparto21_23febrero2020() { //Arrange var DOCMedioTransporte = new Mock <IMediosTransporte>(); var DOCcalculaMargen = new Mock <ICalculadorMargenUtilidadCosto>(); ParametrosDTO parametros = new ParametrosDTO(); ParametrosDTO parametrosFinal = new ParametrosDTO(); DateTime dtFechaPedido = new DateTime(2020, 02, 22); double dDistancia = 1200; parametros.dtFechaPedido = dtFechaPedido; parametros.dDistacia = dDistancia; DOCMedioTransporte.Setup(doc => doc.CalculaTiempoTraslado(parametros)).Returns(37.2); List <TiempoRepartoDTO> lstTiempoReparto = new List <TiempoRepartoDTO>(); lstTiempoReparto.Add(new TiempoRepartoDTO { cMedioTransporte = "MARITIMO", iHoras = 21, iMinutos = 0 }); lstTiempoReparto.Add(new TiempoRepartoDTO { cMedioTransporte = "TERRESTRE", iHoras = 10, iMinutos = 0 }); lstTiempoReparto.Add(new TiempoRepartoDTO { cMedioTransporte = "AEREO", iHoras = 21, iMinutos = 0 }); var SUT = new DHL(DOCMedioTransporte.Object, DOCcalculaMargen.Object, lstTiempoReparto, parametrosFinal); //ACT var regreso = SUT.ObtenerFechaEntrega(parametros); //ASSERT Assert.AreEqual(new DateTime(2020, 02, 23, 13, 12, 0), regreso); }
public void CalculaCostoEnvio_MaritimoEstacionInvierno1200_1800() { //Arrange var DOCMedioTransporte = new Mock <IMediosTransporte>(); var DOCcalculaMargen = new Mock <ICalculadorMargenUtilidadCosto>(); ParametrosDTO parametros = new ParametrosDTO(); ParametrosDTO parametrosFinal = new ParametrosDTO(); DateTime dtFechaPedido = new DateTime(2020, 02, 22); double dDistancia = 1200; parametros.dtFechaPedido = dtFechaPedido; parametros.dDistacia = dDistancia; DOCMedioTransporte.Setup(doc => doc.CalculaCostoEnvio(parametros)).Returns(442); DOCcalculaMargen.Setup(doc => doc.ObtenerMargenUtilidadCosto(442, dtFechaPedido)).Returns(1800); List <TiempoRepartoDTO> lstTiempoReparto = new List <TiempoRepartoDTO>(); lstTiempoReparto.Add(new TiempoRepartoDTO { cMedioTransporte = "MARITIMO", iHoras = 21, iMinutos = 0 }); lstTiempoReparto.Add(new TiempoRepartoDTO { cMedioTransporte = "TERRESTRE", iHoras = 10, iMinutos = 0 }); lstTiempoReparto.Add(new TiempoRepartoDTO { cMedioTransporte = "AEREO", iHoras = 21, iMinutos = 0 }); var SUT = new DHL(DOCMedioTransporte.Object, DOCcalculaMargen.Object, lstTiempoReparto, parametrosFinal); //ACT var regreso = SUT.ObtenerCostoEnvio(parametros); //ASSERT Assert.AreEqual(1800, regreso); }
public lEmpresas buscarEmpresa(JToken _Empresa, List <lEnvios> _lstTransportes) { lEmpresas Empresa = null; string cNombre = (string)_Empresa["Paqueteria"]; decimal dMargen = (decimal)_Empresa["MargenUtilidad"]; List <JToken> Transportes = _Empresa["Medios"].ToList(); List <lEnvios> lstTransporte = new List <lEnvios>(); foreach (var tra in Transportes) { string cMedio = RemoveDiacritics((string)tra["Medio"]); lstTransporte.Add(_lstTransportes.Where(s => s.cNombre == cMedio).FirstOrDefault()); } if (cNombre == "DHL") { Empresa = new DHL(lstTransporte, dMargen, cNombre = "DHL"); } else if (cNombre == "Fedex") { Empresa = new FEDEXService(lstTransporte, dMargen, cNombre = "Fedex"); } else { Empresa = new Estafeta(lstTransporte, dMargen, cNombre = "Estafeta"); } return(Empresa); }
public IPaqueterias AsignarPaqueria(string _cClave) { IPaqueterias paqueteria; switch (_cClave) { case "Estafeta": paqueteria = new Estafeta(); break; case "DHL": paqueteria = new DHL(); break; case "Fedex": paqueteria = new Fedex(); break; default: ImpresorMensajes.mostrarMensajeError(string.Format("La Paquetería: {0} no se encuentra registrada en nuestra red de distribución.", _cClave)); paqueteria = null; break; } return(paqueteria); }
public void ObtenerMejorOpcion_EnviarCostoDeEnvioAlto_MensajeConDiferenciaDePrecio() { //Arrange string cResultado = ""; lEnvios aereo = new Avion() { dVelocidadEntrega = 600, dCostoEnvio = 10, cNombre = "Avion" }; lEnvios barco = new Barco() { dVelocidadEntrega = 46, dCostoEnvio = 1, cNombre = "Barco" }; lEmpresas fedex = new Estafeta(new List <lEnvios>() { barco }, 50, "Fedex"); lEmpresas dhl = new DHL(new List <lEnvios>() { aereo, barco }, 40, "DHL"); List <lEmpresas> lstEmpresas = new List <lEmpresas>() { fedex, dhl }; BuscarMejorOpcion buscarMejorOpcion = new BuscarMejorOpcion(); DateTime dtHoy = Convert.ToDateTime("27-01-2020 12:00:00"); DateTime dtEntrega = Convert.ToDateTime("28-01-2020 12:00:00"); State.State entPedido = new State.State(new DesactivarState(), "México", "USA", 2500, fedex, barco, dtHoy); //Act cResultado = buscarMejorOpcion.ObtenerMejorOpcion(lstEmpresas, dhl, entPedido, 5000); //Assert Assert.AreEqual("Si hubieras pedido en Fedex te hubiera costado 1250.0 mas barato", cResultado); }
public void AsignarEmpresa_EnviarListaDeEmpresasQueNoContengaEmpresaSolicitada_EmpresaSolicitadaNoAsignada() { //Arrange AsignarDatosEnvio asignarDatosEnvio = new AsignarDatosEnvio(); lEnvios aereo = new Avion() { dVelocidadEntrega = 600, dCostoEnvio = 10, cNombre = "Avion" }; lEnvios barco = new Barco() { dVelocidadEntrega = 46, dCostoEnvio = 1, cNombre = "Barco" }; lEmpresas fedex = new Estafeta(new List <lEnvios>() { barco }, 50, "Fedex"); lEmpresas dhl = new DHL(new List <lEnvios>() { aereo, barco }, 40, "DHL"); lEmpresas empresa = null; List <lEmpresas> lstEmpresas = new List <lEmpresas>() { fedex, dhl }; //Act asignarDatosEnvio.AsignarEmpresa("Estafeta", ref empresa, lstEmpresas); //Assert Assert.AreEqual(null, empresa); }
protected override void InicializarEmpresa() { if (EmpresaPaqueteria == null) { EmpresaPaqueteria = new DHL(); } }
public void ValidarTransporte_Maritimo_true() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Sut = new DHL("Marítimo", DateTime.ParseExact("02/09/2020 12:00", "dd/MM/yyyy HH:mm", culture), configuraciones); bool Resultado = Sut.ValidarTransporte(); Assert.IsTrue(Resultado); }
public void MostrarValidaciontransporte_NoAsignado_MuestraError() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Sut = new DHL("Submarino", DateTime.ParseExact("02/09/2020 12:00", "dd/MM/yyyy HH:mm", culture), configuraciones); string Resultado = Sut.MostrarValidaciontransporte(); Assert.AreEqual("DHL no ofrece el servicio de transporte Submarino, te recomendamos cotizar en otra empresa.", Resultado); }
public void ObtenerPaqueteria_General_DevuelveDHL() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Sut = new DHL("", DateTime.ParseExact("02/09/2020 12:00", "dd/MM/yyyy HH:mm", culture), configuraciones); string Resultado = Sut.ObtenerPaqueteria(); Assert.AreEqual("DHL", Resultado); }
public void ObtenerTiempoRepartoMinutos_CalculoTerrestre_SetecientosVeinte() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Sut = new DHL("Terrestre", DateTime.ParseExact("02/03/2020 12:00", "dd/MM/yyyy HH:mm", culture), configuraciones); decimal Resultado = Sut.ObtenerTiempoRepartoMinutos(); Assert.AreEqual(720, Resultado); }
public void ObtenerTiempoRepartoMinutos_CalculoAereo_CientoOchenta() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Sut = new DHL("Aéreo", DateTime.ParseExact("02/03/2020 12:00", "dd/MM/yyyy HH:mm", culture), configuraciones); decimal Resultado = Sut.ObtenerTiempoRepartoMinutos(); Assert.AreEqual(180, Resultado); }
public void ObtenerUtilidad_SegundoSemestre_PuntoTres() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Sut = new DHL("", DateTime.ParseExact("02/09/2020 12:00", "dd/MM/yyyy HH:mm", culture), configuraciones); decimal Resultado = Sut.ObtenerUtilidad(); Assert.AreEqual(.30M, Resultado); }
private IEmpresa CrearEmpresaDHLBarco(List <IMetodoEnvio> _lstMetodosEnvio) { IEmpresa dhlBarco; IMetodoEnvio envioBarco = _lstMetodosEnvio.Where(m => m.metodoEnvioDTO.cNombre.ToLower() == "barco").FirstOrDefault(); EmpresaDTO dhlDTO = new EmpresaDTO { cNombre = "DHL", dMargenUtilidad = 0.40m }; dhlBarco = new DHL(envioBarco, dhlDTO); return(dhlBarco); }
private IEmpresa CrearEmpresaDHLAvion(List <IMetodoEnvio> _lstMetodosEnvio) { IEmpresa dhlAvion; IMetodoEnvio envioAvion = _lstMetodosEnvio.Where(m => m.metodoEnvioDTO.cNombre.ToLower() == "avión").FirstOrDefault(); EmpresaDTO dhlDTO = new EmpresaDTO { cNombre = "DHL", dMargenUtilidad = 0.40m }; dhlAvion = new DHL(envioAvion, dhlDTO); return(dhlAvion); }
private IEmpresa CrearEmpresaEstafetaTren(List <IMetodoEnvio> _lstMetodosEnvio) { IEmpresa estafetaTren; IMetodoEnvio envioTren = _lstMetodosEnvio.Where(m => m.metodoEnvioDTO.cNombre.ToLower() == "tren").FirstOrDefault(); EmpresaDTO estafetaDTO = new EmpresaDTO { cNombre = "Estafeta", dMargenUtilidad = 0.20m }; estafetaTren = new DHL(envioTren, estafetaDTO); return(estafetaTren); }
static void Main(string[] args) { DHL dhl = new DHL(); Fedex fed = new Fedex(); CorreoMexico correo = new CorreoMexico(); clientA clca = new clientA(); clientB clcb = new clientB(); clientC clcc = new clientC(); dhl.add(clca); fed.add(clcb); correo.add(clcc); correo.add(clca); Console.ReadKey(); }
public void FechaEntrega_EnviarTiempoTrasladoMayorACero_FechaDeEntregaMenorAFechaHoy() { //Arrange DateTime dtResultado = new DateTime(); lEnvios barco = new Maritimo() { dVelocidadEntrega = 46, dCostoEnvio = 1 }; lEmpresas dhl = new DHL(new List <lEnvios>() { barco }, 50, "Fedex"); DateTime dtHoy = Convert.ToDateTime("27-01-2020 12:00:00"); State.State entPedido = new State.State(new DesactivarState(), "México", "USA", 2500, dhl, barco, dtHoy); //Act dtResultado = dhl.FechaEntrega(-10, entPedido); //Assert Assert.IsTrue(dtResultado < dtHoy); }
public void TiempoTraslado_EnviarListaTransportesVacia_TiempoTrasladoCero() { //Arrange decimal iResultado = 0; lEnvios barco = new Maritimo() { dVelocidadEntrega = 46, dCostoEnvio = 1 }; lEmpresas dhl = new DHL(new List <lEnvios>() { }, 50, "Fedex"); DateTime dtHoy = Convert.ToDateTime("27-01-2020 12:00:00"); DateTime dtEntrega = Convert.ToDateTime("28-01-2020 12:00:00"); State.State entPedido = new State.State(new DesactivarState(), "México", "USA", 2500, dhl, barco, dtHoy); //Act iResultado = dhl.TiempoTraslado(entPedido); //Assert Assert.IsTrue(iResultado == 0); }
public double Sumuj(Zamowienie zamowienie) { IKosztyWysylki kurier = null; switch (zamowienie.RodzajTransportu) { case Przewoznik.DHL: kurier = new DHL(); break; case Przewoznik.GLS: kurier = new GLS(); break; case Przewoznik.UPC: kurier = new UPC(); break; } return(kurier.obliczKosztPrzesylki(zamowienie)); }
public void TiempoTraslado_EnviarFechaDeEntregaMayorAHoy_ValorDiferenteDeCero() { //Arrange decimal iResultado = 0; lEnvios barco = new Barco() { dVelocidadEntrega = 46, dCostoEnvio = 1 }; lEmpresas dhl = new DHL(new List <lEnvios>() { barco }, 50, "Fedex"); DateTime dtHoy = Convert.ToDateTime("27-01-2020 12:00:00"); DateTime dtEntrega = Convert.ToDateTime("28-01-2020 12:00:00"); State.State entPedido = new State.State(new DesactivarState(), "México", "USA", 2500, dhl, barco, dtHoy); //Act iResultado = dhl.TiempoTraslado(entPedido); //Assert Assert.IsTrue(iResultado != 0); }
public void ObtenerCosto_DatosCorrectos_ArmaCostoConTextoTuvo() { //Arrange string cMensajeCosto = "tuvó"; decimal dCosto = 10m; string cMensajeCostoEsperado = $"{cMensajeCosto} un costo de ${dCosto.ToString()}"; var DOCIMetodoEnvio = new Mock <IMetodoEnvio>(); DOCIMetodoEnvio.Setup(e => e.CalcularCostoEnvio(It.IsAny <decimal>(), It.IsAny <decimal>())).Returns(dCosto); var SUT = new DHL(DOCIMetodoEnvio.Object, new EmpresaDTO()); var DOCIVerificadorEstadoPaquete = new Mock <IVerificadorEstadoPaquete>(); DOCIVerificadorEstadoPaquete.Setup(v => v.VerificarPrevioCostoPaquete()).Returns(cMensajeCosto); //Act string cCosto = SUT.ObtenerCosto(It.IsAny <decimal>(), DOCIVerificadorEstadoPaquete.Object); //Assert Assert.AreEqual(cMensajeCostoEsperado, cCosto); }
public void CalcularRangoTiempo_DatosCorrectos_ArmaCostoConTextoTuvo() { //Arrange string cRangoTiempoEsperado = "2 horas"; decimal dTiempoTraslado = 2m; var DOCIMetodoEnvio = new Mock <IMetodoEnvio>(); DOCIMetodoEnvio.Setup(e => e.CalcularTiempoTraslado(It.IsAny <decimal>())).Returns(dTiempoTraslado); DOCIMetodoEnvio.Setup(e => e.ObtenerFechaEntrega(It.IsAny <DateTime>(), It.IsAny <decimal>())).Returns(It.IsAny <DateTime>()); var DOCIRangoTiempo = new Mock <IRangoTiempo>(); DOCIRangoTiempo.Setup(r => r.ObtenerRangoTiempo(It.IsAny <DateTime>(), It.IsAny <DateTime>())).Returns(cRangoTiempoEsperado); var SUT = new DHL(DOCIMetodoEnvio.Object, new EmpresaDTO()); //Act string cRangoTiempo = SUT.CalcularRangoTiempo(new PedidoDTO(), It.IsAny <DateTime>(), DOCIRangoTiempo.Object); //Assert Assert.AreEqual(cRangoTiempoEsperado, cRangoTiempo); }
public void CostoEnvio_EviarDistanciaMayorACincuenta_CostoEnvioMayorACero() { //Arrange decimal dResultado = 0; decimal dEsperado = 3750; lEnvios barco = new Maritimo() { dVelocidadEntrega = 46, dCostoEnvio = 1 }; lEmpresas dhl = new DHL(new List <lEnvios>() { barco }, 50, "DHL"); DateTime dtHoy = Convert.ToDateTime("27-01-2020 12:00:00"); State.State entPedido = new State.State(new DesactivarState(), "México", "USA", 2500, dhl, barco, dtHoy); //Act dResultado = dhl.CostoEnvio(entPedido); //Assert Assert.AreEqual(dEsperado, dResultado); }
static void Main(string[] args) { MetodoEnvios metodoFedex = new Fedex(new Barco()); metodoFedex.Display("Paqueteria Fedex"); MetodoEnvios metodoDhlAvion = new DHL(new Avion()); metodoDhlAvion.Display("Paqueteria DHL"); MetodoEnvios metodoDhlBarco = new DHL(new Barco()); metodoDhlBarco.Display("Paqueteria DHL"); MetodoEnvios metodoEstafeta = new Estafeta(new Tren()); metodoEstafeta.Display("Paqueteria Estafeta"); Console.ReadLine(); }
public void ObtenerOpcionMasEconomica_ExisteOtraEmpresaMasBarata_Mensaje20MasBarato() { //Arrange string cMensajeEsperado = $"Si hubieras pedido en Fedex te hubiera costado $20 más barato."; var lstEmpresas = ObtenerEmpresas(80m); var DOCIMetodoEnvioPedido = new Mock <IMetodoEnvio>(); DOCIMetodoEnvioPedido.Setup(m => m.metodoEnvioDTO).Returns(new MetodoEnvioDTO { cNombre = "Tren" }); DOCIMetodoEnvioPedido.Setup(m => m.CalcularCostoEnvio(It.IsAny <decimal>(), It.IsAny <decimal>())).Returns(100m); IEmpresa empresaPedido = new DHL(DOCIMetodoEnvioPedido.Object, new EmpresaDTO { cNombre = "DHL" }); var SUT = new VerificadorEconomicoMismoMedio(); //Act string cMensaje = SUT.ObtenerOpcionMasEconomica(empresaPedido, lstEmpresas, It.IsAny <decimal>()); //Assert Assert.AreEqual(cMensajeEsperado, cMensaje); }
public void Ejecutar_EnviarFechaEntregaMayorSemanasAFechaHoy_SemanasFaltantes() { //Arrange string cResultado = ""; Expresion5 expresion5 = new Expresion5(); lEnvios Aereo = new Aereo() { dVelocidadEntrega = 800, dCostoEnvio = 1 }; lEmpresas dhl = new DHL(new List <lEnvios>() { Aereo }, 10, "DHL"); DateTime dtHoy = Convert.ToDateTime("15-02-2020 08:00:00"); DateTime dtEntrega = Convert.ToDateTime("06-03-2020 12:00:00"); State.State entPedido = new State.State(new DesactivarState(), "China", "Cancún", 446400, dhl, Aereo, dtHoy); //Act cResultado = expresion5.Ejecutar(dtEntrega, dtHoy, entPedido); //Assert Assert.AreEqual("3 Semanas", cResultado); }
public Empresas CrearInstancia(int iTipo, ITipoEnvio tipoEnvio, string cProducto) { Empresas empresa = null; switch (iTipo) { case 1: empresa = new DHL(tipoEnvio, cProducto); break; case 2: empresa = new Fedex(tipoEnvio, cProducto); break; case 4: empresa = new Estafeta(tipoEnvio, cProducto); break; } return(empresa); }
public void ObtenerOpcionMasEconomica_NoExisteOtraEmpresaMismoMedioTransporte_MensajeVacio() { //Arrange string cMensajeEsperado = string.Empty; var lstEmpresas = ObtenerEmpresas(80m); var DOCIMetodoEnvioPedido = new Mock <IMetodoEnvio>(); DOCIMetodoEnvioPedido.Setup(m => m.metodoEnvioDTO).Returns(new MetodoEnvioDTO { cNombre = "Barco" }); DOCIMetodoEnvioPedido.Setup(m => m.CalcularCostoEnvio(It.IsAny <decimal>(), It.IsAny <decimal>())).Returns(100m); IEmpresa empresaPedido = new DHL(DOCIMetodoEnvioPedido.Object, new EmpresaDTO { cNombre = "DHL" }); var SUT = new VerificadorEconomicoMismoMedio(); //Act string cMensaje = SUT.ObtenerOpcionMasEconomica(empresaPedido, lstEmpresas, It.IsAny <decimal>()); //Assert Assert.AreEqual(cMensajeEsperado, cMensaje); }
public void ObtenerEstadoPaquete_DatosCorrectosParaArmarTexto_ObtieneTextoCuendoEstaPorEntregar() { //Arrange string cOrigen = "origen"; string cDestino = "destino"; string cEstadoEsperado = $"Tu paquete ha salido de {cOrigen} y llegará a {cDestino} dentro de"; var DOCIMetodoEnvio = new Mock <IMetodoEnvio>(); var DOCIVerificadorEstadoPaquete = new Mock <IVerificadorEstadoPaquete>(); DOCIVerificadorEstadoPaquete.Setup(v => v.VerificarSiPaqueteSalio()).Returns("ha salido"); DOCIVerificadorEstadoPaquete.Setup(v => v.VerificarSiPaqueteLlego()).Returns("llegará"); DOCIVerificadorEstadoPaquete.Setup(v => v.VerificarPrevioTiempoPaquete()).Returns("dentro de"); var SUT = new DHL(DOCIMetodoEnvio.Object, new EmpresaDTO()); //Act string cEstado = SUT.ObtenerEstadoPaquete(new PedidoDTO { cOrigen = cOrigen, cDestino = cDestino }, DOCIVerificadorEstadoPaquete.Object); //Assert Assert.AreEqual(cEstadoEsperado, cEstado); }