Skip to content
This repository has been archived by the owner on Jan 13, 2024. It is now read-only.

Commit

Permalink
Add additional coverage to CardTest
Browse files Browse the repository at this point in the history
  • Loading branch information
StrangerCoug committed Sep 4, 2023
1 parent 43aca07 commit 31bc342
Showing 1 changed file with 75 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.greaterThan;
import static org.junit.jupiter.api.Assertions.assertThrows;

class CardTest {
private LinkedList<Card> cards;

@BeforeEach
void setCards() {
cards = new LinkedList<Card>();
cards = new LinkedList<>();
CardRank[] ranks = new CardRank[]{CardRank.TWO, CardRank.THREE, CardRank.FOUR, CardRank.FIVE, CardRank.SIX,
CardRank.SEVEN, CardRank.EIGHT, CardRank.NINE, CardRank.TEN, CardRank.JACK, CardRank.QUEEN, CardRank.KING,
CardRank.ACE, CardRank.JOKER, CardRank.JOKER};
Expand All @@ -35,6 +37,78 @@ void testGetPointValue() {
}
}

@Test
void testOutranksDifferentRank() {
Card card1 = new Card(CardRank.TWO, CardSuit.SPADES);
Card card2 = new Card(CardRank.ACE, CardSuit.SPADES);
assertThat(card2.outranks(card1), equalTo(true));
}

@Test
void testOutranksDifferentSuit() {
Card card1 = new Card(CardRank.ACE, CardSuit.CLUBS);
Card card2 = new Card(CardRank.ACE, CardSuit.SPADES);

// even though card2.compareTo(card1) > 0
assertThat(card2.outranks(card1), equalTo(false));
}

@Test
void testOutranksNull() {
Card card = new Card(CardRank.ACE, CardSuit.CLUBS);
assertThrows(NullPointerException.class, () -> card.outranks(null));
}

@Test
void testEqualsAndHashCode() {
Card card1 = new Card(CardRank.ACE, CardSuit.SPADES);
Card card2 = new Card(CardRank.ACE, CardSuit.SPADES);
assertThat(card1.equals(card2), equalTo(true));
assertThat(card1.hashCode(), equalTo(card2.hashCode()));
}

@Test
void testEqualityWithNull() {
Card card = new Card(CardRank.ACE, CardSuit.SPADES);
Object nullObject = null;
assertThat(card.equals(nullObject), equalTo(false));
}

@Test
void testEqualityWithInconvertibleType() {
Card card = new Card(CardRank.ACE, CardSuit.SPADES);
Dice dice = new Dice();
assertThat(card.equals(dice), equalTo(false));
}

@Test
void testCompareToSameCard() {
Card card1 = new Card(CardRank.ACE, CardSuit.SPADES);
Card card2 = new Card(CardRank.ACE, CardSuit.SPADES);
assertThat(card1.compareTo(card2), equalTo(0));
}

@Test
void testCompareToDifferentRank() {
Card card1 = new Card(CardRank.TWO, CardSuit.SPADES);
Card card2 = new Card(CardRank.ACE, CardSuit.SPADES);
assertThat(card2.compareTo(card1), greaterThan(0));
}


@Test
void testCompareToDifferentSuit() {
Card card1 = new Card(CardRank.ACE, CardSuit.CLUBS);
Card card2 = new Card(CardRank.ACE, CardSuit.SPADES);
assertThat(card2.compareTo(card1), greaterThan(0));
}

@Test
void testCompareToNull() {
Card card = new Card(CardRank.ACE, CardSuit.CLUBS);
assertThrows(NullPointerException.class, () -> card.compareTo(null));
}

@Test
void testToString() {
String[] expectedValues = new String[]{"Two of Clubs", "Three of Diamonds", "Four of Hearts", "Five of Spades",
Expand Down

0 comments on commit 31bc342

Please sign in to comment.