From 4ffe4c53529a86faf5438e2a8c743f452ff5928e Mon Sep 17 00:00:00 2001 From: aleandro Date: Wed, 10 Jun 2026 22:15:32 +0200 Subject: [PATCH] Fix: complete refactor of TUI Tests updated --- mvnw | 0 .../polimi/ingsw/gc14/ClientLauncherTUI.java | 64 +++++++++++++- .../Cards/Building/Effects/Building1.java | 7 +- .../Cards/Building/Effects/Building11.java | 7 +- .../ingsw/gc14/Model/Cards/BuildingCard.java | 14 ++-- .../ingsw/gc14/Model/Orders/Order2.java | 6 +- .../ingsw/gc14/Model/Orders/Order3.java | 5 +- .../ingsw/gc14/Model/Orders/Order4.java | 5 +- .../ingsw/gc14/Model/Orders/Order5.java | 5 +- .../it/polimi/ingsw/gc14/Model/Player.java | 17 ++-- .../java/it/polimi/ingsw/gc14/Model/Slot.java | 17 ++-- .../ingsw/gc14/View/TUI/AsciiTable.java | 1 + .../it/polimi/ingsw/gc14/View/TUI/TUI.java | 83 ++++++++----------- .../Building/Effects/Building11Test.java | 12 +-- .../Cards/Building/Effects/Building1Test.java | 12 +-- .../gc14/Model/Cards/BuildingCardTest.java | 4 +- .../TribeCards/Characters/ArtistTest.java | 2 +- .../TribeCards/Characters/BuilderTest.java | 8 +- .../TribeCards/Characters/GathererTest.java | 2 +- .../TribeCards/Characters/HunterTest.java | 4 +- .../TribeCards/Characters/InventorTest.java | 4 +- .../TribeCards/Characters/ShamanTest.java | 4 +- .../TribeCards/Events/CavePaintingsTest.java | 4 +- .../Cards/TribeCards/Events/HuntTest.java | 4 +- .../TribeCards/Events/ShamanicRitualTest.java | 4 +- .../TribeCards/Events/SustenanceTest.java | 4 +- .../ingsw/gc14/Model/Orders/Order2Test.java | 16 ++-- .../ingsw/gc14/Model/Orders/Order3Test.java | 16 ++-- .../ingsw/gc14/Model/Orders/Order4Test.java | 24 +++--- .../ingsw/gc14/Model/Orders/Order5Test.java | 24 +++--- .../polimi/ingsw/gc14/Model/PlayerTest.java | 50 +++++------ 31 files changed, 242 insertions(+), 187 deletions(-) mode change 100644 => 100755 mvnw diff --git a/mvnw b/mvnw old mode 100644 new mode 100755 diff --git a/src/main/java/it/polimi/ingsw/gc14/ClientLauncherTUI.java b/src/main/java/it/polimi/ingsw/gc14/ClientLauncherTUI.java index 80656cc..37d76f9 100644 --- a/src/main/java/it/polimi/ingsw/gc14/ClientLauncherTUI.java +++ b/src/main/java/it/polimi/ingsw/gc14/ClientLauncherTUI.java @@ -28,8 +28,57 @@ public class ClientLauncherTUI { private TUI view; private Terminal terminal; + private LineReader gameReader; private String currentUsername = ""; + private static final String BUILDING_DETAILS = + "ID 0 — Each time you complete a set of 6 different Character cards, take 5 \uD83C\uDF56. (Sets completed before acquiring don't count.)\n" + + "ID 1 — During the Sustenance Event, pay 1 less \uD83C\uDF56 for each Artist/Inventor/Gatherer in your tribe.\n" + + "ID 2 — During the Shamanic Ritual Event, you do not lose Prestige Points if you have fewer ⭐ than all other players.\n" + + "ID 3 — When you move your Totem to a Food-bonus space, take 1 extra \uD83C\uDF56. If placed last, pay 1 \uD83C\uDF56 normally (no effect).\n" + + "ID 4 — Each time you obtain a pair of identical Inventors (same icon), take 3 \uD83C\uDF56. (Pairs owned before don't count.)\n" + + "ID 5 — During the Shamanic Ritual Event, your tribe has 3 additional ⭐ icons.\n" + + "ID 6 — During the Shamanic Ritual Event, if you have more ⭐ than any other player, gain double Prestige. Ties still count.\n" + + "ID 7 — During the Hunt Event, take 1 \uD83C\uDF56 and gain 1 extra Prestige Point for each Hunter in your tribe.\n" + + "ID 8 — At end of game, gain double the Prestige Points shown on Builder cards in your tribe.\n" + + "ID 9 — During the Cave Paintings Event, take 1 \uD83C\uDF56 for each Artist in your tribe.\n" + + "ID 10 — At end of game, gain 6 Prestige Points for each complete set of 6 different Character cards.\n" + + "ID 11 — At end of game, gain the indicated Prestige Points for each Character card of the indicated type.\n" + + "ID 12 — After all Totems return to Turn Order (before End of Round), take 1 Character or 1 Building card from the top row (paying its cost).\n" + + "ID 13 — At end of game, gain 25 Prestige Points."; + + private static final String EVENT_DETAILS = + "SUSTENANCE — Pay 1 \uD83C\uDF56 per Character (Buildings don't count). If you can't feed all Characters, lose the\n" + + " Prestige Points shown on the card for each one you couldn't feed. Each Gatherer gives a 3\uD83C\uDF56 discount.\n" + + " You cannot choose to lose PP to avoid paying Food. Sustenance resolves last if multiple Events occur.\n" + + "\n" + + "HUNT — Take 1 \uD83C\uDF56 and gain the Prestige Points shown on the card for each Hunter in your tribe.\n" + + "\n" + + "SHAMANIC RITUAL — Player with the most \uD83C\uDF1F icons gains the Prestige Points on the card.\n" + + " Player with the fewest \uD83C\uDF1F icons loses those Prestige Points. In case of a tie, all tied players gain/lose.\n" + + "\n" + + "CAVE PAINTINGS — If you have fewer Artists than the top-line threshold, lose the indicated Prestige Points.\n" + + " If you meet the bottom-line threshold, gain the indicated Prestige Points for each Artist in your tribe."; + + private static final String CHARACTER_DETAILS = + "INVENTORS — At end of game, gain PP equal to (number of Inventors) × (number of different Invention icons).\n" + + " There are 10 different Invention icons.\n" + + "\n" + + "GATHERERS — During Sustenance, each Gatherer gives a 3\uD83C\uDF56 discount on what you owe.\n" + + " Note: you do not take any Food from Gatherers under any circumstances.\n" + + "\n" + + "SHAMANS — Each Shaman shows 1–3 \uD83C\uDF1F icons. During Shamanic Ritual, majority = gain PP; minority = lose PP.\n" + + "\n" + + "BUILDERS — During the game, each Builder reduces the \uD83C\uDF56 cost of every Building card by the amount\n" + + " shown in the top-right corner. At end of game, each Builder gives the PP shown in the bottom-left corner.\n" + + "\n" + + "ARTISTS — During Cave Paintings, gain or lose PP based on Artist count (see 'details events').\n" + + " At end of game, gain 10 PP for every 2 Artists in your tribe.\n" + + "\n" + + "HUNTERS — Adding a Hunter without the \uD83C\uDF56 icon: nothing. Adding a Hunter WITH the \uD83C\uDF56 icon:\n" + + " immediately take 1 \uD83C\uDF56 for each Hunter in your tribe (with or without the icon).\n" + + " During Hunt Event, take \uD83C\uDF56 and gain PP based on your Hunter count (see 'details events')."; + /** * Starts the TUI client. Creates a JLine terminal, loops through login → game → rematch. * @@ -52,7 +101,7 @@ public class ClientLauncherTUI { view = new TUI(null); ClientController controller = new ClientController(view); - LineReader gameReader = buildGameReader(); + gameReader = buildGameReader(); view.setLineReader(gameReader); while (true) { @@ -157,6 +206,7 @@ public class ClientLauncherTUI { node("skip"), node("render"), node("help"), + node("details", node("buildings"), node("events"), node("characters")), node("rematch"), node("quit") ); @@ -188,7 +238,17 @@ public class ClientLauncherTUI { } case "skip" -> controller.skipTurn(); case "render" -> handleRender(parts); - case "help" -> view.renderHelp(); + case "help" -> gameReader.printAbove("Commands: slot, draw, totem, skip, render, help, details, rematch, quit"); + case "details" -> { + if (parts.length > 1 && parts[1].equalsIgnoreCase("buildings")) + gameReader.printAbove(BUILDING_DETAILS); + else if (parts.length > 1 && parts[1].equalsIgnoreCase("events")) + gameReader.printAbove(EVENT_DETAILS); + else if (parts.length > 1 && parts[1].equalsIgnoreCase("characters")) + gameReader.printAbove(CHARACTER_DETAILS); + else + gameReader.printAbove("Usage: details buildings | details events | details characters"); + } case "rematch" -> { if (controller.miniModel == null || !controller.miniModel.currentState.getGameStage().equals(GameStages.ENDED)) { diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building1.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building1.java index f3d84df..514951e 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building1.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building1.java @@ -74,6 +74,11 @@ public class Building1 extends BuildingCard { */ @Override public String toString() { - return super.toString() + " Icon: " + this.icon.toString().charAt(0); + return super.toString() + " (Icon:" + this.icon.toString().substring(0, 3) + ")"; + } + + @Override + public String toStringPlayer() { + return super.toStringPlayer() + " (Icon:" + this.icon.toString().substring(0, 3) + ")"; } } \ No newline at end of file diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building11.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building11.java index 15c3325..e95e051 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building11.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building11.java @@ -105,6 +105,11 @@ public class Building11 extends BuildingCard { */ @Override public String toString() { - return super.toString() + " Icon: " + this.icon.toString().charAt(0) + " MP: " + this.PrestigeMul; + return super.toString() + "+" + this.icon.toString().substring(0, 3) + "×" + this.PrestigeMul; + } + + @Override + public String toStringPlayer() { + return super.toStringPlayer() + " (\uD83C\uDFC5:" + this.icon.toString().substring(0, 3) + "×" + this.PrestigeMul + ")"; } } \ No newline at end of file diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCard.java index 9d3b3c9..79b070c 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCard.java @@ -141,7 +141,7 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf * if {@code price <= 0}, or if {@code prestigeValue < 0} */ public BuildingCard(int effectId ,int era,int price,int prestigeValue) throws IllegalArgumentException{ - this.effectId = effectId; + this(era,price,prestigeValue); switch (effectId){ case 2: this.effectType=EffectType.ON_EVENT; @@ -168,7 +168,7 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf throw new IllegalArgumentException(); } - this(era,price,prestigeValue); + this.effectId = effectId; } /** @@ -186,7 +186,7 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf * if {@code price <= 0}, or if {@code prestigeValue < 0}. */ public BuildingCard(String idIMG,int effectId ,int era,int price,int prestigeValue) throws IllegalArgumentException{ - this.effectId = effectId; + this(idIMG,era,price,prestigeValue); switch (effectId){ case 2: this.effectType=EffectType.ON_EVENT; @@ -213,7 +213,7 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf throw new IllegalArgumentException(); } - this(idIMG,era,price,prestigeValue); + this.effectId = effectId; } /** @@ -274,6 +274,10 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf */ @Override public String toString() { - return ":" + " ID:" + String.valueOf(getEffectId())+ " \uD83C\uDF56:"+String.valueOf(getPrice())+" \uD83C\uDFC5:"+String.valueOf(getPrestigeValue()); + return ":" + " ID:" + getEffectId()+ " \uD83C\uDF56:"+String.valueOf(getPrice())+" \uD83C\uDFC5:"+String.valueOf(getPrestigeValue()); + } + + public String toStringPlayer() { + return "ID:" + getEffectId(); } } \ No newline at end of file diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java index 139b299..01c06ba 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Orders; import it.polimi.ingsw.gc14.Model.OrderLogicCard; import it.polimi.ingsw.gc14.Model.Player; +import it.polimi.ingsw.gc14.Model.Totems; import it.polimi.ingsw.gc14.View.TUI.AsciiTable; import it.polimi.ingsw.gc14.View.TUI.BorderStyle; @@ -23,10 +24,9 @@ public class Order2 extends OrderLogicCard { * @throws NoSuchElementException if the number of players is not equal to 2. */ public Order2(ArrayList players) throws NoSuchElementException { + super(players); if(players.size()!=2) throw new NoSuchElementException(); - super(players); - } /** @@ -74,7 +74,7 @@ public class Order2 extends OrderLogicCard { if(playerList.get(i).played) stringUp.add(""); else - stringUp.add(playerList.get(i).player.getUserName()); + stringUp.add(playerList.get(i).player.getTotem() != null ? playerList.get(i).player.getTotem().toString() : playerList.get(i).player.getUserName()); } catch (IndexOutOfBoundsException e) { stringUp.add(""); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java index cc4cda3..8dbd399 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Orders; import it.polimi.ingsw.gc14.Model.OrderLogicCard; import it.polimi.ingsw.gc14.Model.Player; +import it.polimi.ingsw.gc14.Model.Totems; import it.polimi.ingsw.gc14.View.TUI.AsciiTable; import it.polimi.ingsw.gc14.View.TUI.BorderStyle; @@ -24,9 +25,9 @@ public class Order3 extends OrderLogicCard { * @throws NoSuchElementException if the number of players is not equal to 3. */ public Order3(ArrayList players) throws NoSuchElementException{ + super(players); if(players.size()!=3) throw new NoSuchElementException(); - super(players); } /** @@ -77,7 +78,7 @@ public class Order3 extends OrderLogicCard { if(playerList.get(i).played) stringUp.add(""); else - stringUp.add(playerList.get(i).player.getUserName()); + stringUp.add(i + ". " + (playerList.get(i).player.getTotem() != null ? playerList.get(i).player.getTotem().toString() : playerList.get(i).player.getUserName())); } catch (IndexOutOfBoundsException e) { stringUp.add(""); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java index c48340f..c7f03db 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Orders; import it.polimi.ingsw.gc14.Model.OrderLogicCard; import it.polimi.ingsw.gc14.Model.Player; +import it.polimi.ingsw.gc14.Model.Totems; import it.polimi.ingsw.gc14.View.TUI.AsciiTable; import it.polimi.ingsw.gc14.View.TUI.BorderStyle; @@ -24,9 +25,9 @@ public class Order4 extends OrderLogicCard { * @throws NoSuchElementException if the number of players is not equal to 4. */ public Order4(ArrayList players)throws NoSuchElementException { + super(players); if(players.size()!=4) throw new NoSuchElementException(); - super(players); } /** @@ -83,7 +84,7 @@ public class Order4 extends OrderLogicCard { if(playerList.get(i).played) stringUp.add(""); else - stringUp.add(playerList.get(i).player.getUserName()); + stringUp.add(i + ". " + (playerList.get(i).player.getTotem() != null ? playerList.get(i).player.getTotem().toString() : playerList.get(i).player.getUserName())); } catch (IndexOutOfBoundsException e) { stringUp.add(""); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java index d08bb2f..947587c 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Orders; import it.polimi.ingsw.gc14.Model.OrderLogicCard; import it.polimi.ingsw.gc14.Model.Player; +import it.polimi.ingsw.gc14.Model.Totems; import it.polimi.ingsw.gc14.View.TUI.AsciiTable; import it.polimi.ingsw.gc14.View.TUI.BorderStyle; @@ -24,9 +25,9 @@ public class Order5 extends OrderLogicCard { * @throws NoSuchElementException if the number of players is not equal to 5. */ public Order5(ArrayList players) throws NoSuchElementException{ + super(players); if(players.size()!=5) throw new NoSuchElementException(); - super(players); } /** @@ -84,7 +85,7 @@ public class Order5 extends OrderLogicCard { if(playerList.get(i).played) stringUp.add(""); else - stringUp.add(playerList.get(i).player.getUserName()); + stringUp.add(i + ". " + (playerList.get(i).player.getTotem() != null ? playerList.get(i).player.getTotem().toString() : playerList.get(i).player.getUserName())); } catch (IndexOutOfBoundsException e) { stringUp.add(""); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java index e430873..3e82cce 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java @@ -276,7 +276,7 @@ public class Player implements Serializable { var table = new AsciiTable(ROUNDED, 1); String totemStr = (this.totem != null) ? " (" + this.totem.toString() + ")" : ""; - table.addHeader(this.getUserName() + totemStr + " | \uD83C\uDF56:" + this.getFoodValue() + " | \uD83C\uDFC5:" + this.getPrestigeValue() + " "); + table.addHeader(this.getUserName() + totemStr + " | \uD83C\uDF56:" + this.getFoodValue() + " | \uD83C\uDFC5:" + this.getPrestigeValue()); table.addSeparator(); if(!this.hunters.isEmpty()){ @@ -304,7 +304,7 @@ public class Player implements Serializable { if(Last == 0){ table.addSeparator(); } - table.addRow("CHARACTERS:"); + table.addRow("CHARACTERS"); if(!this.artists.isEmpty()){ table.addRow(this.artists.size() + " Artists: \uD83C\uDFA8:" + this.artists.size()); if(Last == 1){ @@ -313,7 +313,7 @@ public class Player implements Serializable { } if(!this.builders.isEmpty()){ - table.addRow(this.builders.size() + " Builders: " + "-\uD83C\uDF56:" + this.builders.stream().mapToInt(Builder::getReductionValue).sum() + " \uD83C\uDFC5:" + this.builders.stream().mapToInt(Builder::getPrestigeValue).sum()); + table.addRow(this.builders.size() + " Builders: " + "\uD83D\uDD28:" + this.builders.stream().mapToInt(Builder::getReductionValue).sum() + " \uD83C\uDFC5:" + this.builders.stream().mapToInt(Builder::getPrestigeValue).sum()); if(Last == 2){ table.addSeparator(); } @@ -342,7 +342,7 @@ public class Player implements Serializable { .entrySet().stream() .sorted(Map.Entry.comparingByKey()) .map(e -> e.getKey() + ":" + e.getValue()) - .collect(Collectors.joining(" "))); + .collect(Collectors.joining(", "))); if(Last == 5){ table.addSeparator(); } @@ -353,10 +353,13 @@ public class Player implements Serializable { table.addRow(this.hunters.size() + " Hunters: \uD83C\uDF56" + this.hunters.stream().filter(Hunter::getIcon).count()); table.addSeparator(); } - - table.addRow("BUILDING CARDS:"); + table.addSeparator(); + table.addRow("BUILDING CARDS" + + (this.buildingCards.stream().mapToInt(BuildingCard::getPrestigeValue).sum() != 0 + ? " 🏅:" + this.buildingCards.stream().mapToInt(BuildingCard::getPrestigeValue).sum() + : "")); if(!this.buildingCards.isEmpty()){ - table.addRow(this.buildingCards.size() + " Buildings: " + this.buildingCards.toString()); + table.addRow(this.buildingCards.size() + " Buildings: " + this.buildingCards.stream().map(BuildingCard::toStringPlayer).collect(Collectors.joining(", "))); } return table.build(); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java b/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java index c876643..155c7f6 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java @@ -171,18 +171,11 @@ public class Slot implements Serializable { */ public String toStringTUI() { - StringBuilder s = new StringBuilder(); - //s.append(this.getSlotId()+" "); - for(int i=0;i players = new ArrayList<>(model.players.values()); if (players.isEmpty()) return ""; - StringBuilder result = new StringBuilder(); - for (Player p : players) { - result.append(p.toString()).append("\n"); - } - return result.toString(); + + int n = players.size(); + int leftCount = Math.min(3, n); + + StringBuilder leftSb = new StringBuilder(); + StringBuilder rightSb = new StringBuilder(); + for (int i = 0; i < leftCount; i++) leftSb.append(players.get(i).toString()).append("\n"); + for (int i = leftCount; i < n; i++) rightSb.append(players.get(i).toString()).append("\n"); + + if (rightSb.isEmpty()) return leftSb.toString(); + + return AsciiTable.sideBySide( + List.of(leftSb.toString().split("\n", -1)), + List.of(rightSb.toString().split("\n", -1)), 3); } private String buildTotemsContent() { @@ -215,6 +211,16 @@ public class TUI implements IView { } } + /** Prints {@code text} above the prompt without clearing the screen. */ + private void printLine(String text) { + if (lineReader != null) { + lineReader.printAbove(text); + } else { + System.out.println(text); + System.out.flush(); + } + } + /** * Horizontally centers each line of {@code content} within the terminal width. * Empty lines are left unpadded. Falls back to the original string when the @@ -314,9 +320,7 @@ public class TUI implements IView { String upperSection = UpperCards.build(); - String middleSection = AsciiTable.sideBySide( - List.of(model.orderLogicCard.toString().split("\n")), - List.of(offerTrack.build().split("\n")), 3); + String middleSection = model.orderLogicCard.toString() + offerTrack.build(); String lowerSection = LowerCards.build(); @@ -326,23 +330,4 @@ public class TUI implements IView { + lowerSection; } - // ── Help ────────────────────────────────────────────────────────────────── - - /** Displays the command help panel. */ - public void renderHelp() { - display(buildHelpContent()); - } - - private String buildHelpContent() { - var table = new AsciiTable(BorderStyle.ROUNDED, 1); - table.addHeader("Commands"); - table.addRow("slot "); - table.addRow("draw upper|lower tribe|building "); - table.addRow("totem "); - table.addRow("skip"); - table.addRow("render"); - table.addRow("help"); - table.addRow("rematch | quit"); - return table.build(); - } } diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building11Test.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building11Test.java index 247b2c3..d88a033 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building11Test.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building11Test.java @@ -132,27 +132,27 @@ class Building11Test { int pm = 5; Building11 b11 = new Building11(era, price, prestigeValue, ct, pm); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0) + " MP: " + pm, b11.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + "+" + ct.toString().substring(0, 3) + "×" + pm, b11.toString()); ct = CharacterType.BUILDER; b11 = new Building11(era, price, prestigeValue, ct, pm); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0) + " MP: " + pm, b11.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + "+" + ct.toString().substring(0, 3) + "×" + pm, b11.toString()); ct = CharacterType.GATHERER; b11 = new Building11(era, price, prestigeValue, ct, pm); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0) + " MP: " + pm, b11.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + "+" + ct.toString().substring(0, 3) + "×" + pm, b11.toString()); ct = CharacterType.HUNTER; b11 = new Building11(era, price, prestigeValue, ct, pm); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0) + " MP: " + pm, b11.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + "+" + ct.toString().substring(0, 3) + "×" + pm, b11.toString()); ct = CharacterType.INVENTOR; b11 = new Building11(era, price, prestigeValue, ct, pm); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0) + " MP: " + pm, b11.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + "+" + ct.toString().substring(0, 3) + "×" + pm, b11.toString()); ct = CharacterType.SHAMAN; b11 = new Building11(era, price, prestigeValue, ct, pm); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0) + " MP: " + pm, b11.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + "+" + ct.toString().substring(0, 3) + "×" + pm, b11.toString()); } @Test diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building1Test.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building1Test.java index 3df0b90..c73dce2 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building1Test.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building1Test.java @@ -87,27 +87,27 @@ class Building1Test { CharacterType ct = CharacterType.ARTIST; Building1 b1 = new Building1(era, price, prestigeValue, ct); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0), b1.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + " (Icon:" + ct.toString().substring(0, 3) + ")", b1.toString()); ct = CharacterType.BUILDER; b1 = new Building1(era, price, prestigeValue, ct); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0), b1.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + " (Icon:" + ct.toString().substring(0, 3) + ")", b1.toString()); ct = CharacterType.GATHERER; b1 = new Building1(era, price, prestigeValue, ct); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0), b1.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + " (Icon:" + ct.toString().substring(0, 3) + ")", b1.toString()); ct = CharacterType.HUNTER; b1 = new Building1(era, price, prestigeValue, ct); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0), b1.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + " (Icon:" + ct.toString().substring(0, 3) + ")", b1.toString()); ct = CharacterType.INVENTOR; b1 = new Building1(era, price, prestigeValue, ct); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0), b1.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + " (Icon:" + ct.toString().substring(0, 3) + ")", b1.toString()); ct = CharacterType.SHAMAN; b1 = new Building1(era, price, prestigeValue, ct); - assertEquals("⎕: " + "ID:" + ID + " $:" + price + " PV:" + prestigeValue + " Icon: " + ct.toString().charAt(0), b1.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + price + " 🏅:" + prestigeValue + " (Icon:" + ct.toString().substring(0, 3) + ")", b1.toString()); } @Test diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCardTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCardTest.java index aabafb9..b8e4309 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCardTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCardTest.java @@ -299,14 +299,14 @@ class BuildingCardTest { int prestigeValue = 6; BuildingCard b0 = new BuildingCard(era, price, prestigeValue); - assertEquals("⎕:" + " ID:0" + " $:"+ b0.getPrice() + " PV:" + b0.getPrestigeValue(), b0.toString()); + assertEquals(":" + " ID:0" + " 🍖:"+ b0.getPrice() + " 🏅:" + b0.getPrestigeValue(), b0.toString()); for(int ID = 3; ID < 13; ID++){ if(ID == 4 || ID == 8 || ID == 10 || ID == 11){ continue; } BuildingCard b = new BuildingCard(ID, era, price, prestigeValue); - assertEquals("⎕:" + " ID:" + ID + " $:"+ b.getPrice() + " PV:" + b.getPrestigeValue(), b.toString()); + assertEquals(":" + " ID:" + ID + " 🍖:" + b.getPrice() + " 🏅:" + b.getPrestigeValue(), b.toString()); } } diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/ArtistTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/ArtistTest.java index 59326ed..3d6b078 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/ArtistTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/ArtistTest.java @@ -14,7 +14,7 @@ class ArtistTest { String s = a.toString(); assertNotNull(s); - assertTrue(s.contains("⎕:")); + assertTrue(s.isEmpty()); } @Test diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/BuilderTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/BuilderTest.java index eeae9eb..fd27995 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/BuilderTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/BuilderTest.java @@ -28,8 +28,8 @@ class BuilderTest { String s = b.toString(); assertNotNull(s); - assertFalse(s.contains(CharacterType.BUILDER.toString())); - assertEquals("⎕:" + " RV:" + b.getReductionValue() + " PV:" + b.getPrestigeValue(), s); + assertTrue(s.contains(CharacterType.BUILDER.toString())); + assertEquals(": BUILDER 🔨:" + b.getReductionValue() + " 🏅:" + b.getPrestigeValue(), s); } @Test @@ -165,7 +165,7 @@ class BuilderTest { String s = b.toStringBoard(); assertNotNull(s); - assertTrue(s.contains("RV:2")); - assertTrue(s.contains("PV:3")); + assertTrue(s.contains("🔨:2")); + assertTrue(s.contains("🏅:3")); } } \ No newline at end of file diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/GathererTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/GathererTest.java index 9c1930e..1fa859e 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/GathererTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/GathererTest.java @@ -15,7 +15,7 @@ class GathererTest { assertNotNull(s); assertFalse(s.contains(CharacterType.GATHERER.toString())); - assertTrue(s.contains("⎕:")); + assertTrue(s.isEmpty()); } @Test diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/HunterTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/HunterTest.java index cc50ba1..be8dd93 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/HunterTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/HunterTest.java @@ -18,7 +18,7 @@ class HunterTest { @Test void testToString() { Hunter h = new Hunter(1, true); - assertTrue(h.toString().contains(" I")); + assertTrue(h.toString().contains("🍖")); Hunter h2 = new Hunter(3, false); assertFalse(h2.toString().contains("I")); @@ -27,7 +27,7 @@ class HunterTest { @Test void testToStringBoard() { Hunter h = new Hunter(1, true); - assertTrue(h.toStringBoard().contains(" I")); + assertTrue(h.toStringBoard().contains("🍖")); Hunter h2 = new Hunter(3, false); assertFalse(h2.toStringBoard().contains("I")); diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/InventorTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/InventorTest.java index 95cd446..8a2ab2e 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/InventorTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/InventorTest.java @@ -22,7 +22,7 @@ class InventorTest { assertNotNull(s); assertFalse(s.contains(CharacterType.INVENTOR.toString())); - assertEquals("⎕:" + " I_ID:" + i.Icon(), s); + assertEquals("ID:" + i.Icon(), s); } @Test @@ -31,7 +31,7 @@ class InventorTest { String s = i.toStringBoard(); assertNotNull(s); - assertTrue(s.contains("I_ID:5")); + assertTrue(s.contains("ID:5")); } @Test diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/ShamanTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/ShamanTest.java index 59547c3..a36e878 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/ShamanTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/ShamanTest.java @@ -22,7 +22,7 @@ class ShamanTest { assertNotNull(str); assertFalse(str.contains(CharacterType.SHAMAN.toString())); - assertEquals("⎕: *:" + s.getIcon(), str); + assertEquals("🌟:" + s.getIcon(), str); } @Test @@ -31,7 +31,7 @@ class ShamanTest { String str = s.toStringBoard(); assertNotNull(str); - assertTrue(str.contains("*:4")); + assertTrue(str.contains("🌟:4")); } @Test diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintingsTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintingsTest.java index 63a29a4..5da2d0e 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintingsTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintingsTest.java @@ -141,7 +141,7 @@ class CavePaintingsTest { void toStringTest() { CavePaintings cv1 = new CavePaintings(1, 1,1,1); - assertEquals("⎕:(Event)CAVE_PAINTINGS", cv1.toString()); + assertEquals(" CAVE_PAINTINGS", cv1.toString()); } @Test @@ -153,6 +153,6 @@ class CavePaintingsTest { int NPrestigeMul = 3; CavePaintings cv1 = new CavePaintings(Era, NLower,NPrestigeRem,NPrestigeMul); - assertEquals("⎕:(Event)" + cv1.getType() + " 0-"+(NLower-1)+":"+NPrestigeRem+" "+NLower+"+:"+NPrestigeMul, cv1.toStringBoard()); + assertEquals(": " + cv1.getType() + " 0-"+(NLower-1)+":"+NPrestigeRem+" "+NLower+"+:"+NPrestigeMul, cv1.toStringBoard()); } } \ No newline at end of file diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/HuntTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/HuntTest.java index f637d8e..2cce965 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/HuntTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/HuntTest.java @@ -150,7 +150,7 @@ class HuntTest { void toStringTest() { Hunt h1 = new Hunt(1, 3); - assertEquals("⎕:(Event)HUNT", h1.toString()); + assertEquals(" HUNT", h1.toString()); } @Test @@ -160,6 +160,6 @@ class HuntTest { int prestigeMultiplier = 3; Hunt cv1 = new Hunt(Era, prestigeMultiplier); - assertEquals("⎕:(Event)" + cv1.getType() + " 1F+" + prestigeMultiplier + "PP" + " X N Hunter", cv1.toStringBoard()); + assertEquals(": " + cv1.getType() + " 1🍖+" + prestigeMultiplier + "🏅×🏹", cv1.toStringBoard()); } } \ No newline at end of file diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitualTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitualTest.java index c32fee7..7365351 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitualTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitualTest.java @@ -235,7 +235,7 @@ class ShamanicRitualTest { void toStringTest() { ShamanicRitual sr1 = new ShamanicRitual(1, 5,2); - assertEquals("⎕:(Event)SHAMANIC_RITUAL", sr1.toString()); + assertEquals(" SHAMANIC_RITUAL", sr1.toString()); } @Test @@ -246,6 +246,6 @@ class ShamanicRitualTest { int prestigeToRem = 2; ShamanicRitual cv1 = new ShamanicRitual(Era, prestigeToAdd, prestigeToRem); - assertEquals("⎕:(Event)" + cv1.getType() + " *>:" + prestigeToAdd + " *<:" + prestigeToRem, cv1.toStringBoard()); + assertEquals(": " + cv1.getType() + " 🌟>:" + prestigeToAdd + " 🌟<:" + prestigeToRem, cv1.toStringBoard()); } } \ No newline at end of file diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/SustenanceTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/SustenanceTest.java index bbf060c..053cfdf 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/SustenanceTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/SustenanceTest.java @@ -155,7 +155,7 @@ class SustenanceTest { void toStringTest() { Sustenance s1 = new Sustenance(1, 5); - assertEquals("⎕:(Event)SUSTENANCE", s1.toString()); + assertEquals(" SUSTENANCE", s1.toString()); } @Test @@ -165,7 +165,7 @@ class SustenanceTest { int prestigeDebt = 15; Sustenance cv1 = new Sustenance(Era, prestigeDebt); - assertEquals("⎕:(Event)" + cv1.getType() + " -1F/-" + prestigeDebt + "PP", cv1.toStringBoard()); + assertEquals(": " + cv1.getType() + " -1🍖/-" + prestigeDebt + "🏅", cv1.toStringBoard()); } } diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order2Test.java b/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order2Test.java index 43fd60a..0db2268 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order2Test.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order2Test.java @@ -167,31 +167,31 @@ class Order2Test { assertTrue(order.toString().contains(usr1)); assertTrue(order.toString().contains(usr2)); - assertTrue(order.toString().contains("+1 Food")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("+1🍖")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.pull(); order.pull(); assertFalse(order.toString().contains(usr1)); assertFalse(order.toString().contains(usr2)); - assertTrue(order.toString().contains("+1 Food")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("+1🍖")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.push(p2); order.push(p1); assertTrue(order.toString().contains(usr1)); assertTrue(order.toString().contains(usr2)); - assertTrue(order.toString().contains("+1 Food")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("+1🍖")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.pull().getUserName(); assertTrue(order.toString().contains(usr1)); assertFalse(order.toString().contains(usr2)); - assertTrue(order.toString().contains("+1 Food")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("+1🍖")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); Player extraPlayer = new Player("px"); //TODO testare IndexOutOfBoundsException diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order3Test.java b/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order3Test.java index f7e6ca3..98474a1 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order3Test.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order3Test.java @@ -195,9 +195,9 @@ class Order3Test { assertTrue(order.toString().contains(usr1)); assertTrue(order.toString().contains(usr2)); assertTrue(order.toString().contains(usr3)); - assertTrue(order.toString().contains("+2 Food")); + assertTrue(order.toString().contains("+2🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.pull(); order.pull(); @@ -206,9 +206,9 @@ class Order3Test { assertFalse(order.toString().contains(usr1)); assertFalse(order.toString().contains(usr2)); assertFalse(order.toString().contains(usr3)); - assertTrue(order.toString().contains("+2 Food")); + assertTrue(order.toString().contains("+2🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.push(p3); order.push(p2); @@ -217,18 +217,18 @@ class Order3Test { assertTrue(order.toString().contains(usr1)); assertTrue(order.toString().contains(usr2)); assertTrue(order.toString().contains(usr3)); - assertTrue(order.toString().contains("+2 Food")); + assertTrue(order.toString().contains("+2🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.pull().getUserName(); assertTrue(order.toString().contains(usr1)); assertTrue(order.toString().contains(usr2)); assertFalse(order.toString().contains(usr3)); - assertTrue(order.toString().contains("+2 Food")); + assertTrue(order.toString().contains("+2🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); //TODO testare IndexOutOfBoundsException } diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order4Test.java b/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order4Test.java index 2110d14..b585875 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order4Test.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order4Test.java @@ -289,10 +289,10 @@ class Order4Test { assertTrue(order.toString().contains(usr2)); assertTrue(order.toString().contains(usr3)); assertTrue(order.toString().contains(usr4)); - assertTrue(order.toString().contains("+2 Food")); - assertTrue(order.toString().contains("+1 Food")); + assertTrue(order.toString().contains("+2🍖")); + assertTrue(order.toString().contains("+1🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.pull(); order.pull(); @@ -303,10 +303,10 @@ class Order4Test { assertFalse(order.toString().contains(usr2)); assertFalse(order.toString().contains(usr3)); assertFalse(order.toString().contains(usr4)); - assertTrue(order.toString().contains("+2 Food")); - assertTrue(order.toString().contains("+1 Food")); + assertTrue(order.toString().contains("+2🍖")); + assertTrue(order.toString().contains("+1🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.push(p4); order.push(p3); @@ -317,10 +317,10 @@ class Order4Test { assertTrue(order.toString().contains(usr2)); assertTrue(order.toString().contains(usr3)); assertTrue(order.toString().contains(usr4)); - assertTrue(order.toString().contains("+2 Food")); - assertTrue(order.toString().contains("+1 Food")); + assertTrue(order.toString().contains("+2🍖")); + assertTrue(order.toString().contains("+1🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.pull().getUserName(); @@ -328,10 +328,10 @@ class Order4Test { assertTrue(order.toString().contains(usr2)); assertTrue(order.toString().contains(usr3)); assertFalse(order.toString().contains(usr4)); - assertTrue(order.toString().contains("+2 Food")); - assertTrue(order.toString().contains("+1 Food")); + assertTrue(order.toString().contains("+2🍖")); + assertTrue(order.toString().contains("+1🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); //TODO testare IndexOutOfBoundsException } diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order5Test.java b/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order5Test.java index 061ba95..c4f0b81 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order5Test.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Orders/Order5Test.java @@ -387,10 +387,10 @@ class Order5Test { assertTrue(order.toString().contains(usr3)); assertTrue(order.toString().contains(usr4)); assertTrue(order.toString().contains(usr5)); - assertTrue(order.toString().contains("+3 Food")); - assertTrue(order.toString().contains("+1 Food")); + assertTrue(order.toString().contains("+3🍖")); + assertTrue(order.toString().contains("+1🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.pull(); order.pull(); @@ -403,10 +403,10 @@ class Order5Test { assertFalse(order.toString().contains(usr3)); assertFalse(order.toString().contains(usr4)); assertFalse(order.toString().contains(usr5)); - assertTrue(order.toString().contains("+3 Food")); - assertTrue(order.toString().contains("+1 Food")); + assertTrue(order.toString().contains("+3🍖")); + assertTrue(order.toString().contains("+1🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.push(p5); order.push(p4); @@ -419,10 +419,10 @@ class Order5Test { assertTrue(order.toString().contains(usr3)); assertTrue(order.toString().contains(usr4)); assertTrue(order.toString().contains(usr5)); - assertTrue(order.toString().contains("+3 Food")); - assertTrue(order.toString().contains("+1 Food")); + assertTrue(order.toString().contains("+3🍖")); + assertTrue(order.toString().contains("+1🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); order.pull(); @@ -431,10 +431,10 @@ class Order5Test { assertTrue(order.toString().contains(usr3)); assertTrue(order.toString().contains(usr4)); assertFalse(order.toString().contains(usr5)); - assertTrue(order.toString().contains("+3 Food")); - assertTrue(order.toString().contains("+1 Food")); + assertTrue(order.toString().contains("+3🍖")); + assertTrue(order.toString().contains("+1🍖")); assertTrue(order.toString().contains("--")); - assertTrue(order.toString().contains("-1 Food / -2 PP")); + assertTrue(order.toString().contains("-1🍖/-2🏅")); //TODO capire come è testato IndexOutOfBoundsExceptions } diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/PlayerTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/PlayerTest.java index 371d02f..83b56f0 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/PlayerTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/PlayerTest.java @@ -220,25 +220,21 @@ class PlayerTest { p.getBuildingCards().add(new Building1(2, 5, 5, CharacterType.INVENTOR)); p.getBuildingCards().add(new Building1(2, 5, 5, CharacterType.SHAMAN)); p.getBuildingCards().add(new Building11(1, 5, 7, CharacterType.ARTIST , 3)); - assertEquals(""+ - "╔═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗\n" + - "║ test_usr ║\n" + - "├═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════┤\n" + - "║ RESOURCES: ║\n" + - "║ Food: 7 ║\n" + - "║ Prestige: 15 ║\n" + - "├═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════┤\n" + - "║ CHARACTERS: ║\n" + - "║ Artists: [⎕:, ⎕:, ⎕:, ⎕:, ⎕:, ⎕:, ⎕:] ║\n" + - "║ Builders: [⎕: RV:5 PV:1] ║\n" + - "║ Gatherers: [⎕:] ║\n" + - "║ Shamans: [⎕: *:3, ⎕: *:3] ║\n" + - "║ Inventors: [⎕: I_ID:1] ║\n" + - "║ Hunters: [⎕: I, ⎕:] ║\n" + - "├═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════┤\n" + - "║ BUILDING CARDS: ║\n" + - "║ Buildings: [⎕: ID:2 $:2 PV:5, ⎕: ID:2 $:3 PV:6, ⎕: ID:1 $:5 PV:5 Icon: I, ⎕: ID:1 $:5 PV:5 Icon: S, ⎕: ID:11 $:5 PV:7 Icon: A MP: 3]║\n" + - "╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝", p.toString()); + assertEquals( + "╭────────────────────────────────────────────────────────────────────────────╮\n" + + "│ test_usr | 🍖:7 | 🏅:15 │\n" + + "├────────────────────────────────────────────────────────────────────────────┤\n" + + "│ CHARACTERS │\n" + + "│ 7 Artists: 🎨:7 │\n" + + "│ 1 Builders: 🔨:5 🏅:1 │\n" + + "│ 1 Gatherers: -🥗:3 │\n" + + "│ 2 Shamans: 🌟:6 │\n" + + "│ 1 Inventors: 1:1 │\n" + + "│ 2 Hunters: 🍖1 │\n" + + "├────────────────────────────────────────────────────────────────────────────┤\n" + + "│ BUILDING CARDS 🏅:28 │\n" + + "│ 5 Buildings: ID:2, ID:2, ID:1 (Icon:INV), ID:1 (Icon:SHA), ID:11 (🏅:ART×3)│\n" + + "╰────────────────────────────────────────────────────────────────────────────╯", p.toString()); } @Test @@ -248,49 +244,49 @@ class PlayerTest { assertNotNull(emptyString); assertTrue(emptyString.contains("empty")); - assertTrue(emptyString.contains("CHARACTERS:")); - assertTrue(emptyString.contains("BUILDING CARDS:")); + assertTrue(emptyString.contains("CHARACTERS")); + assertTrue(emptyString.contains("BUILDING CARDS")); Player onlyArtist = new Player("onlyArtist"); onlyArtist.getArtists().add(new Artist(1)); String artistString = onlyArtist.toString(); assertTrue(artistString.contains("Artists:")); - assertTrue(artistString.contains("BUILDING CARDS:")); + assertTrue(artistString.contains("BUILDING CARDS")); Player onlyBuilder = new Player("onlyBuilder"); onlyBuilder.getBuilders().add(new Builder(1, 1, 1)); String builderString = onlyBuilder.toString(); assertTrue(builderString.contains("Builders:")); - assertTrue(builderString.contains("BUILDING CARDS:")); + assertTrue(builderString.contains("BUILDING CARDS")); Player onlyGatherer = new Player("onlyGatherer"); onlyGatherer.getGatherers().add(new Gatherer(1, 1)); String gathererString = onlyGatherer.toString(); assertTrue(gathererString.contains("Gatherers:")); - assertTrue(gathererString.contains("BUILDING CARDS:")); + assertTrue(gathererString.contains("BUILDING CARDS")); Player onlyShaman = new Player("onlyShaman"); onlyShaman.getShamans().add(new Shaman(1, 1)); String shamanString = onlyShaman.toString(); assertTrue(shamanString.contains("Shamans:")); - assertTrue(shamanString.contains("BUILDING CARDS:")); + assertTrue(shamanString.contains("BUILDING CARDS")); Player onlyInventor = new Player("onlyInventor"); onlyInventor.getInventors().add(new Inventor(1, 1)); String inventorString = onlyInventor.toString(); assertTrue(inventorString.contains("Inventors:")); - assertTrue(inventorString.contains("BUILDING CARDS:")); + assertTrue(inventorString.contains("BUILDING CARDS")); Player onlyHunter = new Player("onlyHunter"); onlyHunter.getHunters().add(new Hunter(1, true)); String hunterString = onlyHunter.toString(); assertTrue(hunterString.contains("Hunters:")); - assertTrue(hunterString.contains("BUILDING CARDS:")); + assertTrue(hunterString.contains("BUILDING CARDS")); } } \ No newline at end of file