Skip to content

Commit 0ed4aca

Browse files
committed
#16: Primer avance, Puntaje con reglas de notificación
1 parent 9cda258 commit 0ed4aca

3 files changed

Lines changed: 85 additions & 0 deletions

File tree

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package jwarrior.juego.puntuacion;
2+
3+
import jwarrior.piezas.unidades.Unidad;
4+
5+
public class Puntaje {
6+
7+
private Integer puntos = 10;
8+
9+
public Integer obtenerPuntaje() {
10+
return this.puntos;
11+
}
12+
13+
// TODO: implementar una CalculadoraDePuntaje
14+
public void notificarTurno() {
15+
this.puntos -= 1;
16+
}
17+
18+
// TODO: implementar una CalculadoraDePuntaje
19+
public void notificarMuerteEnemigo(Unidad unidad) {
20+
this.puntos += unidad.obtenerSaludMaxima();
21+
}
22+
23+
// TODO: implementar una CalculadoraDePuntaje
24+
public void notificarFinalizacionPartida(Unidad guerrero) {
25+
this.puntos += guerrero.obtenerSaludActual() / 2;
26+
}
27+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package jwarrior.juego.puntuacion;
2+
3+
import static org.hamcrest.CoreMatchers.is;
4+
import static org.junit.Assert.assertThat;
5+
import jwarrior.piezas.unidades.Orco;
6+
import jwarrior.piezas.unidades.Unidad;
7+
import jwarrior.piezas.unidades.mocks.UnidadStubBuilder;
8+
9+
import org.junit.Test;
10+
11+
public class PuntajeTests {
12+
13+
@Test
14+
public void alIniciarPuntajeComienzaConValorInicial() {
15+
16+
Puntaje puntaje = new Puntaje();
17+
assertThat(puntaje.obtenerPuntaje(), is(10));
18+
}
19+
20+
@Test
21+
public void alInformarPasoDeTurnoRestaPuntaje() {
22+
23+
Puntaje puntaje = new Puntaje();
24+
puntaje.notificarTurno();
25+
assertThat(puntaje.obtenerPuntaje(), is(9));
26+
}
27+
28+
@Test
29+
public void alInformarMuerteEnemigoSumaSaludMaximaEnemigo() {
30+
31+
Puntaje puntaje = new Puntaje();
32+
puntaje.notificarMuerteEnemigo(new Orco());
33+
assertThat(puntaje.obtenerPuntaje(), is(18));
34+
}
35+
36+
@Test
37+
public void alInformarFinalizacionPartidaSumaMitadDeSalud() {
38+
39+
Puntaje puntaje = new Puntaje();
40+
puntaje.notificarFinalizacionPartida(UnidadStubBuilder.construirStubGuerrero());
41+
assertThat(puntaje.obtenerPuntaje(), is(20));
42+
}
43+
44+
@Test
45+
public void alInformarFinalizacionPartidaHeridoSumaMitadDeSalud() {
46+
Puntaje puntaje = new Puntaje();
47+
Unidad guerrero = UnidadStubBuilder.construirStubGuerrero();
48+
guerrero.recibirGolpe(4);
49+
50+
puntaje.notificarFinalizacionPartida(guerrero);
51+
assertThat(puntaje.obtenerPuntaje(), is(18));
52+
}
53+
}

src/test/java/jwarrior/piezas/unidades/mocks/GuerreroStub.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ public class GuerreroStub extends Guerrero {
99
public GuerreroStub() {
1010
super("Nombre", new JugadorStub());
1111
}
12+
13+
@Override
14+
public void decir(String frase) {
15+
// No dice nada
16+
}
1217
}
1318

1419
class JugadorStub implements Jugador {

0 commit comments

Comments
 (0)