Skip to content
Snippets Groups Projects
Commit 0225a06e authored by JotaJota96's avatar JotaJota96
Browse files

Todas las clases testeadas

parent b5dc4787
No related branches found
No related tags found
No related merge requests found
...@@ -132,6 +132,13 @@ public class Canal { ...@@ -132,6 +132,13 @@ public class Canal {
throw new RuntimeException("La categoria no puede ser vacia"); throw new RuntimeException("La categoria no puede ser vacia");
} }
// un canal no puede tener dos videos con el mismo nomre
for (Map.Entry<Integer, ListaDeReproduccion> v : misListas.entrySet()){
if (v.getValue().getNombre().equals(listaReproduccion.getNombre())){
throw new RuntimeException("El canal ya posee una lista de reproduccion con ese nombre");
}
}
ListaDeReproduccion ldr = new ListaDeReproduccion( ListaDeReproduccion ldr = new ListaDeReproduccion(
idLdr, idLdr,
listaReproduccion.getNombre(), listaReproduccion.getNombre(),
...@@ -283,6 +290,9 @@ public class Canal { ...@@ -283,6 +290,9 @@ public class Canal {
for (Map.Entry<Integer, Video> m : misVideos.entrySet()) { for (Map.Entry<Integer, Video> m : misVideos.entrySet()) {
m.getValue().setPrivacidad(Privacidad.PRIVADO); m.getValue().setPrivacidad(Privacidad.PRIVADO);
} }
for (Map.Entry<Integer, ListaDeReproduccion> m : misListas.entrySet()) {
m.getValue().setPrivacidad(Privacidad.PRIVADO);
}
} }
this.nombre = canal.getNombre(); this.nombre = canal.getNombre();
...@@ -291,6 +301,9 @@ public class Canal { ...@@ -291,6 +301,9 @@ public class Canal {
} }
public void modificarListaDeReproduccion(DtListaDeReproduccion ldr) { public void modificarListaDeReproduccion(DtListaDeReproduccion ldr) {
if (ldr == null) {
throw new RuntimeException("El Datatype de la lista de reprodccion es null");
}
if (this.misListas.containsKey(ldr.getId())) { if (this.misListas.containsKey(ldr.getId())) {
if (this.privacidad == Privacidad.PRIVADO && ldr.getPrivacidad() == Privacidad.PUBLICO){ if (this.privacidad == Privacidad.PRIVADO && ldr.getPrivacidad() == Privacidad.PUBLICO){
...@@ -304,6 +317,10 @@ public class Canal { ...@@ -304,6 +317,10 @@ public class Canal {
} }
public void modificarVideo(DtVideo video) { public void modificarVideo(DtVideo video) {
if(video== null){
throw new RuntimeException("El Datatype del video es null");
}
if (this.misVideos.containsKey(video.getId())) { if (this.misVideos.containsKey(video.getId())) {
if (this.privacidad == Privacidad.PRIVADO && video.getPrivacidad() == Privacidad.PUBLICO){ if (this.privacidad == Privacidad.PRIVADO && video.getPrivacidad() == Privacidad.PUBLICO){
......
...@@ -65,6 +65,10 @@ public class ListaDeReproduccion { ...@@ -65,6 +65,10 @@ public class ListaDeReproduccion {
return privacidad; return privacidad;
} }
public void setPrivacidad(Privacidad privacidad) {
this.privacidad = privacidad;
}
public TipoListaDeReproduccion getTipo() { public TipoListaDeReproduccion getTipo() {
return tipo; return tipo;
} }
......
package Logica.Clases; package Logica.Clases;
public class Persona { public class Persona {
String nombre; private String nombre;
String apellido; private String apellido;
String contrnia; private String contrasenia;
public Persona(){ public Persona(String nombre, String apellido, String contrasenia) {
this.nombre = ""; if(contrasenia == ""){
this.apellido = ""; throw new RuntimeException("La contraseña no puede ser Vacio");
this.contrnia = ""; }
}
public Persona(String nombre, String apellido, String contrnia) {
this.nombre = nombre; this.nombre = nombre;
this.apellido = apellido; this.apellido = apellido;
this.contrnia = contrnia; this.contrasenia = contrasenia;
} }
public String getNombre() { public String getNombre() {
...@@ -33,13 +30,16 @@ public class Persona { ...@@ -33,13 +30,16 @@ public class Persona {
this.apellido = apellido; this.apellido = apellido;
} }
public String getContraseña() { public String getContrasena() {
return contrnia; return contrasenia;
} }
public void setContraseña(String contraseña) { public void setContrasenia(String contrasenia) {
this.contrnia = contraseña; this.contrasenia = contrasenia;
} }
public boolean validarContrasenia(String pass){
return this.contrasenia.equals(pass);
}
} }
...@@ -17,8 +17,6 @@ public class Usuario extends Persona{ ...@@ -17,8 +17,6 @@ public class Usuario extends Persona{
private Map<String, Usuario> seguidos; private Map<String, Usuario> seguidos;
public Usuario() {}
public Usuario(String nickname, String correo, Date fechaNacimiento, String imagen, String contrasenia, String nombre, String apellido ,DtCanal DTC) { public Usuario(String nickname, String correo, Date fechaNacimiento, String imagen, String contrasenia, String nombre, String apellido ,DtCanal DTC) {
super(nombre,apellido,contrasenia); super(nombre,apellido,contrasenia);
...@@ -36,11 +34,6 @@ public class Usuario extends Persona{ ...@@ -36,11 +34,6 @@ public class Usuario extends Persona{
throw new RuntimeException("El correo no puede ser Vacio"); throw new RuntimeException("El correo no puede ser Vacio");
} }
if(contrasenia == ""){
throw new RuntimeException("La contraseña no puede ser Vacio");
}
this.nickname = nickname; this.nickname = nickname;
this.correo = correo; this.correo = correo;
this.fechaNacimiento = fechaNacimiento; this.fechaNacimiento = fechaNacimiento;
...@@ -72,7 +65,7 @@ public class Usuario extends Persona{ ...@@ -72,7 +65,7 @@ public class Usuario extends Persona{
} }
public DtUsuario getDT(){ public DtUsuario getDT(){
return new DtUsuario(this.nickname, this.contrnia, this.nombre, this.apellido, this.correo, this.fechaNacimiento, this.imagen, this.seguidores);//Es el otro constructor return new DtUsuario(this.nickname, super.getContrasena(), super.getNombre(), super.getApellido(), this.correo, this.fechaNacimiento, this.imagen, this.seguidores);
} }
public void actualizarListasPorDefecto(){ public void actualizarListasPorDefecto(){
...@@ -124,6 +117,9 @@ public class Usuario extends Persona{ ...@@ -124,6 +117,9 @@ public class Usuario extends Persona{
if(Usu == null){ if(Usu == null){
throw new RuntimeException("El usuario no puede ser null"); throw new RuntimeException("El usuario no puede ser null");
} }
if(Usu == this){
throw new RuntimeException("Un usuario no se puede seguir a si mismo");
}
if (this.seguidos.containsKey(Usu.getNickname())){ if (this.seguidos.containsKey(Usu.getNickname())){
this.seguidos.remove(Usu.getNickname()); this.seguidos.remove(Usu.getNickname());
...@@ -134,7 +130,8 @@ public class Usuario extends Persona{ ...@@ -134,7 +130,8 @@ public class Usuario extends Persona{
Usu.agregarOQuitarSeguidor(this); Usu.agregarOQuitarSeguidor(this);
} }
public void agregarOQuitarSeguidor(Usuario Usu){ // si, esta si es private, no es un error
private void agregarOQuitarSeguidor(Usuario Usu){
if(Usu == null){ if(Usu == null){
throw new RuntimeException("El usuario no puede ser null"); throw new RuntimeException("El usuario no puede ser null");
} }
...@@ -161,7 +158,11 @@ public class Usuario extends Persona{ ...@@ -161,7 +158,11 @@ public class Usuario extends Persona{
throw new RuntimeException("El usuario no puede ser null"); throw new RuntimeException("El usuario no puede ser null");
} }
this.agregarVideoALista(idLista, idVideo, Usu); Video v = Usu.obtenerVideo(idVideo);
if (v == null){
throw new RuntimeException("El video no pertenece al usuario: " + Usu.getNickname());
}
this.MiCanal.agregarVideoALista(idLista, v);
} }
public ArrayList<DtComentario> listarComentariosDeVideo(int idVideo){ public ArrayList<DtComentario> listarComentariosDeVideo(int idVideo){
...@@ -210,13 +211,16 @@ public class Usuario extends Persona{ ...@@ -210,13 +211,16 @@ public class Usuario extends Persona{
if(DtUsu == null){ if(DtUsu == null){
throw new RuntimeException("El usuario no puede ser null"); throw new RuntimeException("El usuario no puede ser null");
} }
if(DtUsu.getFechaNacimiento() == null){
throw new RuntimeException("La fecha no puede ser null");
}
if(DtCanal == null){ if(DtCanal == null){
throw new RuntimeException("El canal no puede ser null"); throw new RuntimeException("El canal no puede ser null");
} }
this.nombre = DtUsu.getNombre(); super.setNombre(DtUsu.getNombre());
this.apellido = DtUsu.getApellido(); super.setApellido(DtUsu.getApellido());
this.contrnia = DtUsu.getContrasenia(); super.setContrasenia(DtUsu.getContrasenia());
this.fechaNacimiento = DtUsu.getFechaNacimiento(); this.fechaNacimiento = DtUsu.getFechaNacimiento();
this.imagen = DtUsu.getImagen(); this.imagen = DtUsu.getImagen();
...@@ -227,7 +231,7 @@ public class Usuario extends Persona{ ...@@ -227,7 +231,7 @@ public class Usuario extends Persona{
if(DtListaDeReproduccion == null){ if(DtListaDeReproduccion == null){
throw new RuntimeException("La lista de reproduccion no puede ser null"); throw new RuntimeException("La lista de reproduccion no puede ser null");
} }
this.MiCanal.modificarListaDeReproduccion(DtListaDeReproduccion); this.MiCanal.modificarListaDeReproduccion(DtListaDeReproduccion);
} }
...@@ -255,8 +259,7 @@ public class Usuario extends Persona{ ...@@ -255,8 +259,7 @@ public class Usuario extends Persona{
throw new RuntimeException("El nickname no puede ser vacio"); throw new RuntimeException("El nickname no puede ser vacio");
} }
//return this.MiCanal.obtenerValoracion(id, nickname); return this.MiCanal.obtenerValoracion(id, nickname);
return null;//Esto se saca
} }
public Video obtenerVideo(int id){ public Video obtenerVideo(int id){
...@@ -293,6 +296,5 @@ public class Usuario extends Persona{ ...@@ -293,6 +296,5 @@ public class Usuario extends Persona{
} }
return this.MiCanal.validarListaParticular(nombre); return this.MiCanal.validarListaParticular(nombre);
} }
} }
...@@ -5,12 +5,12 @@ import Logica.DataType.DtVideo; ...@@ -5,12 +5,12 @@ import Logica.DataType.DtVideo;
import java.sql.Time; import java.sql.Time;
import java.sql.Date; import java.sql.Date;
import Logica.Enumerados.Privacidad; import Logica.Enumerados.Privacidad;
import Logica.Enumerados.TipoValoracion;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
public class Video { public class Video {
private int id; private int id;
private String nombre; private String nombre;
private String descripcion; private String descripcion;
...@@ -30,6 +30,12 @@ public class Video { ...@@ -30,6 +30,12 @@ public class Video {
} }
/********************** Constructor *********************/ /********************** Constructor *********************/
public Video(int _id, String _nombre, String _descripcion,Time _duracion, Date _fechaPublicacion,String _urlVideoOriginal,String _categoria ){ public Video(int _id, String _nombre, String _descripcion,Time _duracion, Date _fechaPublicacion,String _urlVideoOriginal,String _categoria ){
if( _id < 0){ throw new RuntimeException("Error, el id del video es un negativo o cero."); }
if( _nombre == ""){ throw new RuntimeException("Error, el nombre del video está vacío");}
if( _duracion == null){ throw new RuntimeException("Error, la duración del video es null.");}
if( _fechaPublicacion == null){ throw new RuntimeException("Error, la fecha de publicación del video es null.");}
if( _urlVideoOriginal == ""){ throw new RuntimeException("Error, la url del video está vacía.");}
if( _categoria == "" ){ throw new RuntimeException("Error, la descripción del video está vacía.");}
this.id = _id; this.id = _id;
this.nombre = _nombre; this.nombre = _nombre;
this.descripcion = _descripcion; this.descripcion = _descripcion;
...@@ -43,6 +49,13 @@ public class Video { ...@@ -43,6 +49,13 @@ public class Video {
/** Agregar un nuevo comentario **/ /** Agregar un nuevo comentario **/
public void agregarComentario(DtComentario dtComentario, Usuario usuario){ public void agregarComentario(DtComentario dtComentario, Usuario usuario){
if (dtComentario == null){
throw new RuntimeException("El DataType es null");
}
if (usuario == null){
throw new RuntimeException("El usuario es null");
}
int nuevoId = Comentario.getNuevoID(); int nuevoId = Comentario.getNuevoID();
Comentario nuevoComentario = new Comentario(nuevoId, dtComentario.getFecha(), dtComentario.getTexto(), 0, usuario); Comentario nuevoComentario = new Comentario(nuevoId, dtComentario.getFecha(), dtComentario.getTexto(), 0, usuario);
comentarios.put(nuevoId, nuevoComentario); comentarios.put(nuevoId, nuevoComentario);
...@@ -50,6 +63,13 @@ public class Video { ...@@ -50,6 +63,13 @@ public class Video {
/* Agregar un subcomentario a un comentario existente */ /* Agregar un subcomentario a un comentario existente */
public void agregarComentario(int idCom, DtComentario dtComentario, Usuario usuario){ public void agregarComentario(int idCom, DtComentario dtComentario, Usuario usuario){
if (dtComentario == null){
throw new RuntimeException("El DataType es null");
}
if (usuario == null){
throw new RuntimeException("El usuario es null");
}
for (Map.Entry<Integer, Comentario> coment : comentarios.entrySet()) { for (Map.Entry<Integer, Comentario> coment : comentarios.entrySet()) {
if(coment.getValue().agregarSubComentario(idCom, dtComentario, usuario)){ if(coment.getValue().agregarSubComentario(idCom, dtComentario, usuario)){
break; break;
...@@ -58,24 +78,58 @@ public class Video { ...@@ -58,24 +78,58 @@ public class Video {
} }
/* Agrega o midifica una valoración */ /* Agrega o midifica una valoración */
public void agregarModificarValoracion(DtValoracion dtValoracion, Usuario usuario){ public void agregarModificarValoracion(DtValoracion dtValoracion, Usuario usuario) {
if (dtValoracion == null) {
throw new RuntimeException("El DataType es null");
}
if (usuario == null){
throw new RuntimeException("El usuario es null");
}
String nickname = usuario.getNickname(); String nickname = usuario.getNickname();
for(Valoracion val: valoraciones){ // por las dudas, para que los contadores de likes no queden inconsistentes:
if(val.modificar(dtValoracion, nickname)){ // obtengo la valoracion que le habia dado antes el usuario (si es que lo habia alorado)
break; DtValoracion dtv = this.obtenerValoracion(nickname);
// si el usuario ya lo valoro
if (dtv != null) {
// segun cual fuera la valoracion anterior, resta 1 al contador
if (dtv.getVal() == TipoValoracion.LIKE) {
cantLikes--;
} else {
cantDisLikes--;
}
for (Valoracion val : valoraciones) {
if (val.modificar(dtValoracion, nickname)) {
break;
}
} }
} else {
Valoracion nuevaValoracion = new Valoracion(dtValoracion.getVal(), usuario);
valoraciones.add(nuevaValoracion);
} }
// segun cual sea la nueva valoracion, suma 1 al contador
if (dtValoracion.getVal() == TipoValoracion.LIKE) {
cantLikes++;
} else {
cantDisLikes++;
}
} }
public DtVideo getDt(){ public DtVideo getDt(){
return new DtVideo(this.id, this.nombre, this.descripcion, this.duracion, this.fechaPublicacion, this.urlVideoOriginal, this.privacidad, this.categoria, this.cantLikes, this.cantDisLikes); return new DtVideo(this.id, this.nombre, this.descripcion, this.duracion, this.fechaPublicacion, this.urlVideoOriginal, this.privacidad, this.categoria, this.cantLikes, this.cantDisLikes);
} }
public ArrayList<DtComentario> listarComentarios(){ public ArrayList<DtComentario> listarComentarios(){
ArrayList<DtComentario> listaComent = new ArrayList<DtComentario>(); ArrayList<DtComentario> listaComent = new ArrayList<DtComentario>();
for (Map.Entry<Integer, Comentario> coment : comentarios.entrySet()) { // recorro los comentarios sobre el video
DtComentario dtComent = new DtComentario(coment.getValue().getId(), coment.getValue().getUsr().getNickname(), coment.getValue().getFecha(), coment.getValue().getTexto(), coment.getValue().getNivelSubComentario()); for (Map.Entry<Integer, Comentario> coment : comentarios.entrySet()) {
listaComent.add(dtComent); // le obtengo el DT y lo agrego a la lista resultado
listaComent.add(coment.getValue().getDT());
// agrego a la lista resultado, la lista de sub comentarios
listaComent.addAll(coment.getValue().listarSubComentarios());
} }
return listaComent; return listaComent;
} }
...@@ -100,8 +154,8 @@ public class Video { ...@@ -100,8 +154,8 @@ public class Video {
throw new RuntimeException("El nombre no puede ser vacío"); throw new RuntimeException("El nombre no puede ser vacío");
} }
if (dtVideo.getDescripcion() == "") { if (dtVideo.getDuracion()== null) {
throw new RuntimeException("La descripcion no puede ser vacía"); throw new RuntimeException("La duracion no puede ser vacía");
} }
if (dtVideo.getFechaPublicacion() == null) { if (dtVideo.getFechaPublicacion() == null) {
...@@ -122,13 +176,16 @@ public class Video { ...@@ -122,13 +176,16 @@ public class Video {
} }
/* Obtiene la valoracion que hizo un usuario */ /* Obtiene la valoracion que hizo un usuario */
public DtValoracion obtenerValoracion(String nickname){ public DtValoracion obtenerValoracion(String nickname) {
if (nickname.equals("")) {
throw new RuntimeException("El nickname no puede ser vacio");
}
for(int i = 0; i < this.valoraciones.size(); i++){ for(int i = 0; i < this.valoraciones.size(); i++){
if( valoraciones.get(i).getNicknameDeUsuario() == nickname){ if( valoraciones.get(i).getNicknameDeUsuario() == nickname){
return valoraciones.get(i).getDT(); return valoraciones.get(i).getDT();
} }
} }
return new DtValoracion(); return null;
} }
public void quitarValoracion(String nickname){ public void quitarValoracion(String nickname){
...@@ -137,6 +194,21 @@ public class Video { ...@@ -137,6 +194,21 @@ public class Video {
} }
// Recorrer todas las valoraciones hasta encontrar la valoracion cuyo usuario sea el que tiene ese nickname // Recorrer todas las valoraciones hasta encontrar la valoracion cuyo usuario sea el que tiene ese nickname
// cuando la encuentre, la saca de la coleccion // cuando la encuentre, la saca de la coleccion
for(int i = 0; i < this.valoraciones.size(); i++){
if(valoraciones.get(i).getNicknameDeUsuario().equals(nickname) ){
// segun cual fuera la valoracion anterior, resta 1 al contador
if (valoraciones.get(i).getVal() == TipoValoracion.LIKE) {
cantLikes--;
} else {
cantDisLikes--;
}
// remueve de la coleccion
valoraciones.remove(i);
break;
}
}
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment