Fix: "toString" Testing For Player.java.

This commit is contained in:
GabrieleRadice
2026-04-25 20:17:05 +02:00
parent 5caed61044
commit d2f3a549b3
2 changed files with 49 additions and 22 deletions
@@ -3,10 +3,14 @@ package it.polimi.ingsw.gc14.Model;
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.*; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.*;
import it.polimi.ingsw.gc14.View.TUI.AsciiTable;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import static it.polimi.ingsw.gc14.View.TUI.BorderStyle.*;
/** /**
* Default Player class; contains all identifiers and methods needed. * Default Player class; contains all identifiers and methods needed.
@@ -224,21 +228,47 @@ public class Player implements Serializable {
// endregion constructors // endregion constructors
// region Functions // region Functions
// TODO tostring usr + food + prestige \n tab foreach(characters.cards + spazio)
@Override @Override
public String toString() { public String toString() {
String toPrint = ""; var table = new AsciiTable(UNICODE, 1);
toPrint = this.getUserName()
+ ":\n\tFood: " + this.getFoodValue() table.addHeader(this.getUserName());
+ "\n\tPrestige: " + this.getPrestigeValue() table.addRow("RESOURCES:");
+ "\n\tArtists: " + this.artists.toString() table.addRow("Food: " + this.getFoodValue());
+ "\n\tBuilders: " + this.builders.toString() table.addSeparator();
+ "\n\tGatherers: " + this.gatherers.toString() table.addRow("Prestige: " + this.getPrestigeValue());
+ "\n\tShamans: " + this.shamans.toString()
+ "\n\tHunters: " + this.hunters.toString()
+ "\n\tBuildings: " table.addRow("CHARACTERS:");
+ this.buildingCards.toString(); if(!this.artists.isEmpty()){
return toPrint; table.addRow("Artists: " + this.artists.toString());
}
if(!this.builders.isEmpty()){
table.addRow("Builders: " + this.builders.toString());
}
if(!this.gatherers.isEmpty()){
table.addRow("Gatherers: " + this.gatherers.toString());
}
if(!this.shamans.isEmpty()){
table.addRow("Shamans: " + this.shamans.toString());
}
if(!this.hunters.isEmpty()){
table.addRow("Hunters: " + this.hunters.toString());
}
//TODO fix ?
table.addSeparator();
table.addRow("BUILDING CARDS:");
if(!this.buildingCards.isEmpty()){
table.addRow("Buildings: " + this.buildingCards.toString());
}
return table.build();
} }
// endregion functions // endregion functions
} }
@@ -200,17 +200,14 @@ class PlayerTest {
p.addPrestige(15); p.addPrestige(15);
p.addFood(7); p.addFood(7);
p.artists.add(new Artist(1)); p.artists.add(new Artist(1));
p.artists.add(new Artist(1));
p.artists.add(new Artist(1));
p.artists.add(new Artist(1));
p.artists.add(new Artist(1));
p.artists.add(new Artist(1));
p.artists.add(new Artist(2)); p.artists.add(new Artist(2));
p.buildingCards.add(new BuildingCard(2, 1,2, 5)); p.buildingCards.add(new BuildingCard(2, 1,2, 5));
p.buildingCards.add(new BuildingCard(2, 2,3, 6)); p.buildingCards.add(new BuildingCard(2, 2,3, 6));
assertEquals("test_usr:"+ "\n\t" + System.out.println(p.toString());
"Food: 7" + "\n\t" +
"Prestige: 15" + "\n\t" +
"Artists: [Era:1 ARTIST, Era:2 ARTIST]" + "\n\t" + "Builders: []" + "\n\t" +
"Gatherers: []" + "\n\t" +
"Shamans: []" + "\n\t" +
"Hunters: []" + "\n\t" +
"Buildings: [Era:1 Price:2 Prestige:5, Era:2 Price:3 Prestige:6]",
p.toString());
} }
} }