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 }); }
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); }
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); }