package com.skraylabs.poker.model;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.MatcherAssert.assertThat;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class GameStateTest {

  @Before
  public void setUp() throws Exception {}

  @After
  public void tearDown() throws Exception {}

  @Test
  public void testConstructor() {
    // Exercise
    GameState game = new GameState();
    // Verify
    Board board = game.getBoard();
    Pocket[] pockets = game.getPockets();
    assertThat(board, is(nullValue()));
    assertThat(pockets, is(notNullValue()));
    assertThat(pockets.length, is(10));
    for (Pocket pocket : pockets) {
      assertThat(pocket, is(nullValue()));
    }
  }

}

@@ -341,56 +341,625 @@
 %0A%0A  
-@Before%0A  public void setUp() throws Exception %7B
+/**%0A   * Test fixture cards to use in test methods. There are no duplicates in this set.%0A   */%0A  Card card1;%0A  Card card2;%0A  Card card3;%0A  Card card4;%0A  Card card5;%0A%0A  /**%0A   * Set up shared test fixture.%0A   *%0A   * %3Cp%3EEstablishes some card values to make test methods predictable.%0A   *%0A   * @throws Exception shouldn't happen.%0A   */%0A  @Before%0A  public void setUp() throws Exception %7B%0A    card1 = new Card(Rank.Ace, Suit.Spades);%0A    card2 = new Card(Rank.Three, Suit.Clubs);%0A    card3 = new Card(Rank.Nine, Suit.Diamonds);%0A    card4 = new Card(Rank.Queen, Suit.Hearts);%0A    card5 = new Card(Rank.Five, Suit.Clubs);%0A  
 %7D%0A%0A 

add some Card objects to test fixture.