Add: Controller \n Updated:GameTest \n Fix:Game

This commit is contained in:
rubenpirreram
2026-04-12 19:51:16 +02:00
parent ec7ee064e2
commit 6763f7e630
4 changed files with 146 additions and 41 deletions
@@ -1,13 +1,15 @@
package it.polimi.ingsw.gc14.Model;
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character;
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
import it.polimi.ingsw.gc14.Model.GamePackage.GameStages;
import org.junit.jupiter.api.RepeatedTest;
import org.junit.jupiter.api.Test;
import org.junit.platform.commons.annotation.Testable;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import java.util.*;
import static org.junit.jupiter.api.Assertions.*;
@@ -22,12 +24,33 @@ class GameTest {
@Test
void getUpperListTribeCards() {
int nPlayers = 3;
Game game=new Game(nPlayers);
assertEquals(nPlayers+4 ,game.getUpperListTribeCards().size());
}
@Test
void getUpperListBuildingCards() {
int nPlayers = 3;
Game game=new Game(nPlayers);
assertEquals(2 ,game.getUpperListBuilding().size());
}
@Test
void getCurrentState() {
void getLowerListBuildingCards() {
int nPlayers = 3;
Game game=new Game(nPlayers);
assertEquals(0 ,game.getLowerListBuilding().size());
}
@Test
void getLowerListTribeCards() {
int nPlayers = 3;
Game game=new Game(nPlayers);
assertEquals(nPlayers+1 ,game.getLowerListTribeCards().size());
}
@Test
void getPlayerByIndex() {
}
@@ -66,7 +89,7 @@ class GameTest {
}
@Test
void drawingTribeCardByIndex() {
void drawingByIndex() {
Game game=new Game(3);
Player p1=new Player("p1");
Player p2=new Player("p2");
@@ -78,8 +101,6 @@ class GameTest {
assertFalse(game.addPlayer(p2));
assertTrue(game.addPlayer(p3));
Queue<Player>players=new LinkedList<>();
for(int i=0;i<3;i++) {
players.add( game.getCurrentState().getCurrentPlayer());
@@ -98,33 +119,65 @@ class GameTest {
temp_player=players.poll();
assertEquals(temp_player,game.getCurrentState().getCurrentPlayer());
int nCards=game.getUpperListTribeCards().size();
int countCards=0;
HashMap<CharacterType,Integer>nCardsByType=new HashMap<CharacterType, Integer>();
Arrays.stream(CharacterType.values()).forEach(type->nCardsByType.put(type,0));
while(game.getCurrentState().getNUpper()>1) {
cards=game.getUpperListTribeCards();
index=cards.indexOf(cards.stream().filter(x->!x.IsEventCard()).findFirst().get());
TribeCard temp_card=cards.stream().filter(x->!x.IsEventCard()).findFirst().get();
index=cards.indexOf(temp_card);
assertEquals(nCards-countCards,game.getUpperListTribeCards().size()-countCards);
drawTribeTest(nCardsByType,nCards,countCards,temp_card,temp_player,game);
assertTrue(game.DrawUpperTribeCardByIndex(temp_player,index));
countCards++;
}
cards=game.getUpperListTribeCards();
index=cards.indexOf(cards.stream().filter(TribeCard::IsEventCard).findFirst().get());
assertFalse(game.DrawUpperTribeCardByIndex(temp_player,index));
index=cards.indexOf(cards.stream().filter(x->!x.IsEventCard()).findFirst().get());
assertTrue(game.DrawUpperTribeCardByIndex(temp_player,index));
//index=cards.indexOf(cards.stream().filter(x->!x.IsEventCard()).findFirst().get());
//assertTrue(game.DrawUpperTribeCardByIndex(temp_player,index));
List<BuildingCard> buildings=game.getUpperListBuilding();
temp_player.addFood(10);
index=0;
assertTrue(game.DrawUpperBuildingCardByIndex(temp_player,index));
index=cards.indexOf(cards.stream().filter(x->!x.IsEventCard()).findFirst().get());
assertFalse(game.DrawUpperTribeCardByIndex(temp_player,index));
}
private void drawTribeTest(HashMap<CharacterType,Integer>nCardsByType,int nCards,int countCards,TribeCard temp_card,Player temp_player,Game game) {
switch (((Character)temp_card).getType()) {
case CharacterType.ARTIST:
assertEquals( nCardsByType.get(((Character)temp_card).getType())+1,temp_player.artists.size());
nCardsByType.merge(((Character)temp_card).getType(),1,Integer::sum);
break;
case CharacterType.INVENTOR:
assertEquals( nCardsByType.get(((Character)temp_card).getType())+1,temp_player.inventors.size());
nCardsByType.merge(((Character)temp_card).getType(),1,Integer::sum);
break;
case CharacterType.HUNTER:
assertEquals( nCardsByType.get(((Character)temp_card).getType())+1,temp_player.hunters.size());
nCardsByType.merge(((Character)temp_card).getType(),1,Integer::sum);
break;
case CharacterType.SHAMAN:
assertEquals( nCardsByType.get(((Character)temp_card).getType())+1,temp_player.shamans.size());
nCardsByType.merge(((Character)temp_card).getType(),1,Integer::sum);
break;
case CharacterType.BUILDER:
assertEquals( nCardsByType.get(((Character)temp_card).getType())+1,temp_player.builders.size());
nCardsByType.merge(((Character)temp_card).getType(),1,Integer::sum);
break;
case CharacterType.GATHERER:
assertEquals( nCardsByType.get(((Character)temp_card).getType())+1,temp_player.gatherers.size());
nCardsByType.merge(((Character)temp_card).getType(),1,Integer::sum);
break;
}
}
@Test
void drawUpperBuildingCardByIndex() {
}
@Test
void drawLowerBuildingCardByIndex() {
}
@Test
void pickOptionalTribeCard() {
}