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 CrearTransporte_CreacionTren_ObjetoTrenCreadoCorrectamente()
        {
            //Arrange
            string NombreExp        = "Tren";
            double costoKilometro   = 5;
            double velocidadEntrega = 80;

            //Act
            TrenFactory trenFactory = new TrenFactory();
            ITransporte tren        = trenFactory.CrearTransporte();

            //Assert
            Assert.AreEqual(NombreExp, tren.Nombre);
            Assert.AreEqual(costoKilometro, tren.CostoXKilometro);
            Assert.AreEqual(velocidadEntrega, tren.VelocidadEntrega);
        }