package belotetime.tests;
import static org.junit.Assert.*;
import java.util.ArrayList;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import belotetime.application.game.Card;
import belotetime.application.game.Game;
import belotetime.application.game.Pack;
import belotetime.application.game.Player;
import belotetime.application.game.Set;
public class TestSet
{
private Game game;
private Set set;
public TestSet()
{
ArrayList<Card> listCards = new ArrayList<>();
listCards.add(new Card("Sept", "Coeur", 0));
listCards.add(new Card("Huit", "Coeur", 0));
listCards.add(new Card("Neuf", "Coeur", 0));
listCards.add(new Card("Dix", "Coeur", 10));
listCards.add(new Card("Valet", "Coeur", 2));
listCards.add(new Card("Dame", "Coeur", 3));
listCards.add(new Card("Roi", "Coeur", 4));
listCards.add(new Card("As", "Coeur", 11));
listCards.add(new Card("Sept", "Tr�fle", 0));
listCards.add(new Card("Huit", "Tr�fle", 0));
listCards.add(new Card("Neuf", "Tr�fle", 0));
listCards.add(new Card("Dix", "Tr�fle", 10));
listCards.add(new Card("Valet", "Tr�fle", 2));
listCards.add(new Card("Dame", "Tr�fle", 3));
listCards.add(new Card("Roi", "Tr�fle", 4));
listCards.add(new Card("As", "Tr�fle", 11));
listCards.add(new Card("Sept", "Carreau", 0));
listCards.add(new Card("Huit", "Carreau", 0));
listCards.add(new Card("Neuf", "Carreau", 0));
listCards.add(new Card("Dix", "Carreau", 10));
listCards.add(new Card("Valet", "Carreau", 2));
listCards.add(new Card("Dame", "Carreau", 3));
listCards.add(new Card("Roi", "Carreau", 4));
listCards.add(new Card("As", "Carreau", 11));
listCards.add(new Card("Sept", "Pique", 0));
listCards.add(new Card("Huit", "Pique", 0));
listCards.add(new Card("Neuf", "Pique", 0));
listCards.add(new Card("Dix", "Pique", 10));
listCards.add(new Card("Valet", "Pique", 2));
listCards.add(new Card("Dame", "Pique", 3));
listCards.add(new Card("Roi", "Pique", 4));
listCards.add(new Card("As", "Pique", 11));
game = new Game(new Pack(listCards));
game.getPlayers().add(new Player("Joueur 1"));
game.getPlayers().add(new Player("Joueur 2"));
game.getPlayers().add(new Player("Joueur 3"));
game.getPlayers().add(new Player("Joueur 4"));
game.setCurrentSet(new Set(game, game.getPlayers().get(3)));
set = game.getCurrentSet();
}
@Before
public void testBefore()
{
set.defineStarter();
}
@Test
public void testDefineStarter()
{
for(int i = 0; i < 3; i++)
{
set.setDealer(game.getPlayers().get(i));
set.defineStarter();
assertTrue(set.getStarter() == game.getPlayers().get(i + 1));
}
set.setDealer(game.getPlayers().get(3));
set.defineStarter();
assertTrue(set.getStarter() == game.getPlayers().get(0));
}
@Test
public void testFirstDeal()
{
set.firstDeal(Set.TWO_CARDS);
for(Player p : game.getPlayers())
{
assertTrue(p.getHand().getCards().size() == 5);
}
assertTrue(game.getPacket().getCards().size() == 12);
}
@Ignore
public void testSecondDeal()
{
game.getPacket().shuffle();
game.getPacket().cut();
set.firstDeal(Set.THREE_CARDS);
set.takeTrump(game.getPlayers().get(1));
System.out.println("Preneur : " + set.getTaker().getLogin());
System.out.println("Atout : " + set.getTrump());
System.out.println("----------------Mains des joueurs-------------");
set.secondDeal();
assertTrue(game.getPacket().getCards().size() == 0);
for(Player p : game.getPlayers())
{
assertTrue(p.getHand().getCards().size() == 8);
System.out.println(p.getLogin());
displayPack(p.getHand());
}
}
@Test
public void testAlterTrump()
{
game.getPacket().shuffle();
game.getPacket().cut();
set.firstDeal(Set.THREE_CARDS);
set.takeTrump(game.getPlayers().get(1));
set.secondDeal();
set.setTrump("Tr�fle");
set.alterTrumpValue();
int sum = 0;
for(Player p : game.getPlayers())
{
sum += p.getHand().getPoints();
for(Card c : p.getHand().getCards())
{
if(c.getColor().equals(set.getTrump()))
{
if(c.getName().equals("Valet"))
assertTrue(c.getValue() == 20);
if(c.getName().equals("Neuf"))
assertTrue(c.getValue() == 14);
}
}
}
assertTrue(sum == 152);
}
@Test
public void testTrickWin()
{
game.getPacket().shuffle();
game.getPacket().cut();
set.firstDeal(Set.THREE_CARDS);
set.takeTrump(game.getPlayers().get(3));
set.secondDeal();
set.setTrump("Tr�fle");
set.alterTrumpValue();
System.out.println("Main des joueurs\n ---------------");
for(Player p : game.getPlayers())
{
System.out.println(p.getLogin() + "\n----------------");
displayPack(p.getHand());
}
for(Player p : game.getPlayers())
{
game.getCarpet().getCards().add(p.getHand().deal());
}
System.out.println("Pli jou� \n -------------");
displayPack(game.getCarpet());
System.out.println(Card.max(game.getCarpet().getCards().get(0),game.getCarpet().getCards().get(1)));
set.trickWin();
if(game.getT1().getTricks().getCards().size() != 0)
{
System.out.println("Equipe 1\n ------------");
displayPack(game.getT1().getTricks());
}
else
{
System.out.println("Equipe 2\n ------------");
displayPack(game.getT2().getTricks());
}
System.out.println(game.getPacket().getCards().size());
}
@After
public void testAfter()
{
}
public void displayPack(Pack p)
{
for(Card c : p.getCards())
{
System.out.println(c.getName() + " de " + c.getColor() + " atout : " + c.isTrump());
}
}
}