### Question:
Game { public void beginTurn() { activePlayer.giveManaSlot(); activePlayer.refillMana(); activePlayer.drawCard(); logger.info(activePlayer + " plays turn..."); } Game(Player player1, Player player2);   Game(Player player1, Player player2, StartingPlayerChooser startingPlayerChooser); void beginTurn(); void endTurn(); Player getWinner(); void run(); Player getActivePlayer(); Player getOpponentPlayer(); static void main(String... args);  }### Answer:
@Test public void activePlayerShouldReceiveOneManaSlotOnBeginningOfTurn() { Player player1 = aPlayer().withManaSlots(0).build(); game = aGame().withActivePlayer(player1).build(); game.beginTurn(); assertThat(player1.getManaSlots(), is(equalTo(1))); }
@Test public void activePlayerShouldRefillManaOnBeginningOfTurn() { Player player1 = aPlayer().withManaSlots(3).withMana(0).build(); game = aGame().withActivePlayer(player1).build(); game.beginTurn(); assertThat(player1.getMana(), is(equalTo(player1.getManaSlots()))); }
@Test public void activePlayerShouldDrawCardOnBeginningOfTurn() { Player player1 = anyPlayer(); game = aGame().withActivePlayer(player1).build(); int numberOfInitialHandCards = player1.getNumberOfHandCards(); game.beginTurn(); assertThat(player1.getNumberOfHandCards(), is(equalTo(numberOfInitialHandCards + 1))); }