/// <summary> /// Cambia el Campo de Parámetros de Ruta. /// </summary> /// <param name="elCampoParámetrosDeRutaNuevo">El Campo de Parámetros de Ruta nuevo.</param> /// <param name="laRazón">La razón del cambio.</param> /// <returns>Una variable lógica que indica si se cambió el campo.</returns> public bool CambiaCampoParámetrosDeRuta(CampoParámetrosDeRuta elCampoParámetrosDeRutaNuevo, string laRazón) { // Solo cambia el campo si es diferente. if (elCampoParámetrosDeRutaNuevo == CampoParámetrosDeRuta) { return(false); } // Si no tiene Campo de Parámetros de Ruta entonces añadimos // un Campo de Parámetros de Ruta con el nuevo Límite de Velocidad y // una Clase de Ruta estándar. if (!miTieneCampoParámetrosDeRutaEnCampos) { // Añade el campo. AñadeCampo(elCampoParámetrosDeRutaNuevo, laRazón); CampoParámetrosDeRuta = elCampoParámetrosDeRutaNuevo; miTieneCampoParámetrosDeRutaEnCampos = true; } else { // Cambia el campo. CambiaCampo(elCampoParámetrosDeRutaNuevo, CampoParámetrosDeRuta, laRazón); CampoParámetrosDeRuta = elCampoParámetrosDeRutaNuevo; } return(true); }
private int ArreglaSentidos(Vía laVía) { int númeroDeProblemasDetectados = 0; string indicadorDeDirección = null; if (laVía.CampoIndicadorDeDirección != null) { indicadorDeDirección = laVía.CampoIndicadorDeDirección.Texto; } bool unSoloSentido = laVía.CampoParámetrosDeRuta.OtrosParámetros[CampoParámetrosDeRuta.IndiceUnSoloSentido]; if ((indicadorDeDirección == null) && unSoloSentido) { CampoGenérico campoIndicadorDeDirecciónDeUnSoloSentido = new CampoGenérico(Vía.IdentificadorIndicadorDeDirección, "1"); laVía.CambiaCampoIndicadorDeDirección( campoIndicadorDeDirecciónDeUnSoloSentido, "M107: La vía no tiene Indicador de Dirección pero es de un solo sentido. Añadido el Indicadorde Dirrección con valor '1'."); ++númeroDeProblemasDetectados; } else if ((indicadorDeDirección == "1") && !unSoloSentido) { CampoParámetrosDeRuta campoParámetrosDeRuta = laVía.CampoParámetrosDeRuta; bool[] otrosParámetrosNuevos = (bool[])campoParámetrosDeRuta.OtrosParámetros.Clone(); otrosParámetrosNuevos[CampoParámetrosDeRuta.IndiceUnSoloSentido] = true; CampoParámetrosDeRuta campoParámetrosDeRutaNuevo = new CampoParámetrosDeRuta( campoParámetrosDeRuta.LímiteDeVelocidad, campoParámetrosDeRuta.ClaseDeRuta, otrosParámetrosNuevos); laVía.CambiaCampoParámetrosDeRuta( campoParámetrosDeRutaNuevo, "M106: La vía tiene el Indicador de Dirección igual a '1' pero no es de un solo sentido. Cambiada a un solo sentido."); ++númeroDeProblemasDetectados; } else if ((indicadorDeDirección == "0") && unSoloSentido) { CampoGenérico campoIndicadorDeDirecciónDeUnSoloSentido = new CampoGenérico(Vía.IdentificadorIndicadorDeDirección, "1"); laVía.CambiaCampoIndicadorDeDirección( campoIndicadorDeDirecciónDeUnSoloSentido, "M107: La vía tiene el Indicador de Dirección igual a '0' pero es de un solo sentido. Cambiado el Indicador de Dirección a valor '1'."); ++númeroDeProblemasDetectados; } return(númeroDeProblemasDetectados); }
public void PruebaToString() { #region Caso 1: Indices en rango válido. { // Preparación. CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta( new LímiteDeVelocidad(3), new ClaseDeRuta(1), new bool[] { true, false, false, true, false, false, true, false, false, true }); string resultadoEsperado = "3,1,1,0,0,1,0,0,1,0,0,1"; // Llama al constructor en prueba. string resultado = objectoEnPrueba.ToString(); // Prueba resultado. Assert.That(resultado, Is.EqualTo(resultadoEsperado), "Resultado"); } #endregion }
/// <summary> /// Constructor. /// </summary> /// <param name="elManejadorDeMapa">El manejador del mapa.</param> /// <param name="elNúmero">El número de la <see cref="Polilínea"/>.</param> /// <param name="laClase">La clase de la <see cref="Polilínea"/>.</param> /// <param name="losCampos">Los campos de la <see cref="Polilínea"/>.</param> public Vía( ManejadorDeMapa elManejadorDeMapa, int elNúmero, string laClase, IList <Campo> losCampos) : base(elManejadorDeMapa, elNúmero, laClase, losCampos) { CampoParámetrosDeRuta = miCampoParámetrosDeRutaPorDefecto; CampoIndicadorDeDirección = null; // Busca los campos específicos de las vías. foreach (Campo campo in losCampos) { CampoParámetrosDeRuta campoParámetrosDeRuta = campo as CampoParámetrosDeRuta; CampoNombre campoNombre; CampoGenérico campoGenérico; if (campoParámetrosDeRuta != null) { CampoParámetrosDeRuta = campoParámetrosDeRuta; miTieneCampoParámetrosDeRutaEnCampos = true; } else if ((campoNombre = campo as CampoNombre) != null) { if (campoNombre.Número == 2) { miCampoNombreSecundario = campoNombre; } } else if ((campoGenérico = campo as CampoGenérico) != null) { if (campoGenérico.Identificador == IdentificadorIndicadorDeDirección) { CampoIndicadorDeDirección = campoGenérico; } } } CreaNodos(); }
private void EnMenúEstandarizarLímiteDeVelocidadYClaseDeRuta(object elObjecto, EventArgs losArgumentos) { // Retornamos si no hay Vías seleccionadas. int númeroDeVíasSeleccionadas = Lista.SelectedIndices.Count; if (númeroDeVíasSeleccionadas == 0) { return; } // Pregunta si se quiere Estandarizar el Límite de Velocidad y la Clase de Ruta. DialogResult respuesta = MessageBox.Show( string.Format("Está seguro que quiere Estandarizar el Límite de Velocidad y la Clase de Ruta en las {0} Vías seleccionadas?", númeroDeVíasSeleccionadas), "Estandarizar Límite de Velocidad y Clase de Ruta", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); // Estandarizar el Límite de Velocidad y la Clase de Ruta si el usuario dice que si. if (respuesta == DialogResult.Yes) { // Cambia las vías. ManejadorDeVías.SuspendeEventos(); IList <Vía> vías = ObtieneElementosSeleccionados <Vía>(); foreach (Vía vía in vías) { Tipo?tipo = vía.Tipo; if (tipo != null) { CampoParámetrosDeRuta campo = new CampoParámetrosDeRuta( RestriccionesDeParámetrosDeRuta.LímitesDeVelocidad[(Tipo)tipo], RestriccionesDeParámetrosDeRuta.ClasesDeRuta[(Tipo)tipo], vía.CampoParámetrosDeRuta.OtrosParámetros); vía.CambiaCampoParámetrosDeRuta(campo, "Cambiado a Límite de Velocidad y Clase de Ruta Estándar"); } } ManejadorDeVías.RestableceEventos(); // Notifica la edición. EnvíaEventoEditó(); } }
public void PruebaConstructor() { // Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; CampoParámetrosDeRuta parámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(2), new ClaseDeRuta(3), new bool[10]); List <Campo> campos = new List <Campo> { new CampoNombre(nombre), new CampoComentario(";Comentario"), new CampoTipo(tipo), parámetrosDeRuta }; // Llama al constructor. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); // Prueba Propiedades. Assert.That(campos, Is.EqualTo(objectoEnPrueba.Campos), "Campos"); Assert.That(clase, Is.EqualTo(objectoEnPrueba.Clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.False, "FuéModificado"); Assert.That(nombre, Is.EqualTo(objectoEnPrueba.Nombre), "Nombre"); Assert.That(número, Is.EqualTo(objectoEnPrueba.Número), "Número"); Assert.That(objectoEnPrueba.Original, Is.Null, "Original"); Assert.That(string.Empty, Is.EqualTo(objectoEnPrueba.RazónParaEliminación), "RazónParaEliminación"); Assert.That(new Tipo(tipo), Is.EqualTo(objectoEnPrueba.Tipo), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(parámetrosDeRuta), "CampoParámetrosDeRuta"); }
public void PruebaCambiaCampoParámetrosDeRuta() { #region Caso 1: Vía con Campo de Parámetros de Ruta. { #region Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; CampoParámetrosDeRuta campoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(2), new ClaseDeRuta(3), new bool[] { true, false, false, true, true, false, true, true, false, false }); List <Campo> campos = new List <Campo> { new CampoNombre(nombre), new CampoComentario(";Comentario"), new CampoTipo(tipo), campoParámetrosDeRuta }; // Crea el objeto en prueba. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); ElementoDelMapa víaOriginal = (ElementoDelMapa)objectoEnPrueba.Clone(); // Nuevos valores. CampoParámetrosDeRuta nuevoCampoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(5), campoParámetrosDeRuta.ClaseDeRuta, campoParámetrosDeRuta.OtrosParámetros); Assert.That(nuevoCampoParámetrosDeRuta, Is.Not.EqualTo(campoParámetrosDeRuta), "El nuevo campo de parámetros de ruta debe ser distinto"); #endregion // Llama al método a probar. objectoEnPrueba.CambiaCampoParámetrosDeRuta(nuevoCampoParámetrosDeRuta, "Razón"); // Prueba Propiedades. Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos"); Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.True, "FuéModificado"); Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre"); Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número"); PruebaElementoDesconocido.AseguraElementoEsEquivalente(víaOriginal, objectoEnPrueba.Original, "Original"); Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación"); Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(nuevoCampoParámetrosDeRuta), "CampoParámetrosDeRuta"); } #endregion #region Caso 2: Vía sin Campo de Parámetros de Ruta. { #region Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; List <Campo> campos = new List <Campo> { new CampoNombre(nombre), new CampoComentario(";Comentario"), new CampoTipo(tipo) }; // Crea el objeto en prueba. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); ElementoDelMapa víaOriginal = (ElementoDelMapa)objectoEnPrueba.Clone(); // Nuevos valores. CampoParámetrosDeRuta nuevoCampoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(4), new ClaseDeRuta(1), new bool[10]); #endregion // Llama al método a probar. objectoEnPrueba.CambiaCampoParámetrosDeRuta(nuevoCampoParámetrosDeRuta, "Razón"); // Prueba Propiedades. Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos"); Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.True, "FuéModificado"); Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre"); Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número"); PruebaElementoDesconocido.AseguraElementoEsEquivalente(víaOriginal, objectoEnPrueba.Original, "Original"); Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación"); Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(nuevoCampoParámetrosDeRuta), "CampoParámetrosDeRuta"); } #endregion #region Caso 3: Vía con el Mismo Campo de Parámetros de Ruta. { #region Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; CampoParámetrosDeRuta campoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(2), new ClaseDeRuta(3), new bool[] { true, false, false, true, true, false, true, true, false, false }); List <Campo> campos = new List <Campo> { new CampoNombre(nombre), new CampoComentario(";Comentario"), new CampoTipo(tipo), campoParámetrosDeRuta }; // Crea el objeto en prueba. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); #endregion // Llama al método a probar. objectoEnPrueba.CambiaCampoParámetrosDeRuta(campoParámetrosDeRuta, "Razón"); // Prueba Propiedades. Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos"); Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.False, "FuéModificado"); Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre"); Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número"); Assert.That(objectoEnPrueba.Original, Is.Null, "Original"); Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación"); Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(campoParámetrosDeRuta), "CampoParámetrosDeRuta"); } #endregion }
public void PruebaConstructorConString() { #region Caso 1: Indice en rango válido. { // Preparación. LímiteDeVelocidad límiteDeVelocidad = new LímiteDeVelocidad(2); ClaseDeRuta claseDeRuta = new ClaseDeRuta(3); string parámetrosDeRuta = "2,3,0,1,0,0,0,0,0,0,0,1"; bool[] otrosParámetrosEsperados = new bool[] { false, true, false, false, false, false, false, false, false, true }; // Llama al constructor en prueba. CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta(parámetrosDeRuta); // Prueba Propiedades. Assert.That(objectoEnPrueba.Identificador, Is.EqualTo(CampoParámetrosDeRuta.IdentificadorDeParámetrosDeRuta), "Identificador"); Assert.That(objectoEnPrueba.ClaseDeRuta, Is.EqualTo(claseDeRuta), "ClaseDeRuta"); Assert.That(objectoEnPrueba.LímiteDeVelocidad, Is.EqualTo(límiteDeVelocidad), "LímiteDeVelocidad"); Assert.That(objectoEnPrueba.OtrosParámetros, Is.EqualTo(otrosParámetrosEsperados), "OtrosParámetros"); } #endregion #region Caso 2: Parametros de Tuta con muy pocos elementos. { // Preparación. string parametrosDeRutaInválidos = "2"; bool lanzóExcepción = false; ArgumentException excepciónEsperada = new ArgumentException( "Los parámetros de rutas deben tener 12 elementos separados por coma, pero es: 2"); // Llama al constructor en prueba. try { CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta(parametrosDeRutaInválidos); } 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: Otros Parámetros con valores diferente de 0 ó 1. { // Preparación. string parametrosDeRutaInválidos = "2,3,0,5,0,0,0,0,0,0,0,1"; bool lanzóExcepción = false; ArgumentException excepciónEsperada = new ArgumentException( "El números de los parámetros de ruta para el tercer elemento en adelante tiene que ser 0 ó 1:" + " 2,3,0,5,0,0,0,0,0,0,0,1\r\nParameter name: elTextoDeParámetrosDeRuta"); // Llama al constructor en prueba. try { CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta(parametrosDeRutaInválidos); } 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 PruebaConstructorConLímiteDeVelocidadClaseDeRutaBoolArray() { #region Caso 1: Caso normal. { // Preparación. LímiteDeVelocidad límiteDeVelocidad = new LímiteDeVelocidad(2); ClaseDeRuta claseDeRuta = new ClaseDeRuta(3); bool[] otrosParámetros = new bool[] { true, false, true, false, false, false, true, true, false, true }; // Llama al constructor en prueba. CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta(límiteDeVelocidad, claseDeRuta, otrosParámetros); // Prueba Propiedades. Assert.That(objectoEnPrueba.Identificador, Is.EqualTo(CampoParámetrosDeRuta.IdentificadorDeParámetrosDeRuta), "Identificador"); Assert.That(objectoEnPrueba.ClaseDeRuta, Is.EqualTo(claseDeRuta), "ClaseDeRuta"); Assert.That(objectoEnPrueba.LímiteDeVelocidad, Is.EqualTo(límiteDeVelocidad), "LímiteDeVelocidad"); Assert.That(objectoEnPrueba.OtrosParámetros, Is.EqualTo(otrosParámetros), "OtrosParámetros"); } #endregion #region Caso 2: Muy pocos elementos en Otros Parámetros. { // Preparación. LímiteDeVelocidad límiteDeVelocidad = new LímiteDeVelocidad(2); ClaseDeRuta claseDeRuta = new ClaseDeRuta(3); bool[] otrosParámetros = new bool[] { true, true, false, false, false, true, true, false, true }; bool lanzóExcepción = false; ArgumentException excepciónEsperada = new ArgumentException( "El números de Otrós Parámetros debe ser 10 pero es 9\r\nParameter name: losOtrosParámetros"); // Llama al constructor en prueba. try { CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta(límiteDeVelocidad, claseDeRuta, otrosParámetros); } 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: Muchos elementos en Otros Parámetros. { // Preparación. LímiteDeVelocidad límiteDeVelocidad = new LímiteDeVelocidad(2); ClaseDeRuta claseDeRuta = new ClaseDeRuta(3); bool[] otrosParámetros = new bool[] { true, true, false, true, false, false, false, true, true, false, true }; bool lanzóExcepción = false; ArgumentException excepciónEsperada = new ArgumentException( "El números de Otrós Parámetros debe ser 10 pero es 11\r\nParameter name: losOtrosParámetros"); // Llama al constructor en prueba. try { CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta(límiteDeVelocidad, claseDeRuta, otrosParámetros); } 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 }
/// <summary> /// Cambia el Campo de Parámetros de Ruta. /// </summary> /// <param name="elCampoParámetrosDeRutaNuevo">El Campo de Parámetros de Ruta nuevo.</param> /// <param name="laRazón">La razón del cambio.</param> /// <returns>Una variable lógica que indica si se cambió el campo.</returns> public bool CambiaCampoParámetrosDeRuta(CampoParámetrosDeRuta elCampoParámetrosDeRutaNuevo, string laRazón) { // Solo cambia el campo si es diferente. if (elCampoParámetrosDeRutaNuevo == CampoParámetrosDeRuta) { return false; } // Si no tiene Campo de Parámetros de Ruta entonces añadimos // un Campo de Parámetros de Ruta con el nuevo Límite de Velocidad y // una Clase de Ruta estándar. if (!miTieneCampoParámetrosDeRutaEnCampos) { // Añade el campo. AñadeCampo(elCampoParámetrosDeRutaNuevo, laRazón); CampoParámetrosDeRuta = elCampoParámetrosDeRutaNuevo; miTieneCampoParámetrosDeRutaEnCampos = true; } else { // Cambia el campo. CambiaCampo(elCampoParámetrosDeRutaNuevo, CampoParámetrosDeRuta, laRazón); CampoParámetrosDeRuta = elCampoParámetrosDeRutaNuevo; } return true; }
public void PruebaCambiaCampoParámetrosDeRuta() { #region Caso 1: Vía con Campo de Parámetros de Ruta. { #region Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; CampoParámetrosDeRuta campoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(2), new ClaseDeRuta(3), new bool[] { true, false, false, true, true, false, true, true, false, false }); List<Campo> campos = new List<Campo> { new CampoNombre (nombre), new CampoComentario (";Comentario"), new CampoTipo (tipo), campoParámetrosDeRuta }; // Crea el objeto en prueba. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); ElementoDelMapa víaOriginal = (ElementoDelMapa)objectoEnPrueba.Clone(); // Nuevos valores. CampoParámetrosDeRuta nuevoCampoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(5), campoParámetrosDeRuta.ClaseDeRuta, campoParámetrosDeRuta.OtrosParámetros); Assert.That(nuevoCampoParámetrosDeRuta, Is.Not.EqualTo(campoParámetrosDeRuta), "El nuevo campo de parámetros de ruta debe ser distinto"); #endregion // Llama al método a probar. objectoEnPrueba.CambiaCampoParámetrosDeRuta(nuevoCampoParámetrosDeRuta, "Razón"); // Prueba Propiedades. Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos"); Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.True, "FuéModificado"); Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre"); Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número"); PruebaElementoDesconocido.AseguraElementoEsEquivalente(víaOriginal, objectoEnPrueba.Original, "Original"); Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación"); Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(nuevoCampoParámetrosDeRuta), "CampoParámetrosDeRuta"); } #endregion #region Caso 2: Vía sin Campo de Parámetros de Ruta. { #region Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; List<Campo> campos = new List<Campo> { new CampoNombre (nombre), new CampoComentario (";Comentario"), new CampoTipo (tipo) }; // Crea el objeto en prueba. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); ElementoDelMapa víaOriginal = (ElementoDelMapa)objectoEnPrueba.Clone(); // Nuevos valores. CampoParámetrosDeRuta nuevoCampoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad (4), new ClaseDeRuta (1), new bool[10]); #endregion // Llama al método a probar. objectoEnPrueba.CambiaCampoParámetrosDeRuta(nuevoCampoParámetrosDeRuta, "Razón"); // Prueba Propiedades. Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos"); Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.True, "FuéModificado"); Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre"); Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número"); PruebaElementoDesconocido.AseguraElementoEsEquivalente(víaOriginal, objectoEnPrueba.Original, "Original"); Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación"); Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(nuevoCampoParámetrosDeRuta), "CampoParámetrosDeRuta"); } #endregion #region Caso 3: Vía con el Mismo Campo de Parámetros de Ruta. { #region Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; CampoParámetrosDeRuta campoParámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(2), new ClaseDeRuta(3), new bool[] { true, false, false, true, true, false, true, true, false, false }); List<Campo> campos = new List<Campo> { new CampoNombre (nombre), new CampoComentario (";Comentario"), new CampoTipo (tipo), campoParámetrosDeRuta }; // Crea el objeto en prueba. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); #endregion // Llama al método a probar. objectoEnPrueba.CambiaCampoParámetrosDeRuta(campoParámetrosDeRuta, "Razón"); // Prueba Propiedades. Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos"); Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.False, "FuéModificado"); Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre"); Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número"); Assert.That(objectoEnPrueba.Original, Is.Null, "Original"); Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación"); Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(campoParámetrosDeRuta), "CampoParámetrosDeRuta"); } #endregion }
public void PruebaConstructor() { // Preparación. int número = 12; ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión()); string clase = "clase"; string nombre = "Nombre"; string tipo = "0xc"; string descripción = "Roundabout"; CampoParámetrosDeRuta parámetrosDeRuta = new CampoParámetrosDeRuta( new LímiteDeVelocidad(2), new ClaseDeRuta(3), new bool[10]); List<Campo> campos = new List<Campo> { new CampoNombre (nombre), new CampoComentario (";Comentario"), new CampoTipo (tipo), parámetrosDeRuta }; // Llama al constructor. Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos); // Prueba Propiedades. Assert.That(campos, Is.EqualTo(objectoEnPrueba.Campos), "Campos"); Assert.That(clase, Is.EqualTo(objectoEnPrueba.Clase), "Clase"); Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción"); Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado"); Assert.That(objectoEnPrueba.FuéModificado, Is.False, "FuéModificado"); Assert.That(nombre, Is.EqualTo(objectoEnPrueba.Nombre), "Nombre"); Assert.That(número, Is.EqualTo(objectoEnPrueba.Número), "Número"); Assert.That(objectoEnPrueba.Original, Is.Null, "Original"); Assert.That(string.Empty, Is.EqualTo(objectoEnPrueba.RazónParaEliminación), "RazónParaEliminación"); Assert.That(new Tipo(tipo), Is.EqualTo(objectoEnPrueba.Tipo), "Tipo"); Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(parámetrosDeRuta), "CampoParámetrosDeRuta"); }
public void PruebaToString() { #region Caso 1: Indices en rango válido. { // Preparación. CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta( new LímiteDeVelocidad (3), new ClaseDeRuta (1), new bool[] { true, false, false, true, false, false, true, false, false, true }); string resultadoEsperado = "3,1,1,0,0,1,0,0,1,0,0,1"; // Llama al constructor en prueba. string resultado = objectoEnPrueba.ToString(); // Prueba resultado. Assert.That(resultado, Is.EqualTo(resultadoEsperado), "Resultado"); } #endregion }
public void PruebaConstructorConString() { #region Caso 1: Indice en rango válido. { // Preparación. LímiteDeVelocidad límiteDeVelocidad = new LímiteDeVelocidad (2); ClaseDeRuta claseDeRuta = new ClaseDeRuta (3); string parámetrosDeRuta = "2,3,0,1,0,0,0,0,0,0,0,1"; bool[] otrosParámetrosEsperados = new bool[] { false, true, false, false, false, false, false, false, false, true }; // Llama al constructor en prueba. CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta(parámetrosDeRuta); // Prueba Propiedades. Assert.That(objectoEnPrueba.Identificador, Is.EqualTo(CampoParámetrosDeRuta.IdentificadorDeParámetrosDeRuta), "Identificador"); Assert.That(objectoEnPrueba.ClaseDeRuta, Is.EqualTo(claseDeRuta), "ClaseDeRuta"); Assert.That(objectoEnPrueba.LímiteDeVelocidad, Is.EqualTo(límiteDeVelocidad), "LímiteDeVelocidad"); Assert.That(objectoEnPrueba.OtrosParámetros, Is.EqualTo(otrosParámetrosEsperados), "OtrosParámetros"); } #endregion #region Caso 2: Parametros de Tuta con muy pocos elementos. { // Preparación. string parametrosDeRutaInválidos = "2"; bool lanzóExcepción = false; ArgumentException excepciónEsperada = new ArgumentException( "Los parámetros de rutas deben tener 12 elementos separados por coma, pero es: 2"); // Llama al constructor en prueba. try { CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta(parametrosDeRutaInválidos); } 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: Otros Parámetros con valores diferente de 0 ó 1. { // Preparación. string parametrosDeRutaInválidos = "2,3,0,5,0,0,0,0,0,0,0,1"; bool lanzóExcepción = false; ArgumentException excepciónEsperada = new ArgumentException( "El números de los parámetros de ruta para el tercer elemento en adelante tiene que ser 0 ó 1:" + " 2,3,0,5,0,0,0,0,0,0,0,1\r\nParameter name: elTextoDeParámetrosDeRuta"); // Llama al constructor en prueba. try { CampoParámetrosDeRuta objectoEnPrueba = new CampoParámetrosDeRuta(parametrosDeRutaInválidos); } 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 }
private void EnMenúEstandarizarLímiteDeVelocidadYClaseDeRuta(object elObjecto, EventArgs losArgumentos) { // Retornamos si no hay Vías seleccionadas. int númeroDeVíasSeleccionadas = Lista.SelectedIndices.Count; if (númeroDeVíasSeleccionadas == 0) { return; } // Pregunta si se quiere Estandarizar el Límite de Velocidad y la Clase de Ruta. DialogResult respuesta = MessageBox.Show( string.Format("Está seguro que quiere Estandarizar el Límite de Velocidad y la Clase de Ruta en las {0} Vías seleccionadas?", númeroDeVíasSeleccionadas), "Estandarizar Límite de Velocidad y Clase de Ruta", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); // Estandarizar el Límite de Velocidad y la Clase de Ruta si el usuario dice que si. if (respuesta == DialogResult.Yes) { // Cambia las vías. ManejadorDeVías.SuspendeEventos(); IList<Vía> vías = ObtieneElementosSeleccionados<Vía>(); foreach (Vía vía in vías) { Tipo? tipo = vía.Tipo; if (tipo != null) { CampoParámetrosDeRuta campo = new CampoParámetrosDeRuta( RestriccionesDeParámetrosDeRuta.LímitesDeVelocidad[(Tipo)tipo], RestriccionesDeParámetrosDeRuta.ClasesDeRuta[(Tipo)tipo], vía.CampoParámetrosDeRuta.OtrosParámetros); vía.CambiaCampoParámetrosDeRuta(campo, "Cambiado a Límite de Velocidad y Clase de Ruta Estándar"); } } ManejadorDeVías.RestableceEventos(); // Notifica la edición. EnvíaEventoEditó(); } }