-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Se agregan tests sobre los comandos, cubriendo totalmente esos casos
- Loading branch information
Showing
18 changed files
with
483 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package jwarrior.comandos; | ||
|
||
import static org.hamcrest.CoreMatchers.is; | ||
import static org.junit.Assert.assertThat; | ||
import jwarrior.piezas.unidades.Unidad; | ||
import jwarrior.piezas.unidades.mocks.UnidadEspia; | ||
import jwarrior.piezas.unidades.mocks.UnidadStubBuilder; | ||
|
||
import org.junit.Test; | ||
|
||
public class AtacarTests { | ||
|
||
@Test | ||
public void queUnidadAtacadaRecibeGolpe() { | ||
|
||
Unidad atacante = UnidadStubBuilder.construirStubGuerrero(); | ||
UnidadEspia atacada = UnidadStubBuilder.construirStubEspia(); | ||
Atacar comando = ConstructorDeEscenarios.escenarioParaAtacar(atacante, atacada); | ||
comando.ejecutarComando(); | ||
assertThat(atacada.invocoRecibirGolpe(), is(true)); | ||
} | ||
|
||
// TODO: falta testear, pero es responsabilidad de otra clase, cuánto se lastima. | ||
} |
116 changes: 116 additions & 0 deletions
116
src/test/java/jwarrior/comandos/ConstructorDeEscenarios.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
package jwarrior.comandos; | ||
|
||
import jwarrior.piezas.PosicionEspia; | ||
import jwarrior.piezas.Salida; | ||
import jwarrior.piezas.unidades.Unidad; | ||
import jwarrior.piezas.unidades.mocks.UnidadEspia; | ||
import jwarrior.piezas.unidades.mocks.UnidadStubBuilder; | ||
import jwarrior.posiciones.Posicion; | ||
import jwarrior.posiciones.PosicionInexistente; | ||
import jwarrior.referencias.Direccion; | ||
import jwarrior.referencias.Espacio; | ||
|
||
public class ConstructorDeEscenarios { | ||
|
||
public static NoHacerNada escenarioParaNoHacerNada(Unidad unidad) { | ||
return new NoHacerNada(unidad); | ||
} | ||
|
||
public static Descansar escenarioParaDescansar(Unidad unidad) { | ||
return new Descansar(unidad); | ||
} | ||
|
||
public static Atacar escenarioParaAtacar(Unidad atacante, | ||
UnidadEspia atacada) { | ||
|
||
Posicion posicionAtacada = new Posicion(); | ||
posicionAtacada.establecerPieza(atacada); | ||
|
||
atacante.establecerPosicion(posicionJuntoAPosicion(posicionAtacada)); | ||
return new Atacar(Direccion.ADELANTE, atacante); | ||
} | ||
|
||
private static Posicion posicionJuntoAPosicion(Posicion posicionAtacada) { | ||
return new PosicionJuntoAOtra(posicionAtacada); | ||
} | ||
|
||
public static EscenarioParaDesplazarse escenarioParaDesplazarsePorVacia() { | ||
|
||
Posicion posicionDestino = new Posicion(); | ||
PosicionEspia posicionActual = posicionEspiaJuntoAPosicion(posicionDestino); | ||
Unidad unidad = UnidadStubBuilder.construirStubGuerrero(); | ||
unidad.establecerPosicion(posicionActual); | ||
|
||
return new EscenarioParaDesplazarse(unidad, posicionActual); | ||
} | ||
|
||
public static EscenarioParaDesplazarse escenarioParaDesplazarsePorSalida() { | ||
|
||
Posicion posicionDestino = new Salida(); | ||
PosicionEspia posicionActual = posicionEspiaJuntoAPosicion(posicionDestino); | ||
Unidad unidad = UnidadStubBuilder.construirStubGuerrero(); | ||
unidad.establecerPosicion(posicionActual); | ||
|
||
return new EscenarioParaDesplazarse(unidad, posicionActual); | ||
} | ||
|
||
public static EscenarioParaDesplazarse escenarioParaNoDesplazarsePorInexistente() { | ||
|
||
Posicion posicionDestino = new PosicionInexistente(); | ||
PosicionEspia posicionActual = posicionEspiaJuntoAPosicion(posicionDestino); | ||
Unidad unidad = UnidadStubBuilder.construirStubGuerrero(); | ||
unidad.establecerPosicion(posicionActual); | ||
|
||
return new EscenarioParaDesplazarse(unidad, posicionActual); | ||
} | ||
|
||
public static EscenarioParaDesplazarse escenarioParaNoDesplazarsePorOcupada() { | ||
|
||
Posicion posicionDestino = new PosicionOcupada(); | ||
PosicionEspia posicionActual = posicionEspiaJuntoAPosicion(posicionDestino); | ||
Unidad unidad = UnidadStubBuilder.construirStubGuerrero(); | ||
unidad.establecerPosicion(posicionActual); | ||
|
||
return new EscenarioParaDesplazarse(unidad, posicionActual); | ||
} | ||
|
||
private static PosicionEspia posicionEspiaJuntoAPosicion(Posicion posicionAtacada) { | ||
return new PosicionEspiaJuntoAOtra(posicionAtacada); | ||
} | ||
} | ||
|
||
class PosicionOcupada extends Posicion { | ||
@Override | ||
public boolean hay(Espacio espacio) { | ||
return Espacio.ENEMIGO == espacio; | ||
} | ||
} | ||
|
||
class PosicionJuntoAOtra extends Posicion { | ||
|
||
private Posicion contigua; | ||
|
||
public PosicionJuntoAOtra(Posicion otraPosicion) { | ||
this.contigua = otraPosicion; | ||
} | ||
|
||
@Override | ||
public Posicion obtenerContigua(Direccion direccion) { | ||
return this.contigua; | ||
} | ||
} | ||
|
||
class PosicionEspiaJuntoAOtra extends PosicionEspia { | ||
|
||
private Posicion contigua; | ||
|
||
public PosicionEspiaJuntoAOtra(Posicion otraPosicion) { | ||
this.contigua = otraPosicion; | ||
} | ||
|
||
@Override | ||
public Posicion obtenerContigua(Direccion direccion) { | ||
return this.contigua; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package jwarrior.comandos; | ||
|
||
import static org.hamcrest.CoreMatchers.is; | ||
import static org.junit.Assert.assertThat; | ||
import jwarrior.piezas.unidades.mocks.UnidadHeridaEspia; | ||
import jwarrior.piezas.unidades.mocks.UnidadSaludable; | ||
import jwarrior.piezas.unidades.mocks.UnidadStubBuilder; | ||
|
||
import org.junit.Test; | ||
|
||
public class DescansarTests { | ||
|
||
@Test | ||
public void queUnidadSaludableNoSeCura() { | ||
|
||
UnidadSaludable unidadEspia = UnidadStubBuilder.construirStubSaludable(20); | ||
Descansar comando = ConstructorDeEscenarios.escenarioParaDescansar(unidadEspia); | ||
comando.ejecutarComando(); | ||
assertThat(unidadEspia.invocoCurar(), is(false)); | ||
} | ||
|
||
@Test | ||
public void queUnidadNoSaludableSeCura() { | ||
|
||
UnidadHeridaEspia unidadEspia = UnidadStubBuilder.construirStubHeridoEspia(20); | ||
Descansar comando = ConstructorDeEscenarios.escenarioParaDescansar(unidadEspia); | ||
comando.ejecutarComando(); | ||
assertThat(unidadEspia.invocoCurar(), is(true)); | ||
} | ||
|
||
// TODO: falta testear, pero es responsabilidad de otra clase, cuánto se cura. | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
package jwarrior.comandos; | ||
|
||
import static org.hamcrest.CoreMatchers.is; | ||
import static org.junit.Assert.assertThat; | ||
|
||
import org.junit.Test; | ||
|
||
public class DesplazarseTests { | ||
|
||
@Test | ||
public void queUnidadSiHayContiguaSeMueve() { | ||
|
||
EscenarioParaDesplazarse escenario = ConstructorDeEscenarios.escenarioParaDesplazarsePorVacia(); | ||
Desplazarse comando = escenario.obtenerComando(); | ||
|
||
comando.ejecutarComando(); | ||
assertThat(escenario.obtenerPosicionOrigen().invocoMoverUnidadHacia(), is(true)); | ||
} | ||
|
||
@Test | ||
public void queUnidadSiHaySalidaSeMueve() { | ||
|
||
EscenarioParaDesplazarse escenario = ConstructorDeEscenarios.escenarioParaDesplazarsePorSalida(); | ||
Desplazarse comando = escenario.obtenerComando(); | ||
|
||
comando.ejecutarComando(); | ||
assertThat(escenario.obtenerPosicionOrigen().invocoMoverUnidadHacia(), is(true)); | ||
} | ||
|
||
@Test | ||
public void queUnidadSiNoHayContiguaNoSeMueve() { | ||
|
||
EscenarioParaDesplazarse escenario = ConstructorDeEscenarios.escenarioParaNoDesplazarsePorInexistente(); | ||
Desplazarse comando = escenario.obtenerComando(); | ||
|
||
comando.ejecutarComando(); | ||
assertThat(escenario.obtenerPosicionOrigen().invocoMoverUnidadHacia(), is(false)); | ||
} | ||
|
||
@Test | ||
public void queUnidadSiHayContiguaOcupadaNoSeMueve() { | ||
|
||
EscenarioParaDesplazarse escenario = ConstructorDeEscenarios.escenarioParaNoDesplazarsePorOcupada(); | ||
Desplazarse comando = escenario.obtenerComando(); | ||
|
||
comando.ejecutarComando(); | ||
assertThat(escenario.obtenerPosicionOrigen().invocoMoverUnidadHacia(), is(false)); | ||
} | ||
} |
26 changes: 26 additions & 0 deletions
26
src/test/java/jwarrior/comandos/EscenarioParaDesplazarse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package jwarrior.comandos; | ||
|
||
import jwarrior.piezas.PosicionEspia; | ||
import jwarrior.piezas.unidades.Unidad; | ||
import jwarrior.referencias.Direccion; | ||
|
||
public class EscenarioParaDesplazarse { | ||
|
||
private PosicionEspia posicionActual; | ||
private Unidad unidad; | ||
|
||
public EscenarioParaDesplazarse(Unidad unidad, | ||
PosicionEspia posicionActual) { | ||
this.unidad = unidad; | ||
this.posicionActual = posicionActual; | ||
} | ||
|
||
public PosicionEspia obtenerPosicionOrigen() { | ||
return this.posicionActual; | ||
} | ||
|
||
public Desplazarse obtenerComando() { | ||
return new Desplazarse(Direccion.ADELANTE, this.unidad); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package jwarrior.comandos; | ||
|
||
import static org.hamcrest.CoreMatchers.is; | ||
import static org.junit.Assert.assertThat; | ||
import jwarrior.piezas.unidades.mocks.UnidadEspia; | ||
import jwarrior.piezas.unidades.mocks.UnidadMuerta; | ||
import jwarrior.piezas.unidades.mocks.UnidadStubBuilder; | ||
|
||
import org.junit.Test; | ||
|
||
public class NoHacerNadaTests { | ||
|
||
@Test | ||
public void queNoHaceNada() { | ||
|
||
UnidadEspia unidadEspia = UnidadStubBuilder.construirStubEspia(); | ||
NoHacerNada comando = ConstructorDeEscenarios.escenarioParaNoHacerNada(unidadEspia); | ||
comando.ejecutarComando(); | ||
assertThat(unidadEspia.invocoDecir(), is(true)); | ||
} | ||
|
||
@Test | ||
public void queSiEstaMuertaNoEjecuta() { | ||
|
||
UnidadMuerta unidadMuerta = UnidadStubBuilder.construirStubMuerto(); | ||
NoHacerNada comando = ConstructorDeEscenarios.escenarioParaNoHacerNada(unidadMuerta); | ||
comando.ejecutarComando(); | ||
assertThat(unidadMuerta.invocoDecir(), is(false)); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.