package org.antonio;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import org.antonio.Exception.HeroeNoEncontradoException;
import org.antonio.Model.GestorHeroes;
import org.antonio.Model.Heroe;
public class TestHeroes {
Heroe ironman = null;
Heroe spiderman = null;
Heroe capitanAmeria = null;
GestorHeroes gh = null;
@Before
public void setUp() {
ironman = new Heroe ("Iron Man", "Traje de alta tecnología", "Millonario y filántropo", "Es alto");
spiderman= new Heroe("Spider-Man", "Sentido arácnido, trepador", "Tímido estudiante de secundaria", "Es adolecente");
capitanAmeria = new Heroe ("Capitán América", "Superfuerza, agilidad, resistencia", "Soldado de la Segunda Guerra Mundial","Es de otra época");
gh = new GestorHeroes();
gh.agregarHeroe(ironman);
gh.agregarHeroe(spiderman);
gh.agregarHeroe(capitanAmeria);
}
@Test
public void testSettersHeroe() {
Heroe catWoman = new Heroe(null, null,null,null);
catWoman.setNombre("Cat Woman");
catWoman.setSuperpoderes("Trepar y arañar");
catWoman.setBiografia("Es la amiga de Batman");
assertEquals("Cat Woman", catWoman.getNombre());
assertEquals("Trepar y arañar", catWoman.getSuperpoderes());
assertEquals("Es la amiga de Batman", catWoman.getBiografia());
assertNotEquals("Iron Man", catWoman.getNombre());
assertNotEquals("Traje de alta tecnología", catWoman.getSuperpoderes());
assertNotEquals("Millonario y filántropo", catWoman.getBiografia());
}
@Test
public void testGestorHeroes() throws HeroeNoEncontradoException {
List<Heroe>GestorHeroes = new ArrayList<Heroe>();
assertEquals("Iron Man", ironman.getNombre());
}
@Test
public void testagregarHeroe() {
Heroe catWoman = new Heroe("Catwoman", "Trepa y araña", "No es de Marvel","Es de DC");
List<Heroe> gestorHeroes = new ArrayList<Heroe>();
gestorHeroes.add(catWoman); // con esto agrego a la lista
// Con este test estoy comparando que Catwoman se ha agregado correctamente a su lista mencionado arriba
assertEquals("Catwoman", gestorHeroes.get(0).getNombre());
}
@Test
public void testbuscarHeroe() throws HeroeNoEncontradoException {
Heroe catWoman = new Heroe("Catwoman", "Trepa y araña", "No es de Marvel","Es de DC");
List<Heroe> gestorHeroes = new ArrayList<Heroe>();
gestorHeroes.add(ironman);
assertEquals("Iron Man", ironman.getNombre());
}
@Test(expected = HeroeNoEncontradoException.class)
public void testbuscarHeroeNoEncontrado() throws HeroeNoEncontradoException {
Heroe catWoman = new Heroe("Catwoman", "Trepa y araña", "No es de Marvel","Es de DC");
GestorHeroes gh = new GestorHeroes(); // me creo una clase llamada gh
gh.agregarHeroe(ironman);
gh.buscarHeroe("Catwoman");
}
// Tests de integración: Debes crear un test de integración que compruebe que
//la clase `GestorHeroes` funciona correctamente al agregar y buscar
//héroes.
@Test
public void testAgregarYBuscarHeroe() throws HeroeNoEncontradoException {
Heroe ironMan = new Heroe("Iron Man", "Traje de alta tecnología", "Millonario y filántropo","Es alto");
Heroe spiderMan = new Heroe("Spider-Man", "Sentido arácnido, trepador", "Tímido estudiante de secundaria","Es adolecente");
Heroe capitanAmerica = new Heroe("Capitán América", "Superfuerza, agilidad, resistencia", "Soldado de la Segunda Guerra Mundial","Es de otra época");
GestorHeroes gh = new GestorHeroes();
// con esto agregamos los héroes
gh.agregarHeroe(ironMan);
gh.agregarHeroe(spiderMan);
gh.agregarHeroe(capitanAmerica);
// Verificamos que los héroes se buscan correctamente, primero lo que esperamos que haga la función luego su super poder
assertEquals("Traje de alta tecnología", gh.buscarHeroe("Iron Man").getSuperpoderes());
assertEquals("Sentido arácnido, trepador", gh.buscarHeroe("Spider-Man").getSuperpoderes());
assertEquals("Superfuerza, agilidad, resistencia", gh.buscarHeroe("Capitán América").getSuperpoderes());
assertNotEquals("Superfuerza, agilidad, resistencia", gh.buscarHeroe("Spider-Man").getSuperpoderes());
}
@Test(expected = HeroeNoEncontradoException.class)
public void testBuscarHeroeNoEncontrado() throws HeroeNoEncontradoException {
GestorHeroes gh = new GestorHeroes();
// Buscaremos un heroe que no existe
gh.buscarHeroe("Catwoman");
}
// Test de actualización de héroe existente
@Test
public void testActualizarDescripcionHeroeExistente() throws HeroeNoEncontradoException {
// Creamos un héroe
Heroe capitanAmerica = new Heroe("Capitán América", "Superfuerza, agilidad, resistencia", "Soldado de la Segunda Guerra Mundial","Es de otra época");
GestorHeroes gh = new GestorHeroes();
// Agregamos el héroe
gh.agregarHeroe(capitanAmerica);
// Actualizamos la descripción del héroe
String nuevaDescripcion = "Líder de los Vengadores";
gh.actualizarDescripcionHeroe("Capitán América", nuevaDescripcion);
// Verificamos que la descripción se haya actualizado correctamente
assertEquals(nuevaDescripcion, gh.buscarHeroe("Capitán América").getDescripcion());
}
@Test
public void testEliminarHeroe() throws HeroeNoEncontradoException {
GestorHeroes gh= new GestorHeroes();
Heroe spiderman = new Heroe("Spider-Man", "Sentido arácnido, trepador", "Tímido estudiante de secundaria","Es adolecente");
gh.agregarHeroe(spiderman);
// Eliminamos al heroe
gh.eliminarHeroe("Spider-Man");
// Verificar que el héroe ha sido eliminado correctamente
assertTrue(gh.getHeroes().isEmpty());
assertEquals(0, gh.getHeroes().size());
}
@Test
public void testAgregarHeroe() throws HeroeNoEncontradoException {
GestorHeroes gh = new GestorHeroes();
// Agregamos a los heroes
gh.agregarHeroe(new Heroe("Iron Man", "Traje de alta tecnología", "Millonario y filántropo","Es alto"));
gh.agregarHeroe(new Heroe("Spider-Man", "Sentido arácnido, trepador", "Tímido estudiante de secundaria","Es adolecente"));
gh.agregarHeroe(new Heroe("Capitán América", "Superfuerza, agilidad, resistencia", "Soldado de la Segunda Guerra Mundial","Es de otra época"));
// Comprobamos que hemos agregado a los heroes
assertEquals(3, gh.getHeroes().size()); // el 3 son los heroes que esperamos
// con esto comprobamos que los heroes cumplen con sus atributos.
Heroe ironMan = gh.buscarHeroe("Iron Man");
assertEquals("Iron Man", ironMan.getNombre());
assertEquals("Traje de alta tecnología", ironMan.getSuperpoderes());
assertEquals("Millonario y filántropo", ironMan.getBiografia());
Heroe spiderMan = gh.buscarHeroe("Capitán América");
assertNotEquals("Spider-Man", spiderMan.getNombre());
assertNotEquals("Sentido arácnido, trepador", spiderMan.getSuperpoderes());
assertNotEquals("Tímido estudiante de secundaria", spiderMan.getBiografia());
Heroe capitanAmerica = gh.buscarHeroe("Capitán América");
assertEquals("Capitán América", capitanAmerica.getNombre());
assertEquals("Superfuerza, agilidad, resistencia", capitanAmerica.getSuperpoderes());
assertEquals("Soldado de la Segunda Guerra Mundial", capitanAmerica.getBiografia());
}
@Test
public void testBuscarHeroePorSuperpoder() throws HeroeNoEncontradoException {
GestorHeroes gh = new GestorHeroes();
// Agregar héroes
gh.agregarHeroe(new Heroe("Iron Man", "Traje de alta tecnología", "Millonario y filántropo","Es alto"));
// Buscamos al heroe por su superpoderes
Heroe heroeIronMan = gh.buscarHeroePorSuperpoder("Traje de alta tecnología"); //
assertNotNull(heroeIronMan); // con el asserNotNull comprombamos que el heroe "heroeIronMan" está agregado
assertEquals("Iron Man", heroeIronMan.getNombre()); // Iron Man es lo que queremos que sea correcto, en el getnombre.
}
@Test
public void testActualizarHeroe() throws HeroeNoEncontradoException {
GestorHeroes gh = new GestorHeroes();
gh.agregarHeroe(new Heroe("Iron Man", "Traje de alta tecnología", "Millonario y filántropo","Es alto"));
gh.agregarHeroe(new Heroe("Spider-Man", "Sentido arácnido, trepador", "Tímido estudiante de secundaria","Es adolecente"));
gh.agregarHeroe(new Heroe("Capitán América", "Superfuerza, agilidad, resistencia", "Soldado de la Segunda Guerra Mundial","Es de otra época"));
gh.agregarHeroe(new Heroe("Thor", "Superfuerza, agilidad, trueno", "Dios del trueno","Es un dios"));
// He creado a Thor como nuevo heroe, actualizando sus atributos
Heroe Thor= new Heroe("Thor", "Superfuerza, agilidad, trueno", "Dios del trueno","Es un dios ");
// Actualizamos al nuevo heroe Thor
gh.actualizarHeroe(Thor);
// comprobamos que se han realizado los cambios
assertEquals("Superfuerza, agilidad, trueno", gh.buscarHeroe("Thor").getSuperpoderes());
assertEquals("Dios del trueno", gh.buscarHeroe("Thor").getBiografia());
}
@Test
public void testListarHeroes() {
GestorHeroes gh= new GestorHeroes();
gh.agregarHeroe(new Heroe("Iron Man", "Traje de alta tecnología", "Millonario y filántropo","Es alto"));
gh.agregarHeroe(new Heroe("Spider-Man", "Sentido arácnido, trepador", "Tímido estudiante de secundaria","Es adolecente"));
gh.agregarHeroe(new Heroe("Capitán América", "Superfuerza, agilidad, resistencia", "Soldado de la Segunda Guerra Mundial","Es de otra época"));
String listaEsperada = "Iron Man, Spider-Man, Capitán América";
assertEquals(listaEsperada, gh.listarHeroes());
}
}