예제 #1
0
        public void TestListaEquals()
        {
            Lista <Persona> lista1 = new Lista <Persona>(Factoria.CrearPersonas());
            Lista <Persona> lista2 = new Lista <Persona>(Factoria.CrearPersonas());
            Lista <Persona> lista3 = lista1;
            Lista <Persona> lista4 = new Lista <Persona>(lista2);

            lista4.RemoveLast();

            // Comprobamos que indica que 2 variables que apuntan a la misma referencia lista son iguales.
            Assert.IsTrue(lista1.Equals(lista3), "El método Equals() no indica que dos listas iguales lo sean.");

            // Comprobamos que indica que 2 listas iguales lo son.
            Assert.IsTrue(lista1.Equals(lista2), "El método Equals() no indica que dos listas iguales lo sean.");

            // Comprobamos que indica que listas distintas no son iguales
            Assert.IsFalse(lista1.Equals(null),
                           "El método Equals() indica que dos listas son iguales cuando se le pasa null.");
            Assert.IsFalse(lista1.Equals(new Lista <int>()),
                           "El método Equals() indica que dos listas son iguales cuando se le pasa una lista de otro tipo.");
            Assert.IsFalse(lista1.Equals(lista4),
                           "El método Equals() indica que dos listas son iguales cuando las listas tienen distinto tamaño.");
            lista2.Set(0, null);
            Assert.IsFalse(lista1.Equals(lista2),
                           "El método Equals() indica que dos listas son iguales cuando tienen el mismo tamaño pero elementos distintos.");

            lista1.Set(0, null);
            Assert.IsTrue(lista1.Equals(lista2),
                          "El método Equals() indica que dos listas son distintas cuando tienen los mismos elementos.");
        }