Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
 protected override void InicializarEmpresa()
 {
     if (EmpresaPaqueteria == null)
     {
         EmpresaPaqueteria = new DHL();
     }
 }
Example #8
0
        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);
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #13
0
        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);
        }
Example #17
0
        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();
        }
Example #18
0
        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);
        }
Example #19
0
        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);
        }
Example #20
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));
        }
Example #21
0
        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);
        }
Example #22
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);
        }
Example #23
0
        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);
        }
Example #24
0
        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);
        }
Example #25
0
        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);
        }
Example #27
0
        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);
        }
Example #28
0
        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);
        }
Example #30
0
        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);
        }