diff --git a/UyTube_aplicacion/src/Logica/Clases/Canal.java b/UyTube_aplicacion/src/Logica/Clases/Canal.java
index 3fdb98835770eab5f6a75fe4075dd57fcab0dfa6..8dc9c57221728f25423ba75ebe662b3b61b7bead 100644
--- a/UyTube_aplicacion/src/Logica/Clases/Canal.java
+++ b/UyTube_aplicacion/src/Logica/Clases/Canal.java
@@ -309,6 +309,13 @@ public class Canal {
             if (this.privacidad == Privacidad.PRIVADO && ldr.getPrivacidad() == Privacidad.PUBLICO){
                 throw new RuntimeException("No se puede hacer publica una lista de reproduccion de un canal privado");
             }
+            for (Map.Entry<Integer, ListaDeReproduccion> m : this.misListas.entrySet()){
+                if (m.getKey() != ldr.getId()){
+                    if (m.getValue().getNombre().equals(ldr.getNombre())) {
+                        throw new RuntimeException("El canal ya posee una lista con ese nombre");
+                    }
+                }
+            }
             
             this.misListas.get(ldr.getId()).modificar(ldr);
         } else {
@@ -327,6 +334,14 @@ public class Canal {
                 throw new RuntimeException("No se puede hacer publico un video de un canal privado");
             }
             
+            for (Map.Entry<Integer, Video> m : this.misVideos.entrySet()){
+                if (m.getKey() != video.getId()){
+                    if (m.getValue().getNombre().equals(video.getNombre())) {
+                        throw new RuntimeException("El canal ya posee una lista con ese nombre");
+                    }
+                }
+            }
+            
             this.misVideos.get(video.getId()).modificar(video);
         } else {
             throw new RuntimeException("El video no pertenece al canal");
@@ -408,11 +423,11 @@ public class Canal {
 
     public boolean validarListaParticular(String nombreLista) {
         for (Map.Entry<Integer, ListaDeReproduccion> l : misListas.entrySet()) {
-            if (l.getValue().getTipo() == TipoListaDeReproduccion.PARTICULAR && l.getValue().getNombre().equals(nombreLista)){
-                return true;
+            if (l.getValue().getTipo() == TipoListaDeReproduccion.PARTICULAR && l.getValue().getNombre().equals(nombreLista)) {
+                return false;
             }
         }
-        return false;
+        return true;
     }
 
     public DtValoracion obtenerValoracion(int id, String nickname) {
diff --git a/UyTube_aplicacion/src/Logica/Clases/Usuario.java b/UyTube_aplicacion/src/Logica/Clases/Usuario.java
index ff56a24061b477a3e1d3b4c6661b4ac5120b9b35..6f0de14d4e7916c7bd136f52c28d39b042f55d33 100644
--- a/UyTube_aplicacion/src/Logica/Clases/Usuario.java
+++ b/UyTube_aplicacion/src/Logica/Clases/Usuario.java
@@ -219,7 +219,12 @@ public class Usuario extends Persona{
         if(DtCanal == null){
             throw new RuntimeException("El canal no puede ser null");
         }
-        
+        if (this.nickname != DtUsu.getNickname()){
+            throw new RuntimeException("El nickname no puede ser modificado");
+        }
+        if (this.correo != DtUsu.getCorreo()){
+            throw new RuntimeException("El correo no puede ser modificado");
+        }
         super.setNombre(DtUsu.getNombre());
         super.setApellido(DtUsu.getApellido());
         super.setContrasenia(DtUsu.getContrasenia());
diff --git a/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java b/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java
index 7cdf2007e2856c853813101e6471c14db6407051..ce0e26d38436b006f7c18956fb6c0d1d8f47a9dc 100644
--- a/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java
+++ b/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java
@@ -48,7 +48,7 @@ public class CAdmin implements IAdmin{
         return instancia;        
     }
     
-    public void agregarVideoAListaDeReproduccion(){
+    public void agregarVideoAListaDeReproduccion(int idLista){
         /**
          * Agrega el video idVideoSeleccionado a la lista idListaSeleccionada
          */
@@ -61,10 +61,10 @@ public class CAdmin implements IAdmin{
         if (idVideoSeleccionado == 0){
             throw new RuntimeException("El sistema no tiene un video seleccionado");
         }
-        if (idListaSeleccionada == 0){
-            throw new RuntimeException("El sistema no tiene una lista de reproduccion seleccionado");
+        if (idLista == 0){
+            throw new RuntimeException("El ID de la lista de reproduccion no es valido");
         }
-        usuarioActual.agregarVideoALista(idListaSeleccionada, idVideoSeleccionado, usuarioSeleccionado);
+        usuarioActual.agregarVideoALista(idLista, idVideoSeleccionado, usuarioSeleccionado);
     }
     
     public void altaCategoria(String categoria){
@@ -127,7 +127,10 @@ public class CAdmin implements IAdmin{
             throw new RuntimeException("El sistema no tiene un usuario seleccionado");
         }
         if (lista == null){
-            throw new RuntimeException("El DataType lista de reproduccion no puede ser null");
+            throw new RuntimeException("El DataType recibido es null");
+        }
+        if ( ! existeCategoria(lista.getCategoria())){
+            throw new RuntimeException("La categoria no existe");
         }
         usuarioSeleccionado.agregarListaParticular(lista);
         
@@ -213,6 +216,9 @@ public class CAdmin implements IAdmin{
         if (video == null){
             throw new RuntimeException("El DataType video no puede ser null");
         }
+        if ( ! existeCategoria(video.getCategoria())){
+            throw new RuntimeException("La categoria no existe");
+        }
         usuarioSeleccionado.agregarVideoACanal(video);
     }
     
@@ -424,7 +430,12 @@ public class CAdmin implements IAdmin{
         if (idListaSeleccionada == 0){
             throw new RuntimeException("El sistema no tiene una lista de reproduccion seleccionado");
         }
-        
+        if (lista == null){
+            throw new RuntimeException("El DataType recibido es null");
+        }
+        if ( ! existeCategoria(lista.getCategoria())){
+            throw new RuntimeException("La categoria no existe");
+        }
         // no confio en que el DataType recibido venga con el id del video correcto,
         // asi que creo otro y con el idVideoSeleccionado por las dudas
         DtListaDeReproduccion dtl = new DtListaDeReproduccion(
@@ -465,7 +476,9 @@ public class CAdmin implements IAdmin{
         if (video == null){
             throw new RuntimeException("El DataType video no puede ser null");
         }
-        
+        if ( ! existeCategoria(video.getCategoria())){
+            throw new RuntimeException("La categoria no existe");
+        }
         // no confio en que el DataType recibido venga con el id del video correcto,
         // asi que creo otro y con el idVideoSeleccionado por las dudas
         DtVideo dtv = new DtVideo(
@@ -523,7 +536,7 @@ public class CAdmin implements IAdmin{
         return usuarioSeleccionado.obtenerValoracion(idVideoSeleccionado, usuarioActual.getNickname());
     }
     
-    public void quitarVideoDeListaDeReproduccion(){
+    public void quitarVideoDeListaDeReproduccion(int idVideo){
         /**
          * Quita el video idVideoSeleccionado de la lista idListaSeleccionada
          */
@@ -533,8 +546,8 @@ public class CAdmin implements IAdmin{
         if (idListaSeleccionada == 0){
             throw new RuntimeException("El sistema no tiene una lista de reproduccion seleccionado");
         }
-        if (idVideoSeleccionado == 0){
-            throw new RuntimeException("El sistema no tiene un video seleccionado");
+        if (idVideo == 0){
+            throw new RuntimeException("El ID de video no es valido");
         }
         usuarioSeleccionado.quitarVideoDeListaDeReproduccion(idListaSeleccionada, idVideoSeleccionado);
     }
@@ -610,6 +623,12 @@ public class CAdmin implements IAdmin{
         if (this.usuarioSeleccionado == null){
             throw new RuntimeException("El sistema no tiene un usuario seleccionado");
         }
+        ArrayList<String> l = ListaDeReproduccion.listarNombresDeListasPorDefecto();
+        for (int i = 0; i < l.size(); i++){
+            if (l.get(i).equals(nombre)){
+                return false;
+            }
+        }
         return usuarioSeleccionado.validarListaParticular(nombre);
     }
     
@@ -618,8 +637,15 @@ public class CAdmin implements IAdmin{
          * Devuelve false si existe algun usuario en el sistema que posea una
          * lista de reproduccion con ese nombre
          */
+        
+        ArrayList<String> l = ListaDeReproduccion.listarNombresDeListasPorDefecto();
+        for (int i = 0; i < l.size(); i++){
+            if (l.get(i).equals(nombre)){
+                return false;
+            }
+        }
         for (Map.Entry<String, Usuario> u : this.usuarios.entrySet()){
-            if (u.getValue().validarListaParticular(nombre)){
+            if ( ! u.getValue().validarListaParticular(nombre)){
                 return false;
             }
         }
diff --git a/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java b/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java
index c76875ded668e447d1e75a5f539fd29d908e917a..f188cbf06e9a4333d733bb9c7969804dedb7ecb9 100644
--- a/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java
+++ b/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 
 
 public interface IAdmin {
-    public void agregarVideoAListaDeReproduccion();
+    public void agregarVideoAListaDeReproduccion(int idLista);
     public void altaCategoria(String categoria);
     public void altaComentario(DtComentario dtCom);
     public void altaComentario(DtComentario dtCom, int idComPadre);
@@ -39,7 +39,7 @@ public interface IAdmin {
     public DtCanal obtenerCanalDeUsuario();
     public ArrayList<DtValoracion> obtenerValoracionesDeVideo();
     public DtValoracion obtenerValoracionDada();
-    public void quitarVideoDeListaDeReproduccion();
+    public void quitarVideoDeListaDeReproduccion(int idVideo);
     public DtUsuario seleccionarUsuario(String nickname);
     public DtUsuario seleccionarUsuarioActual(String nickname);
     public DtVideo seleccionarVideo(int idVideo);
diff --git a/UyTube_aplicacion/test/Logica/Controladores/CAdminTest.java b/UyTube_aplicacion/test/Logica/Controladores/CAdminTest.java
index d85fbb267e48d916c5b61b0ed721d2bd13ccf81e..31e18ab4bc364937827c17192e57572d6c8dd9df 100644
--- a/UyTube_aplicacion/test/Logica/Controladores/CAdminTest.java
+++ b/UyTube_aplicacion/test/Logica/Controladores/CAdminTest.java
@@ -56,6 +56,7 @@ public class CAdminTest {
 
         System.out.println("Agregando categoria y lista por defecto");
         instance.altaCategoria("UNDEFINED");
+        instance.altaCategoria("ARTE");
         instance.altaListaDeReproduccionPorDefecto(
                 new DtListaDeReproduccion(0, "Favoritos", Privacidad.PRIVADO, TipoListaDeReproduccion.POR_DEFECTO, "UNDEFINED")
         );
@@ -66,7 +67,7 @@ public class CAdminTest {
                 new DtVideo(0, "video1", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
         );
         instance.altaVideo(
-                new DtVideo(0, "video2", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "video2", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "ARTE", 0, 0)
         );
         instance.altaVideo(
                 new DtVideo(0, "video3", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
@@ -81,7 +82,7 @@ public class CAdminTest {
                 new DtVideo(0, "video1", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
         );
         instance.altaVideo(
-                new DtVideo(0, "video2", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "video2", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "ARTE", 0, 0)
         );
         instance.altaVideo(
                 new DtVideo(0, "video3", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
@@ -93,13 +94,13 @@ public class CAdminTest {
         System.out.println("Agregando a usu3 3 videos y una lista");
         instance.seleccionarUsuario("usu3");
         instance.altaVideo(
-                new DtVideo(0, "video1", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "video1", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "ARTE", 0, 0)
         );
         instance.altaVideo(
                 new DtVideo(0, "video2", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
         );
         instance.altaVideo(
-                new DtVideo(0, "video3", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "video3", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "ARTE", 0, 0)
         );
         instance.altaListaDeReproduccionParticular(
                 new DtListaDeReproduccion(0, "mi lista", Privacidad.PUBLICO, TipoListaDeReproduccion.PARTICULAR, "UNDEFINED")
@@ -169,20 +170,20 @@ public class CAdminTest {
         // el sistema no tiene ningun usuario seleccionado, 
         // osea, apunta a null
         // entonces debe saltar una excepcion
-        instance.agregarVideoAListaDeReproduccion();
+        instance.agregarVideoAListaDeReproduccion(0);
     }
     @Test(expected = RuntimeException.class)
     public void testThrow_2_AgregarVideoAListaDeReproduccion() {
         System.out.println("agregarVideoAListaDeReproduccion");
         instance.seleccionarUsuario("usu1");
-        instance.agregarVideoAListaDeReproduccion();
+        instance.agregarVideoAListaDeReproduccion(0);
     }
     @Test(expected = RuntimeException.class)
     public void testThrow_3_AgregarVideoAListaDeReproduccion() {
         System.out.println("agregarVideoAListaDeReproduccion");
         instance.seleccionarUsuario("usu1");
         instance.seleccionarUsuarioActual("usu2");
-        instance.agregarVideoAListaDeReproduccion();
+        instance.agregarVideoAListaDeReproduccion(0);
     }
     @Test(expected = RuntimeException.class)
     public void testThrow_4_AgregarVideoAListaDeReproduccion() {
@@ -190,7 +191,7 @@ public class CAdminTest {
         instance.seleccionarUsuario("usu1");
         instance.seleccionarUsuarioActual("usu2");
         instance.seleccionarVideo(1);
-        instance.agregarVideoAListaDeReproduccion();
+        instance.agregarVideoAListaDeReproduccion(0);
     }
     @Test
     public void test_AgregarVideoAListaDeReproduccion() {
@@ -204,7 +205,7 @@ public class CAdminTest {
         instance.seleccionarUsuarioActual("usu2");
         instance.seleccionarVideo(1);
         
-        instance.agregarVideoAListaDeReproduccion();
+        instance.agregarVideoAListaDeReproduccion(5);
         
         instance.seleccionarUsuario("usu2");
         int despues = instance.listarVideosDeListaDeReproduccion().size();
@@ -353,6 +354,13 @@ public class CAdminTest {
         instance.seleccionarUsuario("usu1");
         instance.altaListaDeReproduccionParticular(lista);
     }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_3_AltaListaDeReproduccionParticular() {
+        System.out.println("altaListaDeReproduccionParticular");
+        DtListaDeReproduccion lista = new DtListaDeReproduccion(0, "Videos de maincraf", Privacidad.PRIVADO, TipoListaDeReproduccion.PARTICULAR, "deporte");
+        instance.seleccionarUsuario("usu1");
+        instance.altaListaDeReproduccionParticular(lista);
+    }
     @Test
     public void test_AltaListaDeReproduccionParticular() {
         System.out.println("altaListaDeReproduccionParticular");
@@ -502,6 +510,16 @@ public class CAdminTest {
         instance.seleccionarUsuario("usu1");
         instance.altaVideo(video);
     }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_3_AltaVideo() {
+        System.out.println("altaVideo");
+        DtVideo video = new DtVideo(0, "video4", "descripcio4", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "DEPORTE", 0, 0);
+        instance.seleccionarUsuario("usu1");
+        int antes = instance.listarVideosDeUsuario().size();
+        instance.altaVideo(video);
+        int despues = instance.listarVideosDeUsuario().size();
+        assertNotEquals(antes, despues);
+    }
     @Test
     public void test_AltaVideo() {
         System.out.println("altaVideo");
@@ -808,21 +826,722 @@ public class CAdminTest {
         String nickname = "usu2";
         instance.seleccionarUsuarioActual("usu2");
         ArrayList<DtListaDeReproduccion> result = instance.listarListasDeReproduccionDeUsuario(nickname);
-        assertTrue(result.get(0).getId() == 2);
+        assertTrue(result.size() == 3);
+    }
+    
+    
+    /**
+     * Test of listarListasDeReproduccionParticularesDeUsuario method, of class
+     * CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ListarListasDeReproduccionParticularesDeUsuario() {
+        System.out.println("listarListasDeReproduccionParticularesDeUsuario");
+        ArrayList<DtListaDeReproduccion> result = instance.listarListasDeReproduccionParticularesDeUsuario();
+    }
+    @Test
+    public void test_ListarListasDeReproduccionParticularesDeUsuario() {
+        System.out.println("listarListasDeReproduccionParticularesDeUsuario");
+        instance.seleccionarUsuario("usu3");
+        ArrayList<DtListaDeReproduccion> result = instance.listarListasDeReproduccionParticularesDeUsuario();
+        for (int i = 0; i < result.size(); i++) {
+            if (result.get(i).getTipo() == TipoListaDeReproduccion.PARTICULAR) {
+                assertTrue(false);
+                return;
+            }
+        }
+        assertTrue(true);
+    }
+
+    /**
+     * Test of listarUsuarioSeguidores method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ListarUsuarioSeguidores() {
+        System.out.println("listarUsuarioSeguidores");
+        ArrayList<DtUsuario> result = instance.listarUsuarioSeguidores();
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_ListarUsuarioSeguidores() {
+        System.out.println("listarUsuarioSeguidores");
+        instance.seleccionarUsuarioActual("usu1");
+        ArrayList<DtUsuario> result = instance.listarUsuarioSeguidores();
+    }
+    @Test
+    public void test_ListarUsuarioSeguidores() {
+        System.out.println("listarUsuarioSeguidores");
+        // usuarios 1 y 2 siguen al 3
+        instance.seleccionarUsuario("usu3");
+        instance.seleccionarUsuarioActual("usu1");
+        instance.seguirUsuario();
+        instance.seleccionarUsuarioActual("usu2");
+        instance.seguirUsuario();
+        
+        instance.seleccionarUsuario("usu3");
+        ArrayList<DtUsuario> result = instance.listarUsuarioSeguidores();
+        
+        // deshago que usuarios 1 y 2 siguen al 3
+        instance.seleccionarUsuario("usu3");
+        instance.seleccionarUsuarioActual("usu1");
+        instance.seguirUsuario();
+        instance.seleccionarUsuarioActual("usu2");
+        instance.seguirUsuario();
+        
+        for (int i = 0; i < result.size(); i++){
+            if (result.get(i).getNickname() != "usu1" && result.get(i).getNickname() != "usu2") {
+                assertTrue(false);
+                return;
+            }
+        }
+        assertTrue(true);
+    }
+    
+    
+    
+    /**
+     * Test of listarUsuarioSeguidos method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ListarUsuarioSeguidos() {
+        System.out.println("listarUsuarioSeguidos");
+        ArrayList<DtUsuario> result = instance.listarUsuarioSeguidos();
+    }
+    @Test
+    public void test_ListarUsuarioSeguidos() {
+        System.out.println("listarUsuarioSeguidos");
+        
+        // usuarios 3 sige a 1 y 2
+        instance.seleccionarUsuarioActual("usu3");
+        instance.seleccionarUsuario("usu1");
+        instance.seguirUsuario();
+        instance.seleccionarUsuario("usu2");
+        instance.seguirUsuario();
+        
+        ArrayList<DtUsuario> result = instance.listarUsuarioSeguidos();
+        
+        // deshago que usuarios 3 sige a 1 y 2
+        instance.seleccionarUsuario("usu1");
+        instance.seguirUsuario();
+        instance.seleccionarUsuario("usu2");
+        instance.seguirUsuario();
+        
+        for (int i = 0; i < result.size(); i++){
+            if (result.get(i).getNickname() != "usu1" || result.get(i).getNickname() != "usu2") {
+                assertTrue(false);
+                return;
+            }
+        }
+        assertTrue(true);
+        
+    }
+    
+    
+    /**
+     * Test of listarUsuarios method, of class CAdmin.
+     */
+    @Test
+    public void testThrow_1_ListarUsuarios() {
+        System.out.println("listarUsuarios");
+        ArrayList<DtUsuario> result = instance.listarUsuarios();
+        assertTrue(result.size() == 3);
+    }
+    
+    
+    /**
+     * Test of listarVideosEnCategoria method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ListarVideosEnCategoria() {
+        System.out.println("listarVideosEnCategoria");
+        String cat = "";
+        ArrayList<DtVideo> result = instance.listarVideosEnCategoria(cat);
+    }
+    @Test
+    public void testThrow_2_ListarVideosEnCategoria() {
+        System.out.println("listarVideosEnCategoria");
+        String cat = "DEPORTE";
+        ArrayList<DtVideo> result = instance.listarVideosEnCategoria(cat);
+        assertTrue(result.size() == 0);
+    }
+    @Test
+    public void test_ListarVideosEnCategoria() {
+        System.out.println("listarVideosEnCategoria");
+        String cat = "ARTE";
+        ArrayList<DtVideo> result = instance.listarVideosEnCategoria(cat);
+        
+        for (int i = 0; i < result.size(); i++){
+            if (result.get(i).getCategoria() != "ARTE") {
+                assertTrue(false);
+                return;
+            }
+        }
+        assertTrue(true);
+    }
+
+    
+    /**
+     * Test of listarVideosDeUsuario method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ListarVideosDeUsuario() {
+        System.out.println("listarVideosDeUsuario");
+        ArrayList<DtVideo> result = instance.listarVideosDeUsuario();
+    }
+    @Test
+    public void test_ListarVideosDeUsuario() {
+        System.out.println("listarVideosDeUsuario");
+        instance.seleccionarUsuario("usu1");
+        ArrayList<DtVideo> result = instance.listarVideosDeUsuario();
+        assertTrue(result.size() == 3);
     }
     
     
+    /**
+     * Test of listarVideosDeListaDeReproduccion method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ListarVideosDeListaDeReproduccion() {
+        System.out.println("listarVideosDeListaDeReproduccion");
+        ArrayList<DtVideo> result = instance.listarVideosDeListaDeReproduccion();
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_ListarVideosDeListaDeReproduccion() {
+        System.out.println("listarVideosDeListaDeReproduccion");
+        instance.seleccionarUsuario("usu3");
+        ArrayList<DtVideo> result = instance.listarVideosDeListaDeReproduccion();
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_3_ListarVideosDeListaDeReproduccion() {
+        System.out.println("listarVideosDeListaDeReproduccion");
+        instance.seleccionarUsuario("usu3");
+        instance.seleccionarVideo(555);
+        ArrayList<DtVideo> result = instance.listarVideosDeListaDeReproduccion();
+    }
+    @Test
+    public void test_ListarVideosDeListaDeReproduccion() {
+        System.out.println("listarVideosDeListaDeReproduccion");
+        instance.seleccionarUsuario("usu3");
+        instance.seleccionarListaDeReproduccion(9);
+        ArrayList<DtVideo> result = instance.listarVideosDeListaDeReproduccion();
+        assertTrue(result.size() == 0);
+    }
+
+    /**
+     * Test of modificarListaDeReproduccion method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ModificarListaDeReproduccion() {
+        System.out.println("modificarListaDeReproduccion");
+        instance.modificarListaDeReproduccion(null);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_ModificarListaDeReproduccion() {
+        System.out.println("modificarListaDeReproduccion");
+        instance.seleccionarUsuario("usu1");
+        instance.modificarListaDeReproduccion(null);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_3_ModificarListaDeReproduccion() {
+        System.out.println("modificarListaDeReproduccion");
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarListaDeReproduccion(7);
+        instance.modificarListaDeReproduccion(null);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_4_ModificarListaDeReproduccion() {
+        System.out.println("modificarListaDeReproduccion");
+        DtListaDeReproduccion dt = new DtListaDeReproduccion(0, "Favoritos", Privacidad.PUBLICO, TipoListaDeReproduccion.POR_DEFECTO, "DEPORTE");
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarListaDeReproduccion(7);
+        instance.modificarListaDeReproduccion(dt);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_5_ModificarListaDeReproduccion() {
+        System.out.println("modificarListaDeReproduccion");
+        DtListaDeReproduccion dt = new DtListaDeReproduccion(0, "Favoritos", Privacidad.PUBLICO, TipoListaDeReproduccion.POR_DEFECTO, "UNDEFINED");
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarListaDeReproduccion(7);
+        instance.modificarListaDeReproduccion(dt);
+    }
+    @Test
+    public void test_ModificarListaDeReproduccion() {
+        System.out.println("modificarListaDeReproduccion");
+        DtListaDeReproduccion dt = new DtListaDeReproduccion(0, "Alfa-jores", Privacidad.PUBLICO, TipoListaDeReproduccion.POR_DEFECTO, "ARTE");
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarListaDeReproduccion(7);
+        instance.modificarListaDeReproduccion(dt);
+        assertTrue(instance.seleccionarListaDeReproduccion(7).getNombre() == "Alfa-jores");
+        
+    }
+
+    /**
+     * Test of modificarUsuarioYCanal method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ModificarUsuarioYCanal() {
+        System.out.println("modificarUsuarioYCanal");
+        DtUsuario usr = null;
+        DtCanal canal = null;
+        instance.modificarUsuarioYCanal(usr, canal);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_ModificarUsuarioYCanal() {
+        System.out.println("modificarUsuarioYCanal");
+        instance.seleccionarUsuario("usu1");
+        DtUsuario usr = null;
+        DtCanal canal = null;
+        instance.modificarUsuarioYCanal(usr, canal);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_3_ModificarUsuarioYCanal() {
+        System.out.println("modificarUsuarioYCanal");
+        instance.seleccionarUsuario("usu1");
+        DtUsuario usr = new DtUsuario("usuario1", "pass1", "nombre mod", "apellido mod", "correo mod", new Date(55, 11, 21), "imagen mod", 123456);
+        DtCanal canal = null;
+        instance.modificarUsuarioYCanal(usr, canal);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_4_ModificarUsuarioYCanal() {
+        System.out.println("modificarUsuarioYCanal");
+        instance.seleccionarUsuario("usu1");
+        DtUsuario usr = new DtUsuario("usuario1", "pass1", "nombre mod", "apellido mod", "correo mod", new Date(55, 11, 21), "imagen mod", 123456);
+        DtCanal canal = new DtCanal(0, "canal mod", "descripcion3 mod", Privacidad.PRIVADO);
+        instance.modificarUsuarioYCanal(usr, canal);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_5_ModificarUsuarioYCanal() {
+        System.out.println("modificarUsuarioYCanal");
+        instance.seleccionarUsuario("usu1");
+        DtUsuario usr = new DtUsuario("usu1", "pass1", "nombre mod", "apellido mod", "correo mod", new Date(55, 11, 21), "imagen mod", 123456);
+        DtCanal canal = new DtCanal(0, "canal mod", "descripcion3 mod", Privacidad.PRIVADO);
+        instance.modificarUsuarioYCanal(usr, canal);
+    }
+    @Test
+    public void test_ModificarUsuarioYCanal() {
+        System.out.println("modificarUsuarioYCanal");
+        DtUsuario usuRef = instance.seleccionarUsuario("usu1");
+        DtCanal canRef = instance.obtenerCanalDeUsuario();
+        DtUsuario usr = new DtUsuario("usu1", "pass1", "nombre mod", "apellido mod", "correo1", new Date(55, 11, 21), "imagen mod", 123456);
+        DtCanal canal = new DtCanal(0, "canal mod", "descripcion3 mod", Privacidad.PRIVADO);
+        instance.modificarUsuarioYCanal(usr, canal);
+        DtUsuario usuPost = instance.seleccionarUsuario("usu1");
+        DtCanal canPost = instance.obtenerCanalDeUsuario();
+        
+        assertTrue(
+                usuRef.toString() != usuPost.toString() &&
+                canRef.toString() != canPost.toString()
+        );
+    }
+    
+    
+    /**
+     * Test of modificarVideo method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ModificarVideo() {
+        System.out.println("modificarVideo");
+        DtVideo video = null;
+        instance.modificarVideo(video);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_ModificarVideo() {
+        System.out.println("modificarVideo");
+        DtVideo video = null;
+        instance.seleccionarUsuario("usu1");
+        instance.modificarVideo(video);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_3_ModificarVideo() {
+        System.out.println("modificarVideo");
+        DtVideo video = null;
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarVideo(1);
+        instance.modificarVideo(video);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_4_ModificarVideo() {
+        System.out.println("modificarVideo");
+        DtVideo video = new DtVideo(0, "video2", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "DEPORTE", 0, 0);
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarVideo(1);
+        instance.modificarVideo(video);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_5_ModificarVideo() {
+        System.out.println("modificarVideo");
+        DtVideo video = new DtVideo(0, "video2", "descripcion", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "ARTE", 1000, 5);
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarVideo(1);
+        instance.modificarVideo(video);
+    }
+    @Test
+    public void test_ModificarVideo() {
+        System.out.println("modificarVideo");
+        DtVideo video = new DtVideo(0, "video2", "descripcion modificada", new Time(1, 2, 3), new Date(11, 1, 1), "url", Privacidad.PRIVADO, "ARTE", 1000, 5);
+        instance.seleccionarUsuario("usu1");
+        DtVideo antes = instance.seleccionarVideo(2);
+        instance.modificarVideo(video);
+        DtVideo despues = instance.seleccionarVideo(2);
+        assertNotEquals(antes.toString(), despues.toString());
+    }
+
     
+    /**
+     * Test of obtenerCanalDeUsuario method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ObtenerCanalDeUsuario() {
+        System.out.println("obtenerCanalDeUsuario");
+        DtCanal expResult = null;
+        DtCanal result = instance.obtenerCanalDeUsuario();
+    }
     
     
+    /**
+     * Test of obtenerValoracionesDeVideo method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ObtenerValoracionesDeVideo() {
+        System.out.println("obtenerValoracionesDeVideo");
+        ArrayList<DtValoracion> expResult = null;
+        ArrayList<DtValoracion> result = instance.obtenerValoracionesDeVideo();
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_ObtenerValoracionesDeVideo() {
+        System.out.println("obtenerValoracionesDeVideo");
+        ArrayList<DtValoracion> expResult = null;
+        instance.seleccionarUsuario("usu1");
+        ArrayList<DtValoracion> result = instance.obtenerValoracionesDeVideo();
+    }
+    @Test
+    public void test_ObtenerValoracionesDeVideo() {
+        System.out.println("obtenerValoracionesDeVideo");
+        
+        instance.seleccionarUsuario("usu3");
+        instance.seleccionarUsuarioActual("usu2");
+        instance.seleccionarVideo(8);
+        instance.altaValoracion(new DtValoracion(TipoValoracion.LIKE, "nickname"));
+        
+        instance.seleccionarUsuario("usu3");
+        instance.seleccionarVideo(8);
+        ArrayList<DtValoracion> result = instance.obtenerValoracionesDeVideo();
+        
+        for (int i = 0; i < result.size(); i++){
+            if (result.get(i).getNickname().equals("usu2")){
+                assertTrue(true);
+                return;
+            }
+        }
+        assertTrue(false);
+    }
+
+    /**
+     * Test of obtenerValoracionDada method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ObtenerValoracionDada() {
+        System.out.println("obtenerValoracionDada");
+        DtValoracion expResult = null;
+        DtValoracion result = instance.obtenerValoracionDada();
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_ObtenerValoracionDada() {
+        System.out.println("obtenerValoracionDada");
+        instance.seleccionarUsuarioActual("usu2");
+        DtValoracion expResult = null;
+        DtValoracion result = instance.obtenerValoracionDada();
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_3_ObtenerValoracionDada() {
+        System.out.println("obtenerValoracionDada");
+        instance.seleccionarUsuarioActual("usu2");
+        instance.seleccionarUsuario("usu2");
+        DtValoracion expResult = null;
+        DtValoracion result = instance.obtenerValoracionDada();
+    }
+    @Test
+    public void test_1_ObtenerValoracionDada() {
+        System.out.println("obtenerValoracionDada");
+        instance.seleccionarUsuarioActual("usu2");
+        instance.seleccionarUsuario("usu2");
+        instance.seleccionarVideo(5);
+        
+        DtValoracion expResult = null;
+        DtValoracion result = instance.obtenerValoracionDada();
+        assertEquals(expResult, result);
+    }
+    @Test
+    public void test_2_ObtenerValoracionDada() {
+        System.out.println("obtenerValoracionDada");
+        
+        instance.seleccionarUsuario("usu2");
+        instance.seleccionarUsuarioActual("usu2");
+        instance.seleccionarVideo(5);
+        instance.altaValoracion(new DtValoracion(TipoValoracion.DISLIKE, "nickname"));
+        
+        instance.seleccionarUsuarioActual("usu2");
+        instance.seleccionarUsuario("usu2");
+        instance.seleccionarVideo(5);
+        
+        DtValoracion expResult = new DtValoracion(TipoValoracion.DISLIKE, "usu2");
+        DtValoracion result = instance.obtenerValoracionDada();
+        assertEquals(expResult.toString(), result.toString());
+    }
     
+    /**
+     * Test of quitarVideoDeListaDeReproduccion method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_QuitarVideoDeListaDeReproduccion() {
+        System.out.println("quitarVideoDeListaDeReproduccion");
+        instance.quitarVideoDeListaDeReproduccion(5);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_QuitarVideoDeListaDeReproduccion() {
+        System.out.println("quitarVideoDeListaDeReproduccion");
+        instance.seleccionarUsuario("usu1");
+        instance.quitarVideoDeListaDeReproduccion(5);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_3_QuitarVideoDeListaDeReproduccion() {
+        System.out.println("quitarVideoDeListaDeReproduccion");
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarListaDeReproduccion(1);
+        instance.quitarVideoDeListaDeReproduccion(0);
+    }
+    @Test
+    public void test_1_QuitarVideoDeListaDeReproduccion() {
+        System.out.println("quitarVideoDeListaDeReproduccion");
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarListaDeReproduccion(1);
+        instance.quitarVideoDeListaDeReproduccion(5);
+        assertEquals(0, instance.listarVideosDeListaDeReproduccion().size());
+    }
+    @Test
+    public void test_2_QuitarVideoDeListaDeReproduccion() {
+        System.out.println("quitarVideoDeListaDeReproduccion");
+        
+        instance.seleccionarUsuario("usu2");
+        instance.seleccionarUsuarioActual("usu1");
+        instance.seleccionarVideo(5);
+        instance.agregarVideoAListaDeReproduccion(1);
+        
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarListaDeReproduccion(1);
+        int antes = instance.listarVideosDeListaDeReproduccion().size();
+        
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarListaDeReproduccion(1);
+        instance.quitarVideoDeListaDeReproduccion(5);
+        int despues = instance.listarVideosDeListaDeReproduccion().size();
+        
+        assertNotEquals(antes, despues);
+    }
     
     
+    /**
+     * Test of seleccionarUsuario method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_SeleccionarUsuario() {
+        System.out.println("seleccionarUsuario");
+        String nickname = "";
+        DtUsuario result = instance.seleccionarUsuario(nickname);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_SeleccionarUsuario() {
+        System.out.println("seleccionarUsuario");
+        String nickname = "nickname inexistente";
+        DtUsuario result = instance.seleccionarUsuario(nickname);
+    }
+    @Test
+    public void test_SeleccionarUsuario() {
+        System.out.println("seleccionarUsuario");
+        String nickname = "usu3";
+        DtUsuario result = instance.seleccionarUsuario(nickname);
+        assertNotNull(result);
+    }
+
+    /**
+     * Test of seleccionarUsuarioActual method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_SeleccionarUsuarioActual() {
+        System.out.println("seleccionarUsuario");
+        String nickname = "";
+        DtUsuario result = instance.seleccionarUsuarioActual(nickname);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_SeleccionarUsuarioActual() {
+        System.out.println("seleccionarUsuario");
+        String nickname = "nickname inexistente";
+        DtUsuario result = instance.seleccionarUsuarioActual(nickname);
+    }
+    @Test
+    public void test_SeleccionarUsuarioActual() {
+        System.out.println("seleccionarUsuario");
+        String nickname = "usu3";
+        DtUsuario result = instance.seleccionarUsuarioActual(nickname);
+        assertNotNull(result);
+    }
     
     
+    /**
+     * Test of seleccionarVideo method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_SeleccionarVideo() {
+        System.out.println("seleccionarVideo");
+        int idVideo = 0;
+        DtVideo expResult = null;
+        DtVideo result = instance.seleccionarVideo(idVideo);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_SeleccionarVideo() {
+        System.out.println("seleccionarVideo");
+        int idVideo = 9;
+        instance.seleccionarUsuario("usu1");
+        DtVideo expResult = null;
+        DtVideo result = instance.seleccionarVideo(idVideo);
+    }
+    @Test
+    public void test_SeleccionarVideo() {
+        System.out.println("seleccionarVideo");
+        int idVideo = 9;
+        instance.seleccionarUsuario("usu3");
+        DtVideo expResult = null;
+        DtVideo result = instance.seleccionarVideo(idVideo);
+        assertTrue(result.getId() == 9);
+    }
+
     
+    /**
+     * Test of seleccionarListaDeReproduccion method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_SeleccionarListaDeReproduccion() {
+        System.out.println("seleccionarListaDeReproduccion");
+        int idLista = 0;
+        DtListaDeReproduccion result = instance.seleccionarListaDeReproduccion(idLista);
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_SeleccionarListaDeReproduccion() {
+        System.out.println("seleccionarListaDeReproduccion");
+        int idLista = 3;
+        instance.seleccionarUsuario("usu1");
+        DtListaDeReproduccion result = instance.seleccionarListaDeReproduccion(idLista);
+    }
+    @Test
+    public void test_SeleccionarListaDeReproduccion() {
+        System.out.println("seleccionarListaDeReproduccion");
+        int idLista = 4;
+        instance.seleccionarUsuario("usu1");
+        DtListaDeReproduccion result = instance.seleccionarListaDeReproduccion(idLista);
+        assertTrue(result.getId() == 4);
+    }
+
+
+    /**
+     * Test of seguirUsuario method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_SeguirUsuario() {
+        System.out.println("seguirUsuario");
+        instance.seguirUsuario();
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_2_SeguirUsuario() {
+        System.out.println("seguirUsuario");
+        instance.seleccionarUsuarioActual("usu1");
+        instance.seguirUsuario();
+    }
+    @Test(expected = RuntimeException.class)
+    public void testThrow_3_SeguirUsuario() {
+        System.out.println("seguirUsuario");
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarUsuarioActual("usu1");
+        instance.seguirUsuario();
+    }
+    @Test
+    public void test_SeguirUsuario() {
+        System.out.println("seguirUsuario");
+        instance.seleccionarUsuario("usu1");
+        instance.seleccionarUsuarioActual("usu3");
+        
+        int antes = instance.listarUsuarioSeguidores().size();
+        instance.seguirUsuario();
+        int despues = instance.listarUsuarioSeguidores().size();
+        
+        assertEquals(antes+1, despues);
+    }
+
     
     
+    /**
+     * Test of validarNuevaListaParticular method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void testThrow_1_ValidarNuevaListaParticular() {
+        System.out.println("validarNuevaListaParticular");
+        String nombre = "";
+        boolean expResult = false;
+        boolean result = instance.validarNuevaListaParticular(nombre);
+    }
+    @Test
+    public void test_1_ValidarNuevaListaParticular() {
+        System.out.println("validarNuevaListaParticular");
+        String nombre = "Favoritos";
+        instance.seleccionarUsuario("usu1");
+        boolean expResult = false;
+        boolean result = instance.validarNuevaListaParticular(nombre);
+        assertEquals(expResult, result);
+    }
+    @Test
+    public void test_2_ValidarNuevaListaParticular() {
+        System.out.println("validarNuevaListaParticular");
+        String nombre = "terraplanismo";
+        instance.seleccionarUsuario("usu1");
+        boolean expResult = true;
+        boolean result = instance.validarNuevaListaParticular(nombre);
+        assertEquals(expResult, result);
+    }
+
+    /**
+     * Test of validarNuevaListaPorDefecto method, of class CAdmin.
+     */
+    @Test(expected = RuntimeException.class)
+    public void test_1_ValidarNuevaListaPorDefecto() {
+        System.out.println("validarNuevaListaPorDefecto");
+        String nombre = "";
+        boolean expResult = false;
+        boolean result = instance.validarNuevaListaPorDefecto(nombre);
+        assertEquals(expResult, result);
+    }
+    @Test
+    public void test_2_ValidarNuevaListaPorDefecto() {
+        System.out.println("validarNuevaListaPorDefecto");
+        String nombre = "Ver mas tarde";
+        boolean expResult = false;
+        boolean result = instance.validarNuevaListaPorDefecto(nombre);
+        assertEquals(expResult, result);
+    }
+    @Test
+    public void test_3_ValidarNuevaListaPorDefecto() {
+        System.out.println("validarNuevaListaPorDefecto");
+        String nombre = "mi lista";
+        boolean expResult = false;
+        boolean result = instance.validarNuevaListaPorDefecto(nombre);
+        assertEquals(expResult, result);
+    }
+    @Test
+    public void test_4_ValidarNuevaListaPorDefecto() {
+        System.out.println("validarNuevaListaPorDefecto");
+        String nombre = "Reviews de Yerba";
+        boolean expResult = true;
+        boolean result = instance.validarNuevaListaPorDefecto(nombre);
+        assertEquals(expResult, result);
+    }
+