Merge pull request #84 from rubenpirreram/tests-fix

Tests fix
This commit is contained in:
rubenpirreram
2026-05-06 17:35:17 +02:00
committed by GitHub
17 changed files with 516 additions and 50 deletions
@@ -86,7 +86,6 @@ public class CavePaintings extends EventCard {
return new CavePaintings(getEra(), NLower, NPrestigeRem, NPrestigeMul) ; return new CavePaintings(getEra(), NLower, NPrestigeRem, NPrestigeMul) ;
} }
/** /**
* Prints a string representation of this {@code TribeCard}. This specific variation is used in the {@code Game}'s * Prints a string representation of this {@code TribeCard}. This specific variation is used in the {@code Game}'s
* toString to print a more detailed version. * toString to print a more detailed version.
@@ -106,6 +105,6 @@ public class CavePaintings extends EventCard {
*/ */
@Override @Override
public String toStringBoard() { public String toStringBoard() {
return super.toString()+" 0-"+(NLower-1)+":"+NPrestigeRem+" "+NLower+"+:"+NPrestigeMul; return super.toStringBoard()+" 0-"+(NLower-1)+":"+NPrestigeRem+" "+NLower+"+:"+NPrestigeMul;
} }
} }
@@ -84,7 +84,7 @@ public class Hunt extends EventCard {
*/ */
@Override @Override
public String toStringBoard() { public String toStringBoard() {
return super.toString()+" 1F+"+prestigeMultiplier+"PP"+" X N Hunter"; return super.toStringBoard()+" 1F+"+prestigeMultiplier+"PP"+" X N Hunter";
} }
} }
@@ -111,7 +111,7 @@ public class ShamanicRitual extends EventCard {
*/ */
@Override @Override
public String toStringBoard() { public String toStringBoard() {
return super.toString()+" *>:"+prestigeToAdd+" *<:"+prestigeToRemove; return super.toStringBoard()+" *>:"+prestigeToAdd+" *<:"+prestigeToRemove;
} }
} }
@@ -103,6 +103,6 @@ public class Sustenance extends EventCard {
*/ */
@Override @Override
public String toStringBoard() { public String toStringBoard() {
return super.toString()+" -1F/-"+PrestigeDebt+"PP"; return super.toStringBoard()+" -1F/-"+PrestigeDebt+"PP";
} }
} }
@@ -57,13 +57,14 @@ class Building8Test {
b8.applyEffect(p); b8.applyEffect(p);
assertEquals(1, p.buildingCards.stream().filter(x -> x.getEffectId() == 8).count()); assertEquals(1, p.buildingCards.stream().filter(x -> x.getEffectId() == 8).count());
assertEquals(PrestigeMul * 2 * p.buildingCards.stream().filter(x -> x.getEffectId() == 8).count(), p.getPrestigeValue()); assertEquals(PrestigeMul* p.buildingCards.stream().filter(x -> x.getEffectId() == 8).count(), p.getPrestigeValue());
p.removePrestige(p.getPrestigeValue());
Builder b2 = new Builder(Era, 1, PrestigeMul); Builder b2 = new Builder(Era, 1, PrestigeMul);
p.builders.add(b2); p.builders.add(b2);
b8.applyEffect(p); b8.applyEffect(p);
assertEquals(2 + 4, p.getPrestigeValue()); assertEquals(PrestigeMul * 2, p.getPrestigeValue());
} }
@Test @Test
@@ -13,8 +13,6 @@ class GathererTest {
Gatherer g = new Gatherer(1); Gatherer g = new Gatherer(1);
String s = g.toString(); String s = g.toString();
System.out.println(s);
assertNotNull(s); assertNotNull(s);
assertFalse(s.contains(CharacterType.GATHERER.toString())); assertFalse(s.contains(CharacterType.GATHERER.toString()));
assertTrue(s.contains("⎕:")); assertTrue(s.contains("⎕:"));
@@ -18,13 +18,19 @@ class HunterTest {
@Test @Test
void testToString() { void testToString() {
Hunter h = new Hunter(1, true); Hunter h = new Hunter(1, true);
String s = h.toString(); assertTrue(h.toString().contains(" I"));
assertNotNull(s);
assertTrue(s.contains(" I"));
Hunter h2 = new Hunter(3, false); Hunter h2 = new Hunter(3, false);
assertTrue(!h2.toString().contains("I")); assertFalse(h2.toString().contains("I"));
}
@Test
void testToStringBoard() {
Hunter h = new Hunter(1, true);
assertTrue(h.toStringBoard().contains(" I"));
Hunter h2 = new Hunter(3, false);
assertFalse(h2.toStringBoard().contains("I"));
} }
@Test @Test
@@ -94,6 +94,36 @@ class CavePaintingsTest {
assertEquals(7, p1.getFoodValue()); assertEquals(7, p1.getFoodValue());
} }
@Test
@DisplayName("Not Building 9 test")
void activateEvent3() {
Player p1 = new Player("Marco");
ArrayList<Player> players = new ArrayList<>(Arrays.asList(p1));
CavePaintings cp1 = new CavePaintings(1, 1, 3, 2);
BuildingCard bc1 = new BuildingCard(9,1,5,5);
p1.addFood(5);
bc1.buy(p1);
new Artist(1).insert(p1);
cp1.activateEvent(players);
assertEquals(2, p1.getPrestigeValue());
assertEquals(1 * 1, p1.getFoodValue());
p1.removeFood(p1.getFoodValue());
BuildingCard bc2 = new BuildingCard(7,1,5,5);
BuildingCard bc3 = new BuildingCard(9,1,5,5);
p1.addFood(10);
bc2.buy(p1);
bc3.buy(p1);
new Artist(1).insert(p1);
new Artist(1).insert(p1);
cp1.activateEvent(players);
assertEquals(8, p1.getPrestigeValue());
assertEquals(2 * 3, p1.getFoodValue());
}
@Test @Test
@DisplayName("Clone testing") @DisplayName("Clone testing")
void cloneTest() { void cloneTest() {
@@ -113,4 +143,16 @@ class CavePaintingsTest {
assertEquals("⎕:(Event)CAVE_PAINTINGS", cv1.toString()); assertEquals("⎕:(Event)CAVE_PAINTINGS", cv1.toString());
} }
@Test
@DisplayName("ToStringBoard testing")
void toStringBoardTest() {
int Era = 1;
int NLower = 1;
int NPrestigeRem = 2;
int NPrestigeMul = 3;
CavePaintings cv1 = new CavePaintings(Era, NLower,NPrestigeRem,NPrestigeMul);
assertEquals("⎕:(Event)" + cv1.getType() + " 0-"+(NLower-1)+":"+NPrestigeRem+" "+NLower+"+:"+NPrestigeMul, cv1.toStringBoard());
}
} }
@@ -98,6 +98,38 @@ class HuntTest {
assertEquals(1, p3.getFoodValue()); assertEquals(1, p3.getFoodValue());
} }
@Test
@DisplayName("p2 doesnt have building 7")
void activateEvent4() {
Player p1 = new Player("Giacomo");
Player p2 = new Player("xiaomi");
Player p3 = new Player("test");
ArrayList<Player> players = new ArrayList<>(Arrays.asList(p1, p2, p3));
Hunt h1 = new Hunt(1, 3);
assertEquals(0, p1.getFoodValue());
new Hunter(1, true).insert(p1);
new Hunter(1, false).insert(p1);
new Hunter(1, false).insert(p2);
new Hunter(1, false).insert(p2);
assertEquals(0, p2.getFoodValue());
assertEquals(0, p2.getPrestigeValue());
new Hunter(1, false).insert(p3);
assertEquals(0, p3.getFoodValue());
h1.activateEvent(players);
assertEquals(3*2, p1.getPrestigeValue());
assertEquals(1 + 2, p1.getFoodValue());
assertEquals(3 * 2, p2.getPrestigeValue());
assertEquals(2, p2.getFoodValue());
assertEquals(3, p3.getPrestigeValue());
assertEquals(1, p3.getFoodValue());
}
@Test @Test
@DisplayName("clone testing") @DisplayName("clone testing")
void cloneTest() { void cloneTest() {
@@ -120,4 +152,14 @@ class HuntTest {
assertEquals("⎕:(Event)HUNT", h1.toString()); assertEquals("⎕:(Event)HUNT", h1.toString());
} }
@Test
@DisplayName("ToStringBoard testing")
void toStringBoardTest() {
int Era = 1;
int prestigeMultiplier = 3;
Hunt cv1 = new Hunt(Era, prestigeMultiplier);
assertEquals("⎕:(Event)" + cv1.getType() + " 1F+" + prestigeMultiplier + "PP" + " X N Hunter", cv1.toStringBoard());
}
} }
@@ -190,6 +190,29 @@ class ShamanicRitualTest {
assertEquals(-5, p3.getPrestigeValue()); assertEquals(-5, p3.getPrestigeValue());
} }
@Test
@DisplayName("p1 does not have building 6")
void ApplyEvent6() {
Player p1 = new Player("Marco");
Player p2 = new Player("Luca");
ArrayList<Player> players = new ArrayList<>(Arrays.asList(p1, p2));
new Shaman(1, 3).insert(p1);
new Shaman(1, 1).insert(p2);
BuildingCard b = new BuildingCard(2, 1, 5, 1);
p1.addFood(5);
b.buy(p1);
ShamanicRitual ritual = new ShamanicRitual(1, 10, 5);
ritual.activateEvent(players);
assertEquals(10, p1.getPrestigeValue());
assertEquals(-5, p2.getPrestigeValue());
}
@Test @Test
@DisplayName("Clone testing") @DisplayName("Clone testing")
void cloneTest() { void cloneTest() {
@@ -214,4 +237,15 @@ class ShamanicRitualTest {
assertEquals("⎕:(Event)SHAMANIC_RITUAL", sr1.toString()); assertEquals("⎕:(Event)SHAMANIC_RITUAL", sr1.toString());
} }
@Test
@DisplayName("ToStringBoard testing")
void toStringBoardTest() {
int Era = 1;
int prestigeToAdd = 1;
int prestigeToRem = 2;
ShamanicRitual cv1 = new ShamanicRitual(Era, prestigeToAdd, prestigeToRem);
assertEquals("⎕:(Event)" + cv1.getType() + " *>:" + prestigeToAdd + " *<:" + prestigeToRem, cv1.toStringBoard());
}
} }
@@ -102,6 +102,39 @@ class SustenanceTest {
assertEquals(0, p2.getPrestigeValue()); assertEquals(0, p2.getPrestigeValue());
} }
@Test
@DisplayName("Missing Building 1 testing")
void activateEvent3() {
Player p1 = new Player("marco");
Player p2 = new Player("giacomo");
ArrayList<Player> players = new ArrayList<>(Arrays.asList(p1,p2));
p1.addFood(5);
new Inventor(1, 1).insert(p1);
new Shaman(1, 5).insert(p1);
new Builder(1, 5, 5).insert(p1);
new Artist(1).insert(p1);
new Hunter(1, false).insert(p1);
new Gatherer(1).insert(p1);
p2.addFood(2);
new Artist(1).insert(p2);
new Artist(1).insert(p2);
new Artist(1).insert(p2);
Building1 bd2 = new Building1(1, 1, 1, CharacterType.ARTIST);
bd2.buy(p2);
Sustenance s = new Sustenance(1,2);
s.activateEvent(players);
assertEquals(2, p1.getFoodValue());
assertEquals(1, p2.getFoodValue());
assertEquals(0, p1.getPrestigeValue());
assertEquals(0, p2.getPrestigeValue());
}
@Test @Test
@DisplayName("Clone testing") @DisplayName("Clone testing")
void cloneTest() { void cloneTest() {
@@ -124,6 +157,16 @@ class SustenanceTest {
assertEquals("⎕:(Event)SUSTENANCE", s1.toString()); assertEquals("⎕:(Event)SUSTENANCE", s1.toString());
} }
@Test
@DisplayName("ToStringBoard testing")
void toStringBoardTest() {
int Era = 3;
int prestigeDebt = 15;
Sustenance cv1 = new Sustenance(Era, prestigeDebt);
assertEquals("⎕:(Event)" + cv1.getType() + " -1F/-" + prestigeDebt + "PP", cv1.toStringBoard());
}
} }
@@ -699,6 +699,8 @@ class GameTest {
assertTrue(game.addPlayer(new Player("p" + nPlayers + "_" + i))); assertTrue(game.addPlayer(new Player("p" + nPlayers + "_" + i)));
} }
assertEquals(nPlayers, game.getCurrentPlayerNumber());
assertEquals(nPlayers, game.getPlayers().size());
assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage()); assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage());
assertEquals(1, game.getCurrentState().getRound()); assertEquals(1, game.getCurrentState().getRound());
assertNotNull(game.getCurrentState().getCurrentPlayer()); assertNotNull(game.getCurrentState().getCurrentPlayer());
@@ -706,6 +708,7 @@ class GameTest {
for (int expectedRound = 1; expectedRound < 10; expectedRound++) { for (int expectedRound = 1; expectedRound < 10; expectedRound++) {
assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage()); assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage());
assertEquals(expectedRound, game.getCurrentState().getRound()); assertEquals(expectedRound, game.getCurrentState().getRound());
assertEquals(nPlayers, game.getCurrentPlayerNumber());
playOneFullRound(game); playOneFullRound(game);
@@ -721,6 +724,7 @@ class GameTest {
"The round should increase after completing round " + expectedRound + "." "The round should increase after completing round " + expectedRound + "."
); );
assertEquals(nPlayers, game.getCurrentPlayerNumber());
assertNotNull(game.getCurrentState().getCurrentPlayer()); assertNotNull(game.getCurrentState().getCurrentPlayer());
} }
@@ -735,11 +739,8 @@ class GameTest {
"The game should end after completing round 10 with " + nPlayers + " players." "The game should end after completing round 10 with " + nPlayers + " players."
); );
assertEquals( assertEquals(10, game.getCurrentState().getRound());
10, assertEquals(nPlayers, game.getPlayers().size());
game.getCurrentState().getRound(),
"The game should end at round 10 with " + nPlayers + " players."
);
} }
} }
@@ -1095,4 +1096,105 @@ class GameTest {
); );
} }
@Test
void skipDrawingShouldRejectWrongPlayer() {
Game game = new Game(3);
List<Player> players = addPlayers(game, 3, "skip_wrong_");
completeSlotChoice(game);
Player current = game.getCurrentState().getCurrentPlayer();
Player wrongPlayer = players.stream()
.filter(p -> !p.equals(current))
.findFirst()
.orElseThrow();
assertFalse(game.SkipLowerDrawing(wrongPlayer));
assertFalse(game.SkipUpperDrawing(wrongPlayer));
}
@Test
void skipDrawingShouldReturnFalseWhenDrawableCardsExist() {
Game game = new Game(3);
addPlayers(game, 3, "skip_drawable_");
completeSlotChoice(game);
Player current = game.getCurrentState().getCurrentPlayer();
assertNotNull(current);
boolean checkedAtLeastOneSkip = false;
if (game.getCurrentState().getNLower() > 0
&& firstNonEventIndexOrMinusOne(game.getLowerListTribeCards()) != -1) {
assertFalse(game.SkipLowerDrawing(current));
checkedAtLeastOneSkip = true;
}
if (game.getCurrentState().getNUpper() > 0
&& firstNonEventIndexOrMinusOne(game.getUpperListTribeCards()) != -1) {
assertFalse(game.SkipUpperDrawing(current));
checkedAtLeastOneSkip = true;
}
assertTrue(
checkedAtLeastOneSkip,
"The test should check at least one skip rejection when drawable cards exist."
);
}
@Test
void pickOptionalTribeCardShouldRejectEventCard() {
Game game = new Game(3);
List<Player> players = addPlayers(game, 3, "optional_event_");
giveOptionalEffectToAllPlayers(players.get(0), players.get(1), players.get(2));
completeSlotChoice(game);
resolveActionsUntilOptionalCardEffect(game);
Player current = game.getCurrentState().getCurrentPlayer();
assertNotNull(current);
int eventIndex = firstEventIndexOrMinusOne(game.getUpperListTribeCards());
assertNotEquals(
-1,
eventIndex,
"There should be at least one event card in the upper tribe list to test rejection."
);
assertFalse(game.PickOptionalTribeCardByIndex(current, eventIndex));
}
@Test
void cardListsShouldReturnCopiesOfLists() {
Game game = new Game(3);
List<TribeCard> upper = game.getUpperListTribeCards();
int originalSize = upper.size();
upper.clear();
assertEquals(originalSize, game.getUpperListTribeCards().size());
}
@Test
void getPlayersShouldReturnAddedPlayers() {
Game game = new Game(3);
Player p1 = new Player("gp1");
Player p2 = new Player("gp2");
assertTrue(game.addPlayer(p1));
assertTrue(game.addPlayer(p2));
assertEquals(2, game.getPlayers().size());
assertTrue(game.getPlayers().contains(p1));
assertTrue(game.getPlayers().contains(p2));
}
} }
@@ -155,15 +155,52 @@ class Order2Test {
assertEquals(p1, order.getFirst()); assertEquals(p1, order.getFirst());
assertEquals(p1, order.getFirst()); assertEquals(p1, order.getFirst());
} }
@Test @Test
void toStringTest() throws NoSuchFieldException, IllegalAccessException { void toStringTest() throws NoSuchFieldException, IllegalAccessException {
Player p1 = new Player("wPIshEUhiOpRRnIBFfM89s2$@q$9FGbz"); String usr1 = "wPIshEUhiOpRRnIBFfM89s2$@q$9FGbz";
Player p2 = new Player("L*Ncw1rjjrF2xn%H@4P1iC@&NNIooQQk"); String usr2 = "L*Ncw1rjjrF2xn%H@4P1iC@&NNIooQQk";
Player p1 = new Player(usr1);
Player p2 = new Player(usr2);
Order2 order = new Order2(new ArrayList<>(Arrays.asList(p1, p2))); Order2 order = new Order2(new ArrayList<>(Arrays.asList(p1, p2)));
assertTrue(order.toString().contains(usr1));
assertTrue(order.toString().contains(usr2));
assertTrue(order.toString().contains("+1 Food"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
order.pull(); order.pull();
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"));
order.push(p2); order.push(p2);
order.push(p1); 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"));
order.pull().getUserName(); 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"));
Player extraPlayer = new Player("px");
//TODO testare IndexOutOfBoundsException
// assertThrows(IndexOutOfBoundsException.class, () -> {
// Order2 ox = new Order2(new ArrayList<>(Arrays.asList(p1, p2)));;
// ox.pull();
// ox.pull();
// ox.pull();
// ox.push(extraPlayer);
// });
} }
} }
@@ -183,26 +183,54 @@ class Order3Test {
} }
@Test @Test
void toStringTest() throws NoSuchFieldException, IllegalAccessException { void toStringTest() throws NoSuchFieldException, IllegalAccessException {
Player p1 = new Player("wPIshEUhiOpRRnIBFfM89s2$@q$9FGbz"); String usr1 = "wPIshEUhiOpRRnIBFfM89s2$@q$9FGbz";
Player p2 = new Player("L*Ncw1rjjrF2xn%H@4P1iC@&NNIooQQk"); String usr2 = "L*Ncw1rjjrF2xn%H@4P1iC@&NNIooQQk";
Player p3 = new Player("L*Ncw1ryyrF2xn%H@4P1iC@&NNIooQQk"); String usr3 = "L*Ncw1rjjrF2xn%H@4d1iC@&NNIooQQk";
Order3 order = new Order3(new ArrayList<>(Arrays.asList(p1, p2,p3)));
Field field = Order3.class.getSuperclass().getDeclaredField("playerList");
field.setAccessible(true);
List<OrderPlayer> values =(ArrayList<OrderPlayer>)field.get(order);
String userPulled=order.pull().getUserName(); Player p1 = new Player(usr1);
userPulled=order.pull().getUserName(); Player p2 = new Player(usr2);
userPulled=order.pull().getUserName(); Player p3 = new Player(usr3);
Order3 order = new Order3(new ArrayList<>(Arrays.asList(p1, p2, p3)));
order.push(p1); 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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
order.pull();
order.pull();
order.pull();
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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
order.push(p3);
order.push(p2); order.push(p2);
values =(ArrayList<OrderPlayer>)field.get(order); order.push(p1);
// assertEquals("TURN ORDER\n" +
// "╔════════════════════════════════════╦════════════════════════════════════╦════════════════════════════════════╗\n" + assertTrue(order.toString().contains(usr1));
// "║ 0. ║ 1. "+values.get(1).getUserName() +"║ 2. "+values.get(2).getUserName()+"║\n" + assertTrue(order.toString().contains(usr2));
// "║ +2 Food ║ -- ║ -1 Food / -2 Prestige ║\n"+ assertTrue(order.toString().contains(usr3));
// "╚════════════════════════════════════╩════════════════════════════════════╩════════════════════════════════════╝\n", order.toString()); assertTrue(order.toString().contains("+2 Food"));
assertTrue(order.toString().contains("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
//TODO testare IndexOutOfBoundsException
} }
} }
@@ -274,12 +274,65 @@ class Order4Test {
@Test @Test
void toStringTest() throws NoSuchFieldException, IllegalAccessException { void toStringTest() throws NoSuchFieldException, IllegalAccessException {
Player p1 = new Player("wPIshNQhiOpRRnIBFfM89s2$@q$9FGbz"); String usr1 = "wPIshEUhiOpRRnIBFfM89s2$@q$9FGbz";
Player p2 = new Player("L*Ncw1rjjrF2xn%H@4P1iC@&NNIooQQk"); String usr2 = "L*Ncw1rjjrF2xn%H@4P1iC@&NNIooQQk";
Player p3 = new Player("wPIshEUhiOpRRnIBFfM89s2$@q$9FGbz"); String usr3 = "L*Ncw1rjjrF2xn%H@4d1iC@&NNIooQQk";
Player p4 = new Player("wPIshOThiOpRRnIBFfM89s2$@q$9FGbz"); String usr4 = "L*Ncw1rjkrF2xn%H@4d1iC@&NNIooQQk";
Order4 order = new Order4(new ArrayList<>(Arrays.asList(p1, p2,p3,p4)));
String userPulled=order.pull().getUserName();
Player p1 = new Player(usr1);
Player p2 = new Player(usr2);
Player p3 = new Player(usr3);
Player p4 = new Player(usr4);
Order4 order = new Order4(new ArrayList<>(Arrays.asList(p1, p2, p3, p4)));
assertTrue(order.toString().contains(usr1));
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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
order.pull();
order.pull();
order.pull();
order.pull();
assertFalse(order.toString().contains(usr1));
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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
order.push(p4);
order.push(p3);
order.push(p2);
order.push(p1);
assertTrue(order.toString().contains(usr1));
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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
order.pull().getUserName();
assertTrue(order.toString().contains(usr1));
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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
//TODO testare IndexOutOfBoundsException
} }
} }
@@ -369,19 +369,74 @@ class Order5Test {
} }
@Test @Test
void toStringTest() throws NoSuchFieldException, IllegalAccessException { void toStringTest() throws NoSuchFieldException, IllegalAccessException {
Player p1 = new Player("wPIshUEhiOpRRnIBFfM89s2$@q$9FGbz"); String usr1 = "wPIshEUhiOpRRnIBFfM89s2$@q$9FGbz";
Player p2 = new Player("L*Ncw1rjjrF2xn%H@4P1iC@&NNIooQQk"); String usr2 = "L*Ncw1rjjrF2xn%H@4P1iC@&NNIooQQk";
Player p3 = new Player("wPIshOUhiOpRRnIBFfM89s2$@q$9FGbz"); String usr3 = "L*Ncw1rjjrF2xn%H@4d1iC@&NNIooQQk";
Player p4 = new Player("wPIshNUhiOpRRnIBFfM89s2$@q$9FGbz"); String usr4 = "L*Ncw1rjkrF2xn%H@4d1iC@&NNIooQQk";
Player p5 = new Player("wPIshKUhiOpRRnIBFfM89s2$@q$9FGbz"); String usr5 = "L*pcw1rjjrF2xn%H@4d1iC@&NNIooQQk";
Order5 order = new Order5(new ArrayList<>(Arrays.asList(p1, p2,p3,p4,p5)));
Player p1 = new Player(usr1);
Player p2 = new Player(usr2);
Player p3 = new Player(usr3);
Player p4 = new Player(usr4);
Player p5 = new Player(usr5);
Order5 order = new Order5(new ArrayList<>(Arrays.asList(p1, p2, p3, p4, p5)));
assertTrue(order.toString().contains(usr1));
assertTrue(order.toString().contains(usr2));
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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
order.pull(); order.pull();
order.pull(); order.pull();
order.pull(); order.pull();
order.pull(); order.pull();
order.pull(); order.pull();
assertFalse(order.toString().contains(usr1));
assertFalse(order.toString().contains(usr2));
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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
order.push(p5);
order.push(p4);
order.push(p3);
order.push(p2);
order.push(p1); order.push(p1);
assertTrue(order.toString().contains(usr1));
assertTrue(order.toString().contains(usr2));
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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
order.pull();
assertTrue(order.toString().contains(usr1));
assertTrue(order.toString().contains(usr2));
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("--"));
assertTrue(order.toString().contains("-1 Food / -2 PP"));
//TODO capire come è testato IndexOutOfBoundsExceptions
} }
} }
@@ -0,0 +1,26 @@
package it.polimi.ingsw.gc14.Model.Orders;
import it.polimi.ingsw.gc14.Model.Player;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class OrderPlayerTest {
@Test
void toStringShouldReturnUsernameAndPlayedStatusTrue() {
Player player = new Player("Marco");
OrderPlayer orderPlayer = new OrderPlayer(player, true);
assertEquals("Marco true", orderPlayer.toString());
}
@Test
void toStringShouldReturnUsernameAndPlayedStatusFalse() {
Player player = new Player("Luca");
OrderPlayer orderPlayer = new OrderPlayer(player, false);
assertEquals("Luca false", orderPlayer.toString());
}
}