/// <summary> /// /// </summary> /// <param name="args"></param> public static void Main(string[] args) { IRecuperadorDatos objrecuperaDatos = new RecuperadorDatos(); IRecuperadorDatosJSON objrecuperaDatos2 = new RecuperadorDatosJSON(); IPintaMensaje objpintarMensaje = new PintaMensaje(); CalExtencion1 objextencion1 = new CalExtencion1(); CalExtencion2 objextencion2 = new CalExtencion2(); CalExtencion3 objextencion3 = new CalExtencion3(); CalExtencion4 objextencion4 = new CalExtencion4(); ControladorValidacion objvalidar = new ControladorValidacion(); CalculaCostoEnvio objcostoEnvio = new CalculaCostoEnvio(); List <DatosPaqueteria> objdatos; List <DatosPaqueteriaJSON> objdatos2; string _mensaje, _cext1, _cext2, _cext3, _cext4, _crangoTiempo; double _dcostoenvio; objdatos = objrecuperaDatos.Recuperadatos(); objdatos2 = objrecuperaDatos2.Recuperadatos(); foreach (DatosPaqueteria datos in objdatos) { _cext1 = objextencion1.Calculaextención(Convert.ToInt32(datos.dDistancia), datos.cTransporte, datos.DFechaPedido); _cext2 = objextencion2.Calculaextención(Convert.ToInt32(datos.dDistancia), datos.cTransporte, datos.DFechaPedido); _cext3 = objextencion3.Calculaextención(Convert.ToInt32(datos.dDistancia), datos.cTransporte, datos.DFechaPedido); _cext4 = objextencion4.Calculaextención(Convert.ToInt32(datos.dDistancia), datos.cTransporte, datos.DFechaPedido); _crangoTiempo = objvalidar.ValidaFecha(datos.DFechaPedido.ToString()); _dcostoenvio = objcostoEnvio.CalculaCosto(datos.dDistancia, datos.cPaqueteria, datos.cTransporte); _mensaje = (_dcostoenvio != 0) ? "Tu paquete " + _cext1 + " de " + datos.cOrigen + " y " + _cext2 + " a " + datos.cDestino + " " + _cext3 + " " + _crangoTiempo + " un costo de $" + _dcostoenvio + " Pesos(Cualquier reclamación con " + datos.cPaqueteria + ")\n" : "No ofrece el servicio de transporte por: " + datos.cTransporte; int _resultadpDatos = DateTime.Compare(DateTime.Now, datos.DFechaPedido); if (_resultadpDatos > 0 && _dcostoenvio != 0) { objpintarMensaje.PintarMensaje("Verde", _mensaje); } else { if (_resultadpDatos < 0 && _dcostoenvio != 0) { objpintarMensaje.PintarMensaje("Amarillo", _mensaje); } else { objpintarMensaje.PintarMensaje("Rojo", _mensaje); } } } Console.ReadKey(); }
public void CalculaCosto_DatosSolicitados_Double() { //Arrange ICalculaCostoEnvio objcalculaCosto = new CalculaCostoEnvio(); double _ddistancia = 12540; double _dresultado; string _cpaqueteria = "DHL"; string _ctransporte = "Avión"; //Act _dresultado = objcalculaCosto.CalculaCosto(_ddistancia, _cpaqueteria, _ctransporte); //Assert Assert.AreEqual(175560, _dresultado); }
public void costoPaquete_DHLAereo446400KMAplicaCostoAdiccionalPorEscala_CalculoCorrecto() { //Arrange var distancia = 446400; var paqueteria = "DHL"; var fechaPedido = new DateTime(2020, 01, 23, 8, 00, 00); var costoEsparado = 6829800M; var tipoTransporte = "Aereo"; var docObtenerCostoPorKilometroAereo = new ObtenedorCostoPorKilometroAereo(); var docCalculaAdiccionalPorEscala = new CalculaCostoAdiccionalPorEscala(); var docObtenedorUtilidadPaqueteria = new ObtenedorUtilidadDHL(); var calculaUtilidadFedex = new CalcularUtilidadPaqueteria(docObtenedorUtilidadPaqueteria); var docCalculaCostoAereo = new CalculaCostoAdiccionalAdiccionalEnvioAereo(docCalculaAdiccionalPorEscala, calculaUtilidadFedex); var SUT = new CalculaCostoEnvio(docObtenerCostoPorKilometroAereo, docCalculaCostoAereo); //Act var costoPedido = SUT.costoPaquete(distancia, paqueteria, fechaPedido); Assert.AreEqual(costoEsparado, costoPedido); }
public void costoPaquete_DHLMaritimo9000KMAplicaCostoAdiccionalPorEscala_CalculoCorrecto() { //Arrange var distancia = 9000; var paqueteria = "DHL"; var fechaPedido = new DateTime(2020, 01, 23, 8, 00, 00); var costoEsparado = 4981.5M; var tipoTransporte = "Maritimo"; var obtenedorCostoPorKilometroMaritimo = new ObtenedorCostoPorKilometroMaritimo(); var docCalculaAdiccionalPorTemporada = new CalculaCostoAdiccionalPorTemporadaInvierno(); var docObtenedorUtilidadPaqueteria = new ObtenedorUtilidadDHL(); var calculaUtilidadDHL = new CalcularUtilidadPaqueteria(docObtenedorUtilidadPaqueteria); var docCalculaCostoAereo = new CalculaCostoAdiccionalEnvioMaritimo(calculaUtilidadDHL, docCalculaAdiccionalPorTemporada); var SUT = new CalculaCostoEnvio(obtenedorCostoPorKilometroMaritimo, docCalculaCostoAereo); //Act var costoPedido = SUT.costoPaquete(distancia, paqueteria, fechaPedido); Assert.AreEqual(costoEsparado, costoPedido); }
public void costoPaquete_EstafetaTerrestre80KM_CalculoCorrecto() { //Arrange var distancia = 80M; var paqueteria = "Estafeta"; var FechaPedido = new DateTime(2020, 01, 23, 12, 00, 00); var costoEsperado = 1160M; var tipoTransporte = "Terrestre"; var docObtenerCostoPorKilometroTerrestre = new ObtenedorCostoPorKilometroTerrestre(); var docCalculaAdiccionalPorEscala = new CalculaCostoAdiccionalPorEscala(); var docObtenedorUtilidadPaqueteria = new ObtenedorUtilidadEstafeta(); var calculaUtilidadFedex = new CalcularUtilidadPaqueteria(docObtenedorUtilidadPaqueteria); var docCalculaCostoAereo = new CalculaCostoAdiccionalAdiccionalEnvioAereo(docCalculaAdiccionalPorEscala, calculaUtilidadFedex); var SUT = new CalculaCostoEnvio(docObtenerCostoPorKilometroTerrestre, docCalculaCostoAereo); //Act var costoPedido = SUT.costoPaquete(distancia, paqueteria, FechaPedido); //Assert Assert.AreEqual(costoEsperado, costoPedido); }