package testes;
import jogo.JogadorDeDama;
import org.junit.Before;
import org.junit.Test;
import jogo.JogoDeDamas;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertNotSame;
import static jogo.ResultadoDeAções.*;
import static jogo.CoresDasPeças.*;
public class TesteDoJogoDeDamas {
//cadaJogadorMovePeçasDeApenasUmaCor
//asCasasSãoAlternadamenteClarasEEscuras
//noTabuleiroDeDamasExiste64casas
//aCasaAngularàEsquerdaDeCadaParceiroÉEscura
//aPedramMovimentaseEmDiagonalSobreOTabuleiro
//aPedraAndaUmaCasaDCadaVez
//asCasasBrancasNãoPodemSerMarcadas
//osDoisJogadoresDaPartidaSãoDistintos
JogadorDeDama JogadorUm;
JogadorDeDama JogadorDois;
JogoDeDamas JogoDeTeste;
@Before public void inicio(){
JogadorUm = new JogadorDeDama("JogadorUm");
JogadorDois = new JogadorDeDama("JogadorDois");
JogoDeTeste = new JogoDeDamas(JogadorUm, JogadorDois);
}
@Test public void noTabuleiroDeDamasExiste64casas() {
assertTrue(64 == JogoDeTeste.contarCasasDoTabuleiro());
}
@Test public void osDoisJogadoresDaPartidaSãoDistintos() {
assertNotSame(JogoDeTeste.obterJogadorUm(), JogadorDois.toString());
}
@Test public void cadaJogadorMovePeçasDeApenasUmaCor() {
assertEquals(ERRO, JogadorUm.marcarPeçaParaMover(5, 1));
assertEquals(ERRO, JogadorDois.marcarPeçaParaMover(3, 2));
}
@Test public void asCasasSãoAlternadamenteClarasEEscuras() {
assertTrue(BRANCA == JogoDeTeste.obterCorDaCasaDoTabuleiro(1, 1));
assertTrue(PRETA == JogoDeTeste.obterCorDaCasaDoTabuleiro(1, 2));
assertTrue(BRANCA == JogoDeTeste.obterCorDaCasaDoTabuleiro(2, 2));
}
@Test public void aCasaAngularàEsquerdaDeCadaParceiroÉEscura() {
assertEquals(PRETA, JogoDeTeste.obterCorDaCasaDoTabuleiro(8, 1));
}
@Test public void aPedramMovimentaseEmDiagonalSobreOTabuleiro() {
assertEquals(SUCESSO, JogadorUm.marcarPeçaParaMover(3, 8));
assertEquals(SUCESSO, JogadorUm.moverPeçaMarcadaPara(4, 7));
assertEquals(SUCESSO, JogadorDois.marcarPeçaParaMover(6, 1));
assertEquals(ERRO, JogadorDois.moverPeçaMarcadaPara(5, 1));
}
@Test public void aPedraAndaUmaCasaDCadaVez() {
assertEquals(SUCESSO, JogadorUm.marcarPeçaParaMover(3, 8));
assertEquals(ERRO, JogadorUm.moverPeçaMarcadaPara(5, 6));
assertEquals(SUCESSO, JogadorDois.marcarPeçaParaMover(6, 1));
assertEquals(ERRO, JogadorDois.moverPeçaMarcadaPara(4, 3));
}
@Test public void asCasasBrancasNãoPodemSerMarcadas(){
assertEquals(ERRO, JogadorUm.marcarPeçaParaMover(1, 3));
}
}