diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java index a85898b..82d10b6 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java @@ -62,7 +62,7 @@ public abstract class EventCard extends TribeCard { */ @Override public String toString() { - return super.toString()+" "+type.toString(); + return super.toString()+", "+type.toString(); } /** diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java index 7620a12..cfe472d 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java @@ -70,4 +70,5 @@ public class Hunt extends EventCard { public EventCard clone() { return new Hunt(getEra(), prestigeMultiplier); } + } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/GamePackage/Board.java b/src/main/java/it/polimi/ingsw/gc14/Model/GamePackage/Board.java index c495c12..55a17ee 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/GamePackage/Board.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/GamePackage/Board.java @@ -63,6 +63,11 @@ public class Board implements Serializable { return this.tribeDeck.size(); } + /** + * @return the game era + */ + public int getEra() {return this.era;} + /** * Creates and initializes a new board: @@ -234,7 +239,7 @@ public class Board implements Serializable { upperListBuilding.addAll( buildingCards.subList(0,3)); } } - else if(era==3) + else // Era 3 { if(nTotem==2) { 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 1288aee..387eb1a 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 @@ -13,7 +13,7 @@ public class Order2 extends OrderLogicCard { * @param players the list of players associated with this order card. * @throws NoSuchElementException if the number of players is not equal to 2. */ - public Order2(ArrayList players)throws NoSuchElementException { + public Order2(ArrayList players) throws NoSuchElementException { if(players.size()!=2) throw new NoSuchElementException(); super(players); 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 e8fb1b1..afe9457 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 @@ -79,6 +79,7 @@ class BuilderTest { @Test void constructorWithNMinTest() { + // Correct case Builder b = new Builder(1, 2, 3, 4); assertEquals(1, b.getEra()); @@ -87,6 +88,12 @@ class BuilderTest { assertEquals(3, b.getPrestigeValue()); assertEquals(4, b.getNMin()); assertFalse(b.IsEventCard()); + + // Wrong reductionValue + assertThrows(IllegalArgumentException.class, () -> {new Builder(1, -1, 3, 4);}); + + // Wrong prestigeValue + assertThrows(IllegalArgumentException.class, () -> {new Builder(1, 2, -1, 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 f8b1113..d0c695a 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 @@ -105,4 +105,12 @@ class CavePaintingsTest { assertEquals(1, cv2.getEra()); assertEquals(EventType.CAVE_PAINTINGS, cv2.getType()); } + + @Test + @DisplayName("ToString testing") + void toStringTest() { + CavePaintings cv1 = new CavePaintings(1, 1,1,1); + + assertEquals("Era:1, CAVE_PAINTINGS", cv1.toString()); + } } \ 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 4c416a0..c38d1b0 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 @@ -107,4 +107,12 @@ class HuntTest { assertEquals(1, h2.getEra()); assertEquals(EventType.HUNT, h2.getType()); } + + @Test + @DisplayName("ToString testing") + void toStringTest() { + Hunt h1 = new Hunt(1, 3); + + assertEquals("Era:1, HUNT", h1.toString()); + } } \ 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 6d16b66..0b7fd6c 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 @@ -206,4 +206,12 @@ class ShamanicRitualTest { assertEquals(prestigeToRemove, sr2.prestigeToRemove); } + + @Test + @DisplayName("ToString testing") + void toStringTest() { + ShamanicRitual sr1 = new ShamanicRitual(1, 5,2); + + assertEquals("Era:1, SHAMANIC_RITUAL", sr1.toString()); + } } \ 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 e7ea67e..7dc452d 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 @@ -116,6 +116,14 @@ class SustenanceTest { assertEquals(EventType.SUSTENANCE, s2.getType()); assertEquals(prestigeDebt, s2.getPrestigeDebt()); } + + @Test + @DisplayName("ToString testing") + void toStringTest() { + Sustenance s1 = new Sustenance(1, 5); + + assertEquals("Era:1, SUSTENANCE", s1.toString()); + } } diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/GamePackage/BoardTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/GamePackage/BoardTest.java index 5d69a76..f270740 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/GamePackage/BoardTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/GamePackage/BoardTest.java @@ -82,6 +82,13 @@ class BoardTest { assertEquals(94 + 2 - (5+4) - (5+1), bd5.getTribeDeckSize()); } + @Test + @DisplayName("Testing era getter") + void getEra() { + Board bd = new Board(3); + assertEquals(1, bd.getEra()); + } + @Test @DisplayName("Testing constructor") void testConstructor() { @@ -159,15 +166,16 @@ class BoardTest { @DisplayName("Removing a card from lower row of building cards") void removeLowerBuildingCard() { Board bd = new Board(3); - bd.lowerListBuilding.add(new BuildingCard(2, 1, 5, 10)); - bd.lowerListBuilding.add(new BuildingCard(3, 2, 2, 1)); + for (int i=0;i<3;i++) { + bd.nextRound(); // Skip to era 2 + } List before = bd.lowerListBuilding; BuildingCard cardToRemove = before.get(0); before.remove(0); - bd.removeUpperBuildingCard(cardToRemove); + bd.removeLowerBuildingCard(cardToRemove); assertEquals(before, bd.lowerListBuilding); } @@ -186,4 +194,89 @@ class BoardTest { assertEquals(numPlayer+4, bd.upperListTribe.size()); // Verifica che la nuova dimensione della lista superiore sia corretta } + @Test + @DisplayName("Testing nextEra") + void nextEra() { + // Since nextEra is private, it must be tested through nextRound. + // In this test we simulate multiple rounds to trigger the next era activation. + // NOTE: after 3 rounds we are in era 2. After 6 we are in era 3. + int numPlayer; + List upperListBefore; + + // Era 2, nTotem <= 3 + numPlayer = 3; + Board bd1 = new Board(numPlayer); + upperListBefore = new ArrayList<>(bd1.upperListBuilding); + for (int i=0;i<3;i++) { + bd1.nextRound(); // Skip to era 2 + } + assertEquals(2, bd1.getEra()); + assertEquals(upperListBefore, bd1.lowerListBuilding); + assertNotEquals(upperListBefore, bd1.upperListBuilding); + assertEquals(2, bd1.upperListBuilding.size()); + + + // Era 2, nTotem > 3 + numPlayer = 4; + Board bd2 = new Board(numPlayer); + upperListBefore = new ArrayList<>(bd2.upperListBuilding); + for (int i=0;i<3;i++) { + bd2.nextRound(); // Skip to era 2 + } + assertEquals(2, bd2.getEra()); + assertEquals(upperListBefore, bd2.lowerListBuilding); + assertNotEquals(upperListBefore, bd2.upperListBuilding); + assertEquals(3, bd2.upperListBuilding.size()); + + + // Era 3, nTotem == 2 + numPlayer = 2; + Board bd3 = new Board(numPlayer); + for (int i=0;i<3;i++) { + bd3.nextRound(); // Skip to era 2 + } + upperListBefore = new ArrayList<>(bd3.upperListBuilding); // We need to take the list of the era 2 + for (int i=0;i<3;i++) { + bd3.nextRound(); // Skip to era 3 + } + assertEquals(3, bd3.getEra()); + assertEquals(upperListBefore, bd3.lowerListBuilding); + assertNotEquals(upperListBefore, bd3.upperListBuilding); + assertEquals(3, bd3.upperListBuilding.size()); + + + // Era 3, nTotem == 5 + numPlayer = 5; + Board bd4 = new Board(numPlayer); + for (int i=0;i<3;i++) { + bd4.nextRound(); // Skip to era 2 + } + upperListBefore = new ArrayList<>(bd4.upperListBuilding); // We need to take the list of the era 2 + for (int i=0;i<3;i++) { + bd4.nextRound(); // Skip to era 3 + } + assertEquals(3, bd4.getEra()); + assertEquals(upperListBefore, bd4.lowerListBuilding); + assertNotEquals(upperListBefore, bd4.upperListBuilding); + assertEquals(5, bd4.upperListBuilding.size()); + + + // Era 3, nTotem != 2, 5 + numPlayer = 3; + Board bd5 = new Board(numPlayer); + for (int i=0;i<3;i++) { + bd5.nextRound(); // Skip to era 2 + } + upperListBefore = new ArrayList<>(bd5.upperListBuilding); // We need to take the list of the era 2 + for (int i=0;i<3;i++) { + bd5.nextRound(); // Skip to era 3 + } + assertEquals(3, bd5.getEra()); + assertEquals(upperListBefore, bd5.lowerListBuilding); + assertNotEquals(upperListBefore, bd5.upperListBuilding); + assertEquals(4, bd5.upperListBuilding.size()); + + + } + } \ No newline at end of file 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 fb85436..f089711 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 @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Orders; import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import it.polimi.ingsw.gc14.Model.Player; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Arrays; @@ -10,6 +11,16 @@ import static org.junit.jupiter.api.Assertions.*; class Order2Test { + @Test + @DisplayName("Testing Order2 constructor with wrong number of player") + void constructorTest() { + Player p1 = new Player("p1"); + ArrayList players = new ArrayList<>(); + players.add(p1); + assertThrows(NoSuchElementException.class, () -> {new Order2(players);}); + } + + @Test void firstReturnGetsFood() { Player p1 = new Player("p1"); 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 ac80397..d5cb5d4 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 @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Orders; import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import it.polimi.ingsw.gc14.Model.Player; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Arrays; @@ -10,6 +11,15 @@ import static org.junit.jupiter.api.Assertions.*; class Order3Test { + @Test + @DisplayName("Testing Order3 constructor with wrong number of player") + void constructorTest() { + Player p1 = new Player("p1"); + ArrayList players = new ArrayList<>(); + players.add(p1); + assertThrows(NoSuchElementException.class, () -> {new Order3(players);}); + } + @Test void firstReturnGetsFood() { Player p1 = new Player("p1"); 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 e1e805d..3ae1ac2 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 @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Orders; import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import it.polimi.ingsw.gc14.Model.Player; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Arrays; @@ -10,6 +11,15 @@ import static org.junit.jupiter.api.Assertions.*; class Order4Test { + @Test + @DisplayName("Testing Order4 constructor with wrong number of player") + void constructorTest() { + Player p1 = new Player("p1"); + ArrayList players = new ArrayList<>(); + players.add(p1); + assertThrows(NoSuchElementException.class, () -> {new Order4(players);}); + } + @Test void firstReturnGetsFood() { Player p1 = new Player("p1"); 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 380f1c5..929bc6a 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 @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Orders; import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import it.polimi.ingsw.gc14.Model.Player; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import java.util.*; @@ -15,6 +16,15 @@ import static org.junit.jupiter.api.Assertions.*; class Order5Test { + @Test + @DisplayName("Testing Order5 constructor with wrong number of player") + void constructorTest() { + Player p1 = new Player("p1"); + ArrayList players = new ArrayList<>(); + players.add(p1); + assertThrows(NoSuchElementException.class, () -> {new Order5(players);}); + } + @Test void firstReturnGetsFood() { Player p1 = new Player("p1");