public IEmpresaPaqueteria ObtenerEmpresa(string paqueteria)
        {
            IEmpresaPaqueteria    empresaPaqueteria;
            TipoEmpresaPaqueteria?opcion = null;

            if (Enum.TryParse(paqueteria, true, out TipoEmpresaPaqueteria result))
            {
                opcion = result;
            }

            switch (opcion)
            {
            case TipoEmpresaPaqueteria.Fedex:
                empresaPaqueteria = new FedexFactory().CrearEmpresa();
                break;

            case TipoEmpresaPaqueteria.Estafeta:
                empresaPaqueteria = new EstafetaFactory().CrearEmpresa();
                break;

            case TipoEmpresaPaqueteria.Dhl:
                empresaPaqueteria = new DHLFactory().CrearEmpresa();
                break;

            default:
                string mesajeError = string.Format("La Paquetería: {0} no se encuentra registrada en nuestra red de distribución.", paqueteria);
                throw new ArgumentException(mesajeError);
            }

            return(empresaPaqueteria);
        }
Exemple #2
0
        public IPaqueteria CrearPaqueteria(string nombrePaqueteria)
        {
            IPaqueteria paqueteria;

            switch (nombrePaqueteria.ToLowerInvariant())
            {
            case "dhl":
                DhlFactory dhlFactory = new DhlFactory();
                paqueteria = dhlFactory.CrearPaqueteria();
                break;

            case "fedex":
                FedexFactory fedexFactory = new FedexFactory();
                paqueteria = fedexFactory.CrearPaqueteria();
                break;

            case "estafeta":
                EstafetaFactory estafetaFactory = new EstafetaFactory();
                paqueteria = estafetaFactory.CrearPaqueteria();
                break;

            default:
                throw new ArgumentException($"La Paquetería: [{nombrePaqueteria}] no se encuentra registrada en nuestra red de distribución.");
            }

            return(paqueteria);
        }
        public List <IPaqueteria> ObtenerPaqueterias()
        {
            ITransporteFactory transporteFactory = new BarcoFactory();
            ITransporte        barco             = transporteFactory.CrearTransporte();


            transporteFactory = new TrenFactory();
            ITransporte tren = transporteFactory.CrearTransporte();

            transporteFactory = new AvionFactory();
            ITransporte avion = transporteFactory.CrearTransporte();


            IPaqueteriaFactory factory = new FedexFactory();
            IPaqueteria        fedex   = factory.CrearPaqueteria();

            fedex.AgregarTransporte(barco);

            factory = new DhlFactory();
            IPaqueteria dhl = factory.CrearPaqueteria();

            dhl.AgregarTransporte(avion);
            dhl.AgregarTransporte(barco);

            factory = new EstafetaFactory();
            IPaqueteria estafeta = factory.CrearPaqueteria();

            estafeta.AgregarTransporte(tren);
            estafeta.AgregarTransporte(barco);

            return(new List <IPaqueteria>()
            {
                fedex, dhl, estafeta
            });
        }
Exemple #4
0
        public void CrearPaqueteria_CreacionFedex_ObjetoFedexCreadoCorrectamente()
        {
            //Arrange
            string nombreExp      = "Fedex";
            double margenUtilidad = 50;

            //Act
            FedexFactory factory    = new FedexFactory();
            IPaqueteria  paqueteria = factory.CrearPaqueteria();

            //Assert
            Assert.AreEqual(nombreExp, paqueteria.Nombre);
            Assert.AreEqual(margenUtilidad, paqueteria.MargenUtilidad);
        }
Exemple #5
0
        private void GenerarClientesFabricas()
        {
            IEmpresaAbstractFactory empresaDhl      = new DhlFactory(_tiempoApp, 0);
            IEmpresaAbstractFactory empresaEstafeta = new EstafetaFactory(_tiempoApp, 0);
            IEmpresaAbstractFactory empresaFedex    = new FedexFactory(_tiempoApp, 0);

            IClientesFabricas clientesFabricaDhl      = new ClienteFabricas(empresaDhl, _tiempoApp, "", "", "", _tiempoApp);
            IClientesFabricas clientesFabricaEstafeta = new ClienteFabricas(empresaEstafeta, _tiempoApp, "", "", "", _tiempoApp);
            IClientesFabricas clientesFabricaFedex    = new ClienteFabricas(empresaFedex, _tiempoApp, "", "", "", _tiempoApp);

            _clientesFabricas.Add("dhl", clientesFabricaDhl);
            _clientesFabricas.Add("estafeta", clientesFabricaEstafeta);
            _clientesFabricas.Add("fedex", clientesFabricaFedex);
        }
Exemple #6
0
        public List <IPaqueteria> ObtenerPaqueterias()
        {
            List <IPaqueteria> paqueterias = new List <IPaqueteria>();
            DhlFactory         dhlFactory  = new DhlFactory();

            FedexFactory fedexFactory = new FedexFactory();

            EstafetaFactory estafetaFactory = new EstafetaFactory();

            paqueterias.Add(dhlFactory.CrearPaqueteria());
            paqueterias.Add(fedexFactory.CrearPaqueteria());
            paqueterias.Add(estafetaFactory.CrearPaqueteria());

            return(paqueterias);
        }