示例#1
0
        public static void Main(string[] args)
        {
            LectorArchivo     lectorArchivo     = new LectorArchivo();
            SeparadorColumnas separadorColumnas = new SeparadorColumnas();
            ValidadorLinea    validadorLinea    = new ValidadorLinea();

            ValidadorFecha      validadorFecha      = new ValidadorFecha();
            ValidadorTransporte validadorTransporte = new ValidadorTransporte();
            Calculador          calculador          = new Calculador();
            ObtenedorEscala     obtenedorEscala     = new ObtenedorEscala();
            ObtenedorDuracion   obtenedorDuracion   = new ObtenedorDuracion();
            ObtenedorTipoEvento obtenedorTipoEvento = new ObtenedorTipoEvento();

            FormateadorFuturoMensajeSingular formateadorFuturoMensajeSingular = new FormateadorFuturoMensajeSingular();
            FormateadorFuturoMensajePlural   formateadorFuturoMensajePlural   = new FormateadorFuturoMensajePlural();
            FormateadorPasadoMensajeSingular formateadorPasadoMensajeSingular = new FormateadorPasadoMensajeSingular();
            FormateadorPasadoMensajePlural   formateadorPasadoMensajePlural   = new FormateadorPasadoMensajePlural();

            formateadorFuturoMensajeSingular.SiguienteFormateador(formateadorFuturoMensajePlural);
            formateadorFuturoMensajePlural.SiguienteFormateador(formateadorPasadoMensajeSingular);
            formateadorPasadoMensajeSingular.SiguienteFormateador(formateadorPasadoMensajePlural);

            PobladorPedido pobladorPedido = new PobladorPedido(
                validadorFecha,
                validadorTransporte,
                calculador,
                obtenedorEscala,
                obtenedorDuracion,
                obtenedorTipoEvento);

            ImprimidorPantalla imprimidorPantalla = new ImprimidorPantalla();

            FactoryEjecutor servicioEjecutor = new FactoryEjecutor(validadorTransporte, pobladorPedido);

            List <string> lineas = lectorArchivo.LeerArchivo(Path.GetFullPath("paquetes.txt"));

            foreach (string linea in lineas)
            {
                string[] columnas = separadorColumnas.SepararPorCaracter(linea, ',');
                if (validadorLinea.ValidarFormato(columnas, 6))
                {
                    IPedido pedido = pobladorPedido.PoblarPedido(columnas);

                    servicioEjecutor.RealizarEnvios(pedido, new DateTime(2020, 01, 01));

                    string resultado = formateadorFuturoMensajeSingular.FormatearMensaje(pedido);

                    imprimidorPantalla.ImprimirConsola(resultado);
                }
            }

            Console.ReadLine();
        }
示例#2
0
        public void PoblarPedido_ColumnasCompletas_DevolverEntidadPedido()
        {
            //Arrange
            _validadorTransporte.Setup(x => x.EsMedioDeTransporte(It.IsAny <string>())).Returns(TipoTransporte.Tren);
            _validadorFecha.Setup(x => x.ValidarFechaString(It.IsAny <string>())).Returns(new DateTime(2020, 1, 1, 0, 1, 0));
            string[] campos = new string[6];
            campos[0] = "Tizimín";
            campos[1] = "Mérida";
            campos[2] = "147";
            campos[3] = "DHL";
            campos[4] = "Tren";
            campos[5] = "01/01/2020 00:01:00";

            //Act
            IPedido pedido = _pobladorPedido.PoblarPedido(campos);

            //Assert
            Assert.AreEqual("Tizimín", pedido.Origen);
            Assert.AreEqual("Mérida", pedido.Destino);
            Assert.AreEqual(147, pedido.Distancia);
            Assert.AreEqual("DHL", pedido.Empresa);
            Assert.AreEqual(TipoTransporte.Tren, pedido.TipoTransporte);
            Assert.AreEqual(new DateTime(2020, 01, 01, 0, 1, 0), pedido.FechaHora);
        }