コード例 #1
0
        public void TestListaRemoveValue()
        {
            lista = new Lista <int>(1, 3, 4);

            bool wasRemoved = lista.RemoveValue(3);

            Assert.AreEqual(2, lista.NumeroElementos,
                            "Borrar usando RemoveValue() un elemento que está en la lista no decrementa en 1 el número de elementos.");
            Assert.AreEqual("[1, 4]", lista.ToString(),
                            "Borrar usando RemoveValue() un elemento que está en la lista no lo borra correctamente.");
            Assert.IsTrue(wasRemoved,
                          "Borrar usando RemoveValue() un elemento que está en la lista no retorna true.");

            wasRemoved = lista.RemoveValue(3);
            Assert.AreEqual(2, lista.NumeroElementos,
                            "Borrar usando RemoveValue() un elemento que NO está en la lista modifica el número de elementos.");
            Assert.AreEqual("[1, 4]", lista.ToString(),
                            "Borrar usando RemoveValue() un elemento que NO está en la lista modifica la lista.");
            Assert.IsFalse(wasRemoved,
                           "Borrar usando RemoveValue() un elemento que NO está en la lista no retorna false.");

            // Intentamos borrar el último elemento, para probar si funciona bien en los extremos
            wasRemoved = lista.RemoveValue(4);
            Assert.AreEqual(1, lista.NumeroElementos,
                            "Borrar usando RemoveValue() el último elemento no decrementa el número de elementos en 1.");
            Assert.AreEqual("[1]", lista.ToString(),
                            "Borrar usando RemoveValue() el último elemento no elimina dicho elemento de la lista.");
            Assert.IsTrue(wasRemoved,
                          "Borrar usando RemoveValue() el último elemento no retorna true.");

            // Probamos con una lista que tiene nulls para ver que no da problemas
            Persona         p             = new Persona("C", "S", "1");
            Lista <Persona> listaConNulls = new Lista <Persona>(null, p, null);

            wasRemoved = listaConNulls.RemoveValue(p);

            Assert.AreEqual(2, listaConNulls.NumeroElementos,
                            "Borrar usando RemoveValue() un elemento que está en la lista no decrementa en 1 el número de elementos.");
            Assert.AreEqual("[, ]", listaConNulls.ToString(),
                            "Borrar usando RemoveValue() un elemento que está en la lista no lo borra correctamente.");
            Assert.IsTrue(wasRemoved,
                          "Borrar usando RemoveValue() un elemento que está en la lista no retorna true.");

            wasRemoved = listaConNulls.RemoveValue(null);
            Assert.AreEqual(1, listaConNulls.NumeroElementos,
                            "Borrar usando RemoveValue() un elemento que está en la lista no decrementa en 1 el número de elementos.");
            Assert.AreEqual("[]", listaConNulls.ToString(),
                            "Borrar usando RemoveValue() un elemento que está en la lista no lo borra correctamente.");
            Assert.IsTrue(wasRemoved,
                          "Borrar usando RemoveValue() un elemento que está en la lista no retorna true.");
        }