Nur die besten Spiele ;3
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
1.7 KiB

2 years ago
2 years ago
  1. package solitaer;
  2. import static org.junit.jupiter.api.Assertions.*;
  3. import java.util.stream.Stream;
  4. import org.junit.jupiter.api.Test;
  5. import org.junit.jupiter.params.ParameterizedTest;
  6. import org.junit.jupiter.params.provider.Arguments;
  7. import org.junit.jupiter.params.provider.MethodSource;
  8. class CardDeckTest {
  9. private CardDeck deck = new CardDeck();
  10. @Test
  11. void testCardDeckSize() {
  12. int result = deck.getDeck().size();
  13. assertEquals(52, result, "Kartendeck muss genau 52 Carden haben") ;
  14. }
  15. @ParameterizedTest
  16. @MethodSource("testSymbole")
  17. //Jedes Symbol muss einmal vorhand sein
  18. void testCardDeckSymbole(String _msg, Symbol _sym) {
  19. boolean result = false;
  20. for(int allCardZähler = 0; allCardZähler<deck.getDeck().size(); allCardZähler++) {
  21. if(deck.getDeck().get(allCardZähler).getSymbol() == _sym) {
  22. result = true;
  23. break;
  24. }
  25. }
  26. assertTrue(result, _msg);
  27. }
  28. private static Stream<Arguments> testSymbole(){
  29. return Stream.of(
  30. Arguments.of("Herz", Symbol.Herz),
  31. Arguments.of("Karo", Symbol.Karo),
  32. Arguments.of("Pik", Symbol.Pik),
  33. Arguments.of("Kreuz",Symbol.Kreuz)
  34. );
  35. }
  36. @Test
  37. //Jedes Symbol muss 13 mal vorrhanden sein
  38. void testCardDeckNumber() {
  39. boolean result = true;
  40. result = CheckAllCards(Symbol.Herz) &&
  41. CheckAllCards(Symbol.Karo) &&
  42. CheckAllCards(Symbol.Kreuz) &&
  43. CheckAllCards(Symbol.Pik);
  44. assertTrue(result);
  45. }
  46. private boolean CheckAllCards(Symbol _sym) {
  47. boolean result = true;
  48. for(int nrZähler =1; nrZähler<=13; nrZähler++) {
  49. if(deck.getDeck().contains(new Card(nrZähler, _sym, false))== false) {
  50. result = false;
  51. break;
  52. }
  53. }
  54. return result;
  55. }
  56. }