mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-25 12:25:10 -08:00
Java Records automatically acquire an implementation of equals and hashCode that accounts for their components. They also have read accessors for their components (card.suit() to get the suit).
33 lines
960 B
Java
33 lines
960 B
Java
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertAll;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
public class DeckTest {
|
|
|
|
@Test
|
|
void testInit() {
|
|
// When
|
|
Deck deck = new Deck((cards) -> cards);
|
|
deck.reshuffle();
|
|
|
|
// Then
|
|
long nCards = deck.size();
|
|
long nSuits = deck.getCards().stream()
|
|
.map(card -> card.suit())
|
|
.distinct()
|
|
.count();
|
|
long nValues = deck.getCards().stream()
|
|
.map(card -> card.value())
|
|
.distinct()
|
|
.count();
|
|
|
|
assertAll("deck",
|
|
() -> assertEquals(52, nCards, "Expected 52 cards in a deck, but got " + nCards),
|
|
() -> assertEquals(4, nSuits, "Expected 4 suits, but got " + nSuits),
|
|
() -> assertEquals(13, nValues, "Expected 13 values, but got " + nValues)
|
|
);
|
|
|
|
}
|
|
|
|
}
|