Skip to content
Snippets Groups Projects
Commit c9ca58d0 authored by Ivan Gonzalez's avatar Ivan Gonzalez
Browse files

Se ha implementado el método amigosPorDelante() y corregido el test asociado a...

Se ha implementado el método amigosPorDelante() y corregido el test asociado a la ejecución correcta del método
parent 92dc8da0
Branches
No related tags found
2 merge requests!3Develop,!2Cola
Pipeline #
......@@ -160,8 +160,18 @@ public class ColaDeAmigos {
* parámetro.
*/
public ArrayList<Persona> amigosPorDelante(int id) {
// TODO Auto-generated method stub
return null;
if (id < 0)
throw new IllegalArgumentException("El id de la Persona a buscar debe ser positivo.");
if (!containsPersona(id))
throw new IllegalArgumentException("El id pasado debe estar asociado a una Persona de la cola.");
Persona p = buscarPersona(id);
int indicePersona = getCola().indexOf(p);
int indiceAmigos = indicePersona - (p.getMaxAmigos() - p.getAmigosPorColar());
ArrayList<Persona> amigosEnCola = new ArrayList<Persona>();
for (int i = indiceAmigos; i < indicePersona; i++) {
amigosEnCola.add(getCola().get(i));
}
return amigosEnCola;
}
/**
......
......@@ -222,6 +222,19 @@ public class Persona {
return amigosPorColar;
}
/**
* Método que descontará amigos por colar a this hasta que el contador
* llegue a 0.
*
* @throws IllegalAccessError
* si se intenta colar a amigos cuando no se puede colar a más.
*/
public void restarAmigosPorColar() {
if (amigosPorColar == 0)
throw new IllegalAccessError("No se puede colar a más amigos.");
amigosPorColar--;
}
/**
* @return lista de amigos de this.
*/
......
......@@ -66,7 +66,6 @@ public class ColaDeAmigosTDDTest {
@Test
public void amigosPorColarCorrectoTest() {
fail("Quitar en implementación");
ArrayList<Persona> colaInicial = new ArrayList<Persona>();
Persona p = new Persona("Pepe", 1, new ArrayList<Persona>(), new ArrayList<Persona>());
p.setMaxAmigos(5);
......@@ -102,8 +101,11 @@ public class ColaDeAmigosTDDTest {
Persona p = new Persona("Pepe", 1, amigos, new ArrayList<Persona>());
colaInicial.add(p);
ColaDeAmigos colaDeAmigos = new ColaDeAmigos(colaInicial);
colaInicial.add(0, amigo);
p.setMaxAmigos(1);
p.restarAmigosPorColar();
colaDeAmigos.amigosPorDelante(1);
assertEquals(amigos, colaDeAmigos.amigosPorDelante(1));
assertTrue(colaDeAmigos.amigosPorDelante(1).contains(amigo));
}
@Test(expected = IllegalArgumentException.class)
......
......@@ -44,4 +44,19 @@ public class PersonaOperacionesAMayoresTest {
p.hasElementoNull(null);
}
@Test
public void restarAmigosPorColarCorrectoTest() {
Persona p = new Persona(nombre, id, amigos, conocidos);
p.setMaxAmigos(1);
p.restarAmigosPorColar();
}
@Test(expected = IllegalAccessError.class)
public void restarAmigosCuandoNoSePuedeColarAMasTest() {
Persona p = new Persona(nombre, id, amigos, conocidos);
p.setMaxAmigos(1);
p.restarAmigosPorColar();
p.restarAmigosPorColar();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment