Skip to content

Commit 9cda258

Browse files
committed
#15: Se agregan tests de unidades concretas
1 parent d1528cd commit 9cda258

12 files changed

Lines changed: 209 additions & 10 deletions

File tree

src/main/java/jwarrior/piezas/unidades/Unidad.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,35 +29,35 @@ public Comando proximoComando() {
2929

3030
// Comandos y Sentidos
3131

32-
public final Comando noHacerNada() {
32+
public Comando noHacerNada() {
3333
return LocalizadorDeFabricas
3434
.obtenerInstancia()
3535
.obtenerFabricaDeComandos()
3636
.crearNoHacerNada(this);
3737
}
3838

39-
public final Comando atacar(final Direccion direccion) {
39+
public Comando atacar(final Direccion direccion) {
4040
return LocalizadorDeFabricas
4141
.obtenerInstancia()
4242
.obtenerFabricaDeComandos()
4343
.crearAtacar(direccion, this);
4444
}
4545

46-
public final Comando desplazarse(final Direccion direccion) {
46+
public Comando desplazarse(final Direccion direccion) {
4747
return LocalizadorDeFabricas
4848
.obtenerInstancia()
4949
.obtenerFabricaDeComandos()
5050
.crearDesplazarse(direccion, this);
5151
}
5252

53-
public final Comando descansar() {
53+
public Comando descansar() {
5454
return LocalizadorDeFabricas
5555
.obtenerInstancia()
5656
.obtenerFabricaDeComandos()
5757
.crearDescansar(this);
5858
}
5959

60-
public final Sentir sentir(final Direccion direccion) {
60+
public Sentir sentir(final Direccion direccion) {
6161
return LocalizadorDeFabricas
6262
.obtenerInstancia()
6363
.obtenerFabricaDeSentidos()
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package jwarrior.juego.jugadores;
2+
3+
import jwarrior.comandos.Comando;
4+
import jwarrior.juego.Jugador;
5+
import jwarrior.piezas.unidades.Guerrero;
6+
7+
public class JugadorEspia implements Jugador {
8+
9+
private boolean jugarTurno = false;
10+
11+
@Override
12+
public Comando jugarTurno(Guerrero guerrero) {
13+
this.jugarTurno = true;
14+
return guerrero.noHacerNada();
15+
}
16+
17+
public boolean invocoJugarTurno() {
18+
return this.jugarTurno;
19+
}
20+
21+
@Override
22+
public String obtenerNombreDelGuerrero() {
23+
return "Nombre";
24+
}
25+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package jwarrior.juego.jugadores;
2+
3+
4+
public class JugadorStubBuilder {
5+
6+
public static JugadorEspia construirEspiaJugador() {
7+
return new JugadorEspia();
8+
}
9+
}

src/test/java/jwarrior/piezas/PosicionSpy.java renamed to src/test/java/jwarrior/piezas/PosicionEspia.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import jwarrior.posiciones.Posicion;
44

5-
public class PosicionSpy extends Posicion {
5+
public class PosicionEspia extends Posicion {
66

77
private boolean seLibero = false;
88

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package jwarrior.piezas.unidades;
2+
3+
import static org.hamcrest.CoreMatchers.is;
4+
import static org.junit.Assert.assertThat;
5+
import jwarrior.juego.jugadores.JugadorEspia;
6+
import jwarrior.juego.jugadores.JugadorStubBuilder;
7+
import jwarrior.piezas.unidades.mocks.UnidadStubBuilder;
8+
9+
import org.junit.Test;
10+
11+
public class GuerreroTests {
12+
13+
@Test
14+
public void guerreroDelegaProximoComandoAJugador() {
15+
16+
JugadorEspia jugadorEspia = JugadorStubBuilder.construirEspiaJugador();
17+
Unidad unidad = UnidadStubBuilder.construirGuerrero(jugadorEspia);
18+
unidad.proximoComando();
19+
assertThat(jugadorEspia.invocoJugarTurno(), is(true));
20+
}
21+
}

src/test/java/jwarrior/piezas/unidades/InvariantesDeUnidadTests.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
import static org.hamcrest.CoreMatchers.is;
44
import static org.junit.Assert.assertThat;
5+
6+
import java.util.HashMap;
7+
import java.util.Map;
8+
import java.util.Map.Entry;
9+
510
import jwarrior.piezas.unidades.mocks.UnidadStubBuilder;
611
import jwarrior.ui.InterfazDeUsuario;
712
import jwarrior.ui.mocks.SalidaMock;
@@ -34,4 +39,17 @@ public void unidadAlDecirEnviaMensaje() {
3439
unidad.decir("Una frase");
3540
assertThat(salida.envioMensaje(), is(true));
3641
}
42+
43+
@Test
44+
public void cadaUnidadSabeDecirSuRepresentacion() {
45+
46+
Map<Unidad, String> representaciones = new HashMap<Unidad, String>();
47+
representaciones.put(new UnidadNula(), "_");
48+
representaciones.put(new Orco(), "o");
49+
representaciones.put(UnidadStubBuilder.construirStubGuerrero(), "G");
50+
51+
for (Entry<Unidad, String> par : representaciones.entrySet()) {
52+
assertThat(par.getKey().toCharacter(), is(par.getValue()));
53+
}
54+
}
3755
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package jwarrior.piezas.unidades;
2+
3+
import static org.hamcrest.CoreMatchers.instanceOf;
4+
import static org.junit.Assert.assertThat;
5+
import jwarrior.comandos.Atacar;
6+
import jwarrior.comandos.NoHacerNada;
7+
import jwarrior.piezas.unidades.mocks.UnidadStubBuilder;
8+
9+
import org.junit.Test;
10+
11+
public class OrcoTests {
12+
13+
@Test
14+
public void orcoSinGuerreroAtrasNoHaceNada() {
15+
16+
Orco orco = UnidadStubBuilder.construirOrcoSinUnidadesCerca();
17+
assertThat(orco.proximoComando(), instanceOf(NoHacerNada.class));
18+
}
19+
20+
@Test
21+
public void orcoConGuerreroAtrasAtaca() {
22+
23+
Orco orco = UnidadStubBuilder.construirOrcoConGuerreroAtras();
24+
assertThat(orco.proximoComando(), instanceOf(Atacar.class));
25+
}
26+
}

src/test/java/jwarrior/piezas/unidades/PosicionesDeUnidadTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import static org.hamcrest.CoreMatchers.is;
44
import static org.junit.Assert.assertThat;
5-
import jwarrior.piezas.PosicionSpy;
5+
import jwarrior.piezas.PosicionEspia;
66
import jwarrior.piezas.unidades.mocks.UnidadStubBuilder;
77

88
import org.junit.Test;
@@ -12,7 +12,7 @@ public class PosicionesDeUnidadTests {
1212
@Test
1313
public void unidadPosicionadaAlMorirLiberaPosicion() {
1414

15-
PosicionSpy posicion = new PosicionSpy();
15+
PosicionEspia posicion = new PosicionEspia();
1616
Unidad unidad = UnidadStubBuilder.construirStubPosicionado(posicion);
1717
unidad.recibirGolpe(unidad.obtenerSaludActual());
1818
assertThat(posicion.verificarQueSeLibero(), is(true));
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package jwarrior.piezas.unidades;
2+
3+
import static org.hamcrest.CoreMatchers.is;
4+
import static org.junit.Assert.assertThat;
5+
6+
import org.junit.Test;
7+
8+
public class UnidadNulaTests {
9+
10+
@Test
11+
public void unidadNulaNoRestaSaludAlRecibirGolpe() {
12+
13+
Unidad unidad = new UnidadNula();
14+
Integer saludInicial = unidad.obtenerSaludActual();
15+
unidad.recibirGolpe(10);
16+
assertThat(unidad.obtenerSaludActual(), is(saludInicial));
17+
}
18+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package jwarrior.piezas.unidades.mocks;
2+
3+
import jwarrior.comandos.Comando;
4+
import jwarrior.juego.Jugador;
5+
import jwarrior.piezas.unidades.Guerrero;
6+
7+
public class GuerreroStub extends Guerrero {
8+
9+
public GuerreroStub() {
10+
super("Nombre", new JugadorStub());
11+
}
12+
}
13+
14+
class JugadorStub implements Jugador {
15+
16+
@Override
17+
public Comando jugarTurno(Guerrero guerrero) {
18+
return guerrero.noHacerNada();
19+
}
20+
21+
@Override
22+
public String obtenerNombreDelGuerrero() {
23+
return "Nombre";
24+
}
25+
26+
}

0 commit comments

Comments
 (0)