package testes;
import static org.junit.Assert.*;
import java.util.*;
import org.junit.*;
import jogo.*;
public class TestesDamas {
JogoDeDamas jogoDeDamas;
@Before public void criar(){
jogoDeDamas = new JogoDeDamas();
jogoDeDamas.prepararJogo();
}
@Test public void jogoÉPraticadoEntreDoisParceiros() {
assertNotNull(jogoDeDamas.obterJogadorClaras());
assertNotNull(jogoDeDamas.obterJogadorEscuras());
assertEquals(jogoDeDamas.obterJogadorClaras(), jogoDeDamas.obterAdversarioEscuras());
assertEquals(jogoDeDamas.obterJogadorEscuras(), jogoDeDamas.obterAdversarioClaras());
}
@Test public void tabuleiroPossuiCasasAlternadas(){
assertNull(jogoDeDamas.obterCasasBrancas());
//TODO
}
@Test public void existemNoMaximo12PeçasDeCadaCor(){
assertTrue(13 > jogoDeDamas.obterNumeroDePeçasEscuras());
assertTrue(13 > jogoDeDamas.obterNumeroDePeçasClaras());
}
@Test public void definirPeçasDeCadaJogador(){
//TODO
}
@Test public void primeiroTurnoÉDoJogadorClaras() {
Jogador jogadorClaras = jogoDeDamas.obterJogadorClaras();
assertEquals(jogadorClaras, jogoDeDamas.obterJogadorDoTurno());
}
/*
*Testes nao implementados.
*@Test public void peçasComeçamNasRespectivasTresPrimeirasFileiras(){}
*@Test public void naoHáPeçasNasCasasBrancas(){}
*@Test public void peçasSeMovimentamApenasNaDiagonal(){}
*@Test public void pedrasAndamApenasUmaCasaParaFrente(){}
*@Test public void damasAndamLivremente(){}
*@Test public void peçaCapturaPeçaInimiga(){}
*@Test public void peçaNaoCapturaPeçaAmiga(){}
*@Test public void capturaÉObrigatória(){}
*@Test public void pedraViraDamaSePararEmCasasEspecíficas(){}
*/
@Test public void acabarPeçasÉCondiçãoDeVitória(){
if(0 == jogoDeDamas.obterNumeroDePeçasEscuras()){
assertTrue(jogoDeDamas.jogadorClaroGanhou());
}
else {
jogoDeDamas.proximoTurno();
}
if(0 == jogoDeDamas.obterNumeroDePeçasClaras()){
assertTrue(jogoDeDamas.jogadorEscuroGanhou());
}
else {
jogoDeDamas.proximoTurno();
}
}
@Test public void haverNoMaximoDuasPeçasDeCadaCorÉCondiçãoDeEmpate(){
if(3 > jogoDeDamas.obterNumeroDePeçasClaras()){
if(3 > jogoDeDamas.obterNumeroDePeçasEscuras()){
jogoDeDamas.iniciarContagemDeTurnosParaEmpate();
}
}
if(5 == jogoDeDamas.obterTurnosParaEmpate()){
assertTrue(jogoDeDamas.jogoEmpatou());
}
}
}