示例#1
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
            });
        }
示例#3
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);
        }
示例#4
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);
        }