javadoc
package org.antonio;
import java.util.ArrayList;
import java.util.List;
class Cancion {
private String titulo;
private String artista;
private int duracion;
public Cancion(String titulo, String artista, int duracion) {
this.titulo = titulo;
this.artista = artista;
this.duracion = duracion;
}
// Métodos getter y setter para los atributos
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public int getDuracion() {
return duracion;
}
public void setDuracion(int duracion) {
this.duracion = duracion;
}
}
package org.antonio;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
public class CancionTest {
private Cancion cancion;
@Before
public void setUp() {
cancion = new Cancion("Bohemian Rhapsody", "Queen", 355);
}
@Test
public void testGetTitulo() {
assertEquals("Bohemian Rhapsody", cancion.getTitulo());
assertNotEquals("We Will Rock You", cancion.getTitulo());
}
@Test
public void testSetTitulo() {
cancion.setTitulo("We Will Rock You");
assertEquals("We Will Rock You", cancion.getTitulo());
assertNotEquals("Bohemian Rhapsody", cancion.getTitulo());
}
@Test
public void testGetArtista() {
assertEquals("Queen", cancion.getArtista());
assertNotEquals("Mozart", cancion.getArtista());
}
@Test
public void testSetArtista() {
cancion.setArtista("The Beatles");
assertEquals("The Beatles", cancion.getArtista());
assertNotEquals("Queen", cancion.getArtista());
}
@Test
public void testGetDuracion() {
assertEquals(355, cancion.getDuracion());
assertNotEquals(400, cancion.getDuracion());
}
@Test
public void testSetDuracion() {
cancion.setDuracion(400);
assertEquals(400, cancion.getDuracion());
assertNotEquals(450, cancion.getDuracion());
}
}
package org.antonio;
import java.util.ArrayList;
import java.util.List;
/**
* Clase que representa una playlist de canciones.
*
* @version 1.0
* @since 2024-06-02
*/
class Playlist {
private String nombre;
private List<Cancion> canciones;
/**
* Constructor que inicializa la playlist con un nombre.
*
* @param nombre El nombre de la playlist.
*/
public Playlist(String nombre) {
this.nombre = nombre;
this.canciones = new ArrayList<>();
}
/**
* Obtiene el nombre de la playlist.
*
* @return El nombre de la playlist.
*/
public String getNombre() {
return nombre;
}
/**
* Establece el nombre de la playlist.
*
* @param nombre El nombre de la playlist.
*/
public void setNombre(String nombre) {
this.nombre = nombre;
}
/**
* Obtiene la lista de canciones de la playlist.
*
* @return La lista de canciones.
*/
public List<Cancion> getCanciones() {
return canciones;
}
/**
* Agrega una canción a la playlist.
*
* @param cancion La canción a agregar.
*/
public void agregarCancion(Cancion cancion) {
canciones.add(cancion);
}
/**
* Elimina una canción de la playlist.
*
* @param cancion La canción a eliminar.
*/
public void eliminarCancion(Cancion cancion) {
canciones.remove(cancion);
}
/**
* Calcula la duración total de la playlist sumando la duración de todas las canciones.
*
* @return La duración total de la playlist en segundos.
*/
public int getDuracionTotal() {
int duracionTotal = 0;
for (Cancion cancion : canciones) {
duracionTotal += cancion.getDuracion();
}
return duracionTotal;
}
/**
* Muestra las canciones en la playlist sacandolas por pantalla.
*
* @return Una cadena con la lista de canciones en la playlist.
*/
public String mostrarCanciones() {
System.out.println("Canciones en la playlist '" + nombre + "':");
String salida_canciones = "Canciones en la playlist '" + nombre + "':";
for (Cancion cancion : canciones) {
System.out.println("- " + cancion.getTitulo() + " (" + cancion.getArtista() + ")");
salida_canciones += "- " + cancion.getTitulo() + " (" + cancion.getArtista() + ")";
}
return salida_canciones;
}
}
package org.antonio;
import org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import java.util.List;
public class PlaylistTest {
private Cancion cancion1;
private Cancion cancion2;
private Cancion cancion3;
private Playlist playlist;
@Before
public void setUp() {
cancion1 = new Cancion("Bohemian Rhapsody", "Queen", 355);
cancion2 = new Cancion("Imagine", "John Lennon", 180);
cancion3 = new Cancion("Hotel California", "Eagles", 390);
playlist = new Playlist("Mis Favoritas");
}
@Test
public void testGetNombre() {
assertEquals("Mis Favoritas", playlist.getNombre());
assertNotEquals("Pop", playlist.getNombre());
}
@Test
public void testSetNombre() {
playlist.setNombre("Rock Clásico");
assertEquals("Rock Clásico", playlist.getNombre());
assertNotEquals("Pop", playlist.getNombre());
}
@Test
public void testAgregarCancion() {
playlist.agregarCancion(cancion1);
List<Cancion> canciones = playlist.getCanciones();
assertEquals(1, canciones.size());
assertNotEquals(2, canciones.size());
assertTrue(canciones.contains(cancion1));
assertFalse(canciones.contains(cancion2));
}
@Test
public void testEliminarCancion() {
playlist.agregarCancion(cancion1);
playlist.agregarCancion(cancion2);
playlist.eliminarCancion(cancion1);
List<Cancion> canciones = playlist.getCanciones();
assertEquals(1, canciones.size());
assertNotEquals(2, canciones.size());
assertFalse(canciones.contains(cancion1));
assertTrue(canciones.contains(cancion2));
}
@Test
public void testGetDuracionTotal() {
playlist.agregarCancion(cancion1);
playlist.agregarCancion(cancion2);
playlist.agregarCancion(cancion3);
int duracionTotal = playlist.getDuracionTotal();
assertEquals(925, duracionTotal);
assertNotEquals(867, duracionTotal);
}
@Test
public void testMostrarCanciones() {
playlist.agregarCancion(cancion1);
playlist.agregarCancion(cancion2);
playlist.agregarCancion(cancion3);
String salida = playlist.mostrarCanciones();
assertTrue(salida.contains("Bohemian Rhapsody (Queen)"));
assertTrue(salida.contains("Imagine (John Lennon)"));
assertTrue(salida.contains("Hotel California (Eagles)"));
}
}
package org.antonio;
import java.util.ArrayList;
import java.util.List;
/**
* Clase que representa un usuario con una lista de playlists.
*
* @version 1.0
* @since 2024-06-02
*/
class Usuario {
private String nombre;
private List<Playlist> playlists;
/**
* Constructor que inicializa el usuario con un nombre.
*
* @param nombre El nombre del usuario.
*/
public Usuario(String nombre) {
this.nombre = nombre;
this.playlists = new ArrayList<>();
}
/**
* Obtiene el nombre del usuario.
*
* @return El nombre del usuario.
*/
public String getNombre() {
return nombre;
}
/**
* Establece el nombre del usuario.
*
* @param nombre El nombre del usuario.
*/
public void setNombre(String nombre) {
this.nombre = nombre;
}
/**
* Obtiene la lista de playlists del usuario.
*
* @return La lista de playlists.
*/
public List<Playlist> getPlaylists() {
return playlists;
}
/**
* Agrega una playlist a la lista de playlists del usuario.
*
* @param playlist La playlist a agregar.
*/
public void agregarPlaylist(Playlist playlist) {
playlists.add(playlist);
}
/**
* Elimina una playlist de la lista de playlists del usuario.
*
* @param playlist La playlist a eliminar.
*/
public void eliminarPlaylist(Playlist playlist) {
playlists.remove(playlist);
}
/**
* Muestra las playlists del usuario sacandola por pantalla.
*
* @return Una cadena con la lista de playlists del usuario.
*/
public String mostrarPlaylists() {
System.out.println("Playlists de '" + nombre + "':");
String salida_playlists = "Playlists de '" + nombre + "':";
for (Playlist playlist : playlists) {
System.out.println("- " + playlist.getNombre());
salida_playlists += "- " + playlist.getNombre();
}
return salida_playlists;
}
/**
* Busca una canción en las playlists del usuario y muestra los resultados de la búsqueda.
*
* @param tituloCancion El título de la canción a buscar.
* @return Una cadena con los resultados de la búsqueda.
*/
public String buscarCancionEnPlaylists(String tituloCancion) {
System.out.println("Resultados de la búsqueda de '" + tituloCancion + "' en las playlists de '" + nombre + "':");
String salida_cancion_playlist = "Resultados de la búsqueda de '" + tituloCancion + "' en las playlists de '" + nombre + "':";
for (Playlist playlist : playlists) {
System.out.println("- Playlist: " + playlist.getNombre());
System.out.println(playlist.getCanciones().size());
for (Cancion cancion : playlist.getCanciones()) {
if (cancion.getTitulo().equalsIgnoreCase(tituloCancion)) {
System.out.println("- " + cancion.getTitulo() + " (" + cancion.getArtista() + ") - Playlist: " + playlist.getNombre());
salida_cancion_playlist += "- " + cancion.getTitulo() + " (" + cancion.getArtista() + ") - Playlist: " + playlist.getNombre();
}
}
}
return salida_cancion_playlist;
}
}
package org.antonio;
import org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
public class UsuarioTest {
private Usuario usuario;
private Playlist playlist1;
private Playlist playlist2;
@Before
public void setUp() {
usuario = new Usuario("Juan");
playlist1 = new Playlist("Mis Favoritas");
playlist2 = new Playlist("Rock Clásico");
}
@Test
public void testGetNombre() {
assertEquals("Juan", usuario.getNombre());
assertNotEquals("Pedro", usuario.getNombre());
}
@Test
public void testSetNombre() {
usuario.setNombre("Pedro");
assertEquals("Pedro", usuario.getNombre());
assertNotEquals("Juan", usuario.getNombre());
}
@Test
public void testAgregarPlaylist() {
usuario.agregarPlaylist(playlist1);
List<Playlist> playlists = usuario.getPlaylists();
assertEquals(1, playlists.size());
assertEquals("Mis Favoritas", playlists.get(0).getNombre());
assertNotEquals(2, playlists.size());
assertNotEquals("Rock Clásico", playlists.get(0).getNombre());
}
@Test
public void testEliminarPlaylist() {
usuario.agregarPlaylist(playlist1);
usuario.agregarPlaylist(playlist2);
usuario.eliminarPlaylist(playlist1);
List<Playlist> playlists = usuario.getPlaylists();
assertEquals(1, playlists.size());
assertNotEquals(2, playlists.size());
assertFalse(playlists.contains(playlist1));
assertTrue(playlists.contains(playlist2));
}
@Test
public void testMostrarPlaylists() {
usuario.agregarPlaylist(playlist1);
usuario.agregarPlaylist(playlist2);
String salida = usuario.mostrarPlaylists();
assertTrue(salida.contains("Mis Favoritas"));
assertTrue(salida.contains("Rock Clásico"));
assertFalse(salida.contains("Pop"));
assertFalse(salida.contains("Trap"));
}
@Test
public void testBuscarCancionEnPlaylists() {
// i. Agregar una canción a cada playlist
Cancion cancion1 = new Cancion("Bohemian Rhapsody", "Queen", 355);
Cancion cancion2 = new Cancion("Imagine", "John Lennon", 180);
playlist1.agregarCancion(cancion1);
playlist2.agregarCancion(cancion2);
// ii. Agrega las dos playlist al usuario
usuario.agregarPlaylist(playlist1);
usuario.agregarPlaylist(playlist2);
// iii. Testea que nombre de la canción, el nombre del grupo y el nombre de la playlist están en la salida
String resultado1 = usuario.buscarCancionEnPlaylists("Bohemian Rhapsody");
assertTrue(resultado1.contains("Bohemian Rhapsody"));
assertTrue(resultado1.contains("Queen"));
assertTrue(resultado1.contains("Mis Favoritas"));
String resultado2 = usuario.buscarCancionEnPlaylists("Imagine");
assertTrue(resultado2.contains("Imagine"));
assertTrue(resultado2.contains("John Lennon"));
assertTrue(resultado2.contains("Rock Clásico"));
}
}