88 lines
3.3 KiB
Java
88 lines
3.3 KiB
Java
import de.deversmann.BlackJackSpiel;
|
|
import de.deversmann.Karte;
|
|
import de.deversmann.Kartenstapel;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.mockito.Mock;
|
|
import org.mockito.MockitoAnnotations;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
import static org.mockito.Mockito.when;
|
|
|
|
class BlackJackSpielTest {
|
|
|
|
@Mock
|
|
private Kartenstapel mockStapel;
|
|
|
|
@BeforeEach
|
|
void setUp() {
|
|
MockitoAnnotations.openMocks(this);
|
|
}
|
|
|
|
@Test
|
|
void testGetHandGibtKorrekteHandZurueck() {
|
|
// Konfigurieren des Mocks, um spezifische Karten zurückzugeben
|
|
when(mockStapel.zieheKarte())
|
|
.thenReturn(new Karte("Herz", "10"))
|
|
.thenReturn(new Karte("Karo", "Ass"));
|
|
|
|
// Initialisieren des Spiels mit dem gemockten Kartenstapel
|
|
BlackJackSpiel spiel = new BlackJackSpiel(mockStapel);
|
|
|
|
// Überprüfen, ob die Hand des Spielers die erwarteten Karten enthält
|
|
assertEquals(2, spiel.getHand().size());
|
|
assertEquals("Herz", spiel.getHand().get(0).farbe());
|
|
assertEquals("10", spiel.getHand().get(0).wert());
|
|
assertEquals("Karo", spiel.getHand().get(1).farbe());
|
|
assertEquals("Ass", spiel.getHand().get(1).wert());
|
|
}
|
|
@Test
|
|
void testGetHandGibtKorrekteHandMit3KartenZurueck() {
|
|
// Konfigurieren des Mocks, um spezifische Karten zurückzugeben
|
|
when(mockStapel.zieheKarte())
|
|
.thenReturn(new Karte("Herz", "9"))
|
|
.thenReturn(new Karte("Karo", "Ass"))
|
|
.thenReturn(new Karte("Pik", "Ass"));
|
|
|
|
// Initialisieren des Spiels mit dem gemockten Kartenstapel
|
|
BlackJackSpiel spiel = new BlackJackSpiel(mockStapel);
|
|
spiel.zieheWeitereKarte();
|
|
|
|
// Überprüfen, ob die Hand des Spielers die erwarteten Karten enthält
|
|
assertEquals(3, spiel.getHand().size());
|
|
assertEquals("Herz", spiel.getHand().get(0).farbe());
|
|
assertEquals("9", spiel.getHand().get(0).wert());
|
|
assertEquals("Karo", spiel.getHand().get(1).farbe());
|
|
assertEquals("Ass", spiel.getHand().get(1).wert());
|
|
assertEquals("Pik", spiel.getHand().get(2).farbe());
|
|
assertEquals("Ass", spiel.getHand().get(2).wert());
|
|
assertEquals(21, spiel.getPunkte());
|
|
}
|
|
|
|
@Test
|
|
void testBlackjackMitZweiKarten() {
|
|
when(mockStapel.zieheKarte()).thenReturn(new Karte("Herz", "Ass"), new Karte("Pik", "König"));
|
|
BlackJackSpiel spiel = new BlackJackSpiel(mockStapel);
|
|
assertEquals(21, spiel.getPunkte());
|
|
}
|
|
|
|
@Test
|
|
void testUeber21MitMehrerenKarten() {
|
|
when(mockStapel.zieheKarte())
|
|
.thenReturn(new Karte("Herz", "10"), new Karte("Pik", "8"), new Karte("Karo", "4"));
|
|
BlackJackSpiel spiel = new BlackJackSpiel(mockStapel);
|
|
spiel.zieheWeitereKarte(); // Zieht die dritte Karte
|
|
assertTrue(spiel.getPunkte() > 21);
|
|
}
|
|
|
|
@Test
|
|
void testAssWertAnpassung() {
|
|
when(mockStapel.zieheKarte())
|
|
.thenReturn(new Karte("Herz", "Ass"), new Karte("Pik", "9"), new Karte("Karo", "Ass"));
|
|
BlackJackSpiel spiel = new BlackJackSpiel(mockStapel);
|
|
spiel.zieheWeitereKarte(); // Zieht die dritte Karte
|
|
assertEquals(21, spiel.getPunkte());
|
|
}
|
|
}
|