Beispiel #1
0
        /// <summary>
        /// Este método se llama antes de comenzar a procesar los elementos.
        /// </summary>
        protected override bool ComenzóAProcesar()
        {
            // Ask for the file.
            string file = myOpenFileDialogService.OpenFileDialog();

            // Return early if the user cancels.
            if (string.IsNullOrEmpty(file))
            {
                return(false);
            }

            var sourceMapManager = new ManejadorDeMapa(EscuchadorDeEstatus);
            var reader           = new LectorDeFormatoPolish(sourceMapManager, file);

            mySourceElements = reader.ElementosDelMapa;
            return(base.ComenzóAProcesar());
        }
        public void PruebaConstructor()
        {
            #region Caso 1: Operación Normal
            {
                #region Preparación.
                // Lee un mapa de prueba.
                const string            archivoDeEntrada    = @"..\..\Data\PruebaEscritorFormatoPolish.mp";
                IEscuchadorDeEstatus    escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
                ManejadorDeMapa         manejadorDeMapa     = new ManejadorDeMapa(escuchadorDeEstatus);
                LectorDeFormatoPolish   lector    = new LectorDeFormatoPolish(manejadorDeMapa, archivoDeEntrada);
                IList <ElementoDelMapa> elementos = lector.ElementosDelMapa;

                const string archivoDeSalida = @"PruebaEscritorFormatoPolish.Caso1.mp";
                #endregion

                // Llama al constructor.
                new EscritorDeFormatoPolish(archivoDeSalida, elementos, escuchadorDeEstatus);

                #region Prueba Archivo de Salida.
                string[] líneasDeEntrada = LéeArchivo(archivoDeEntrada);
                string[] líneasDeSalida  = LéeArchivo(archivoDeSalida);
                Assert.That(líneasDeSalida, Is.EqualTo(líneasDeEntrada), "Líneas");
                #endregion
            }
            #endregion

            #region Caso 2: Archivo de Salida inválido.
            {
                #region Preparación.
                // Crea elementos.
                IEscuchadorDeEstatus    escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
                IList <ElementoDelMapa> elementos           = new List <ElementoDelMapa>();

                // Archivo inválido.
                const string archivoDeSalidaInválido = @"ABC::\\&AAAA";

                // Excepción esperada.
                bool lanzóExcepción = false;
                ArgumentException excepciónEsperada = new ArgumentException(
                    "The path is not of a legal form.");
                #endregion

                // Llama al constructor en prueba.
                try
                {
                    new EscritorDeFormatoPolish(archivoDeSalidaInválido, elementos, escuchadorDeEstatus);
                }
                catch (Exception e)
                {
                    // Prueba las propiedades de la excepción.
                    Assert.That(e.GetType(), Is.EqualTo(excepciónEsperada.GetType()), "Tipo de Excepción");
                    Assert.That(e.Message, Is.EqualTo(excepciónEsperada.Message), "Excepción.Message");

                    lanzóExcepción = true;
                }

                Assert.That(lanzóExcepción, Is.True, "No se lanzó la excepción.");
            }
            #endregion

            #region Caso 3: Elemento con Campo Desconocido.
            {
                #region Preparación.
                // Crea elementos.
                IEscuchadorDeEstatus    escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
                IList <ElementoDelMapa> elementos           = new List <ElementoDelMapa> {
                    new ElementoDesconocido(null, 0, "Clase", new List <Campo> {
                        new CampoDesconocido()
                    })
                };

                const string archivoDeSalida = @"PruebaEscritorFormatoPolish.Caso3.mp";

                // Excepción esperada.
                bool lanzóExcepción = false;
                ArgumentException excepciónEsperada = new ArgumentException(
                    "Campo desconocido: GpsYv.ManejadorDeMapa.Pruebas.PruebaEscritorFormatoPolish+CampoDesconocido");
                #endregion

                // Llama al constructor en prueba.
                try
                {
                    new EscritorDeFormatoPolish(archivoDeSalida, elementos, escuchadorDeEstatus);
                }
                catch (Exception e)
                {
                    // Prueba las propiedades de la excepción.
                    Assert.That(e.GetType(), Is.EqualTo(excepciónEsperada.GetType()), "Tipo de Excepción");
                    Assert.That(e.Message, Is.EqualTo(excepciónEsperada.Message), "Excepción.Message");

                    lanzóExcepción = true;
                }

                Assert.That(lanzóExcepción, Is.True, "No se lanzó la excepción.");
            }
            #endregion
        }
        public void PruebaConstructor()
        {
            #region Caso 1: Operación Normal
              {
            #region Preparación.
            // Lee un mapa de prueba.
            const string archivoDeEntrada = @"..\..\Data\PruebaEscritorFormatoPolish.mp";
            IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
            ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus);
            LectorDeFormatoPolish lector = new LectorDeFormatoPolish(manejadorDeMapa, archivoDeEntrada);
            IList<ElementoDelMapa> elementos = lector.ElementosDelMapa;

            const string archivoDeSalida = @"PruebaEscritorFormatoPolish.Caso1.mp";
            #endregion

            // Llama al constructor.
            new EscritorDeFormatoPolish(archivoDeSalida, elementos, escuchadorDeEstatus);

            #region Prueba Archivo de Salida.
            string[] líneasDeEntrada = LéeArchivo(archivoDeEntrada);
            string[] líneasDeSalida = LéeArchivo(archivoDeSalida);
            Assert.That(líneasDeSalida, Is.EqualTo(líneasDeEntrada), "Líneas");
            #endregion
              }
              #endregion

              #region Caso 2: Archivo de Salida inválido.
              {
            #region Preparación.
            // Crea elementos.
            IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
            IList<ElementoDelMapa> elementos = new List<ElementoDelMapa>();

            // Archivo inválido.
            const string archivoDeSalidaInválido = @"ABC::\\&AAAA";

            // Excepción esperada.
            bool lanzóExcepción = false;
            ArgumentException excepciónEsperada = new ArgumentException(
              "The path is not of a legal form.");
            #endregion

            // Llama al constructor en prueba.
            try
            {
              new EscritorDeFormatoPolish(archivoDeSalidaInválido, elementos, escuchadorDeEstatus);
            }
            catch (Exception e)
            {
              // Prueba las propiedades de la excepción.
              Assert.That(e.GetType(), Is.EqualTo(excepciónEsperada.GetType()), "Tipo de Excepción");
              Assert.That(e.Message, Is.EqualTo(excepciónEsperada.Message), "Excepción.Message");

              lanzóExcepción = true;
            }

            Assert.That(lanzóExcepción, Is.True, "No se lanzó la excepción.");
              }
              #endregion

              #region Caso 3: Elemento con Campo Desconocido.
              {
            #region Preparación.
            // Crea elementos.
            IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
            IList<ElementoDelMapa> elementos = new List<ElementoDelMapa> {
              new ElementoDesconocido(null, 0, "Clase", new List<Campo> {
            new CampoDesconocido() })};

            const string archivoDeSalida = @"PruebaEscritorFormatoPolish.Caso3.mp";

            // Excepción esperada.
            bool lanzóExcepción = false;
            ArgumentException excepciónEsperada = new ArgumentException(
              "Campo desconocido: GpsYv.ManejadorDeMapa.Pruebas.PruebaEscritorFormatoPolish+CampoDesconocido");
            #endregion

            // Llama al constructor en prueba.
            try
            {
              new EscritorDeFormatoPolish(archivoDeSalida, elementos, escuchadorDeEstatus);
            }
            catch (Exception e)
            {
              // Prueba las propiedades de la excepción.
              Assert.That(e.GetType(), Is.EqualTo(excepciónEsperada.GetType()), "Tipo de Excepción");
              Assert.That(e.Message, Is.EqualTo(excepciónEsperada.Message), "Excepción.Message");

              lanzóExcepción = true;
            }

            Assert.That(lanzóExcepción, Is.True, "No se lanzó la excepción.");
              }
              #endregion
        }