package server.cards; import org.junit.jupiter.api.Test; import java.util.List; import server.Era; import static org.junit.jupiter.api.Assertions.*; class CardDeckTest { //Load 2 cards from CSV to cardDeck @Test void loadOnlyCharacter(){ CardDeck cardDeck = new CardDeck(); cardDeck.setForNPlayer(getClass().getResourceAsStream("/files/cards.csv"), 4); assertEquals(2, cardDeck.getTribeDeck().size()); } //First create a new CardDeck filled with a 14 cards then he recreates said deck // with a different set of cards to emulate a new game @Test void doubleLoad(){ CardDeck cardDeck = new CardDeck(); //cardDeck.setForNPlayer("./src/test/resources/files/only_building_deck.csv", 4); cardDeck.setForNPlayer(getClass().getResourceAsStream("/files/only_building_deck.csv"), 4); assertEquals(0, cardDeck.getTribeDeck().size()); assertEquals(6, cardDeck.getBuildingDeck(Era.I).size()); assertEquals(7, cardDeck.getBuildingDeck(Era.II).size()); assertEquals(8, cardDeck.getBuildingDeck(Era.III).size()); //cardDeck.setForNPlayer("./src/test/resources/files/only_event_deck.csv", 4); cardDeck.setForNPlayer(getClass().getResourceAsStream("/files/only_event_deck.csv"), 4); assertEquals(3, cardDeck.getTribeDeck().size()); assertEquals(0, cardDeck.getBuildingDeck(Era.I).size()); assertEquals(0, cardDeck.getBuildingDeck(Era.II).size()); assertEquals(0, cardDeck.getBuildingDeck(Era.III).size()); } //Draw 5 cards from TribeDeck and 3 from BuildingDeck, then check if they are correctly // removed from cardDeck @Test void draw() { int tribeDraw = 5; int buildingDraw = 3; int drawnCards = tribeDraw + buildingDraw; CardDeck cardDeck = new CardDeck(); //cardDeck.setForNPlayer("./src/test/resources/files/test_deck.csv", 5); cardDeck.setForNPlayer(getClass().getResourceAsStream("/files/test_deck.csv"), 5); //int deckSize = cardDeck.getTribeDeck().size() + cardDeck.getBuildingDeck().size(); List cards = cardDeck.drawTribe(tribeDraw); assertEquals(tribeDraw, cards.size()); //List buildingCards = cardDeck.drawBuilding(buildingDraw); //assertEquals(buildingDraw, buildingCards.size()); //int newDeckSize = cardDeck.getTribeDeck().size() + cardDeck.getBuildingDeck().size(); //assertEquals(deckSize - drawnCards, newDeckSize); } //draw 5 cards from TribeDeck @Test void drawTribe() { CardDeck cardDeck = new CardDeck(); //cardDeck.setForNPlayer("./src/test/resources/files/test_deck.csv", 5); cardDeck.setForNPlayer(getClass().getResourceAsStream("/files/test_deck.csv"), 5); List cards = cardDeck.drawTribe(5); assertEquals(5, cards.size()); } //draw 3 cards from BuildingDeck @Test void drawBuilding() { CardDeck cardDeck = new CardDeck(); //cardDeck.setForNPlayer("./src/test/resources/files/test_deck.csv", 5); cardDeck.setForNPlayer(getClass().getResourceAsStream("/files/test_deck.csv"), 5); // List buildingCards = cardDeck.drawBuilding(3); // assertEquals(3, buildingCards.size()); } //Try to draw 5 cards from a deck of only 3, then he returns only the remaining //cards in the deck @Test void drawTooManyCards() { CardDeck cardDeck = new CardDeck(); //cardDeck.setForNPlayer("./src/test/resources/files/only_character_deck.csv", 5); cardDeck.setForNPlayer(getClass().getResourceAsStream("/files/only_character_deck.csv"), 5); List cards = cardDeck.drawTribe(5); assertEquals(3, cards.size()); } @Test void shuffledDeck() { CardDeck cardDeck = new CardDeck(); // cardDeck.setForNPlayer("./src/test/resources/files/test_deck.csv", 5); cardDeck.setForNPlayer(getClass().getResourceAsStream("/files/test_deck.csv"), 5); assertEquals(Era.I, cardDeck.drawTribe(1).getFirst().getEra()); assertEquals(Era.FINAL, cardDeck.drawTribe(100).getLast().getEra()); // assertEquals(Era.I, cardDeck.drawBuilding(1).getFirst().getEra()); // assertEquals(Era.III, cardDeck.drawBuilding(100).getLast().getEra()); } }