Add oving 4

This commit is contained in:
Andreas Omholt Olsen
2026-02-02 10:57:55 +01:00
parent 37b0f931ce
commit 7dd68c1ed8
41 changed files with 1702 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
package oving4.card;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class CardDeckTest {
private CardDeck cardDeck;
private static void checkDeck(CardDeck deck, String deckAsString) {
String[] toStrings = deckAsString.split(",");
assertEquals(toStrings.length, deck.getCardCount(),
"CardDeck does not have the correct size");
int i = 0;
for (String toString : toStrings) {
Card card = deck.getCard(i);
String cardString = String.valueOf(card.getSuit()) + card.getFace();
assertEquals(toString, cardString,
String.format("Card at position %d was incorrect. CardDeck should have been %s",
i + 1, toStrings));
i++;
}
}
@BeforeEach
public void setUp() {
cardDeck = new CardDeck(2);
}
@Test
@DisplayName("Check that CardDeck is initialized to S1,S2,H1,H2,D1,D2,C1,C2")
public void testConstructor() {
CardDeckTest.checkDeck(cardDeck, "S1,S2,H1,H2,D1,D2,C1,C2");
}
@Test
@DisplayName("Check that CardDeck is shuffled to S1,D1,S2,D2,H1,C1,H2,C2")
public void testShufflePerfectly() {
cardDeck.shufflePerfectly();
CardDeckTest.checkDeck(cardDeck, "S1,D1,S2,D2,H1,C1,H2,C2");
}
@Test
@DisplayName("Check that deal gives out the last three cards")
public void testDeal() {
CardHand hand = new CardHand();
cardDeck.deal(hand, 3);
CardDeckTest.checkDeck(cardDeck, "S1,S2,H1,H2,D1");
assertThrows(IllegalArgumentException.class, () -> {
cardDeck.deal(null, 1);
}, "Cannot deal to null");
}
}