### Question:
Player { public boolean canPlayCards() { return hand.stream().filter(card -> card.getValue() <= mana).count() > 0; } Player(String name, Strategy strategy);   Player(String name, Strategy strategy, int health, int manaSlots, int mana, List<Card> deck, List<Card> hand); int getHealth(); int getMana(); int getNumberOfDeckCardsWithManaCost(int manaCost); int getNumberOfDeckCards(); Integer getNumberOfHandCardsWithManaCost(int manaCost); int getNumberOfHandCards(); void drawCard(); int getManaSlots(); void giveManaSlot(); void refillMana(); void drawStartingHand(); boolean canPlayCards(); void playCard(Player opponent); @Override String toString();  }### Answer:
@Test public void playerWithSufficientManaCanPlayCards() { player = aPlayer().withMana(2).withCardsInHand(3, 2).build(); assertThat(player.canPlayCards(), is(true)); }
@Test public void playerWithInsufficientManaCannotPlayCards() { player = aPlayer().withMana(1).withCardsInHand(3, 2).build(); assertThat(player.canPlayCards(), is(false)); }
@Test public void playerWithEmptyHandCannotPlayCards() { player = aPlayer().withNoCardsInHand().build(); assertThat(player.canPlayCards(), is(false)); }