package hw03;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

class PlayerTest {
	Player testPlayer;

	@BeforeEach
	void setUp() throws Exception {
		testPlayer=new Player("Joe Player");
		testPlayer.addCard(new Card("Hearts","10",10));
	}

	@Test
	void testAddCard() { 
		testPlayer.addCard(new Card("Hearts","J",11));
		Card c1=testPlayer.getCard();
		Card c2=testPlayer.getCard();
		Card c3=testPlayer.getCard();
		
		assertEquals("10 H",c1.toString(),"Player addCard, first card is the one that was already in the hand.");
		assertEquals("J H",c2.toString(),"Player addCard, second card is the added card");
		assertNull(c3,"Player addCard third card is null");
	}

	@Test
	void testGetCard() { 
		assertEquals("10 H",testPlayer.getCard().toString(),"Player getCard, retrieve the 10 of hearts."); 
	}

	@Test
	void testIsWinner() { 
		assertFalse(testPlayer.isWinner(),"Test Player is not a winner yet."); 
	}

	@Test
	void testHandSize() { 
		assertEquals(1,testPlayer.handSize(),"Test Player has one card."); 
	}

	@Test
	void testToString() { 
		assertEquals("Joe Player",testPlayer.toString()); 
	}

}
