package games.blackjack;
import static org.junit.Assert.*;
import game.Card;
import game.Deck;
import games.blackjack.observer.CardObserver;
import org.junit.Before;
import org.junit.Test;
public class TestBJTable
{
@Before
public void resetDeck()
{
Deck.getInstance().reset();
}
@Test
public void Test_Initialize()
{
BlackJackTable bj = new BlackJackTable();
//Test that deck is built correctly
for(int i=0;i<52;i++)
{
assertEquals(Deck.getInstance().getCard(i), bj.getDeck().getCard(i));
}
//Test player is user with 100 currency
assertEquals(100, bj.getPlayer().getCurrency());
//Test player is user with initial bet of 25
assertEquals(25, bj.getPlayer().getBet());
//Test Dealer's AI is not null on initialization
assertNotNull(bj.getDealer().getDiff());
}
@Test
public void Test_Winner()
{
BlackJackTable bj = new BlackJackTable();
//Choose 3 cards
Card c01 = bj.getDeck().getCard(1);
Card c02 = bj.getDeck().getCard(2);
Card c03 = bj.getDeck().getCard(4);
//Test with each player having 1 card player wins
bj.getDealer().getHand().add(c01);
bj.getPlayer().getHand().add(c02);
assertEquals(1,bj.calculateWinner());
//Test with dealer getting 1 more card and winning
bj.getDealer().getHand().add(c03);
assertEquals(0,bj.calculateWinner());
}
@Test
public void Test_Observer()
{
BlackJackTable bj = new BlackJackTable();
//Test no observers
assertEquals(0,bj.getObservers().size());
//Test add observer
bj.registerObserver(new MockObserver());
assertEquals(1,bj.getObservers().size());
}
}
class MockObserver implements CardObserver
{
@Override
public void updateDealer(Deck d)
{
// TODO Auto-generated method stub
}
}