diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building0Test.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building0Test.java index f0c5efe..1145cd4 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building0Test.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building0Test.java @@ -16,8 +16,8 @@ class Building0Test { // Corretta creazione / esecuzione building card Building0 b0 = new Building0(1, 1); Player p = new Player("test"); + p.addFood(b0.getPrice()); b0.buy(p); - p.buildingCards.add(b0); b0.applyEffect(p); assertEquals(0, p.getFoodValue()); diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building10Test.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building10Test.java new file mode 100644 index 0000000..80d673b --- /dev/null +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building10Test.java @@ -0,0 +1,69 @@ +package it.polimi.ingsw.gc14.Model.Cards.Building.Effects; + +import it.polimi.ingsw.gc14.Model.Cards.TribeCard; +import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.*; +import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events.Hunt; +import it.polimi.ingsw.gc14.Model.Player; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; + +import static org.junit.jupiter.api.Assertions.*; + +class Building10Test { + + @Test + void applyEffect() { + Building10 b10 = new Building10(1, 1); + Player p = new Player("test"); + p.addPrestige(b10.getPrice()); + b10.buy(p); + + int Era = 1; + int Nset = 2; + + ArrayList Artists = new ArrayList<>(); + ArrayList Builders = new ArrayList<>(); + ArrayList Gatherers = new ArrayList<>(); + ArrayList Hunters = new ArrayList<>(); + ArrayList Inventors = new ArrayList<>(); + ArrayList Shamans = new ArrayList<>(); + + for(int i = 1; i < Nset; i++) { + Artists.add(new Artist(Era)); + Builders.add(new Builder(Era, 0, 0)); + Gatherers.add(new Gatherers(Era)); + Hunters.add(new Hunter(Era, true)); + Inventors.add(new Inventor(Era, 1)); + Shamans.add(new Shaman(Era, 1)); + } + + p.artists.addAll(Artists); + p.builders.addAll(Builders); + p.gatherers.addAll(Gatherers); + p.hunters.addAll(Hunters); + p.inventors.addAll(Inventors); + p.shamans.addAll(Shamans); + b10.applyEffect(p); + + assertEquals(Nset * 6, p.getFoodValue()); + } + + @Test + void applyEffectException() { + assertThrows(IllegalArgumentException.class, () -> { + Building10 b10 = new Building10(1, 1); + Player p = new Player("test"); + b10.applyEffect(p); + }); + } + + @Test + void applyEffectMultiplePlayerException() { + Building10 b10 = new Building10(1, 1); + Player p1 = new Player("test1"); + Player p2 = new Player("test2"); + b10.buy(p1); + assertFalse(b10.buy(p2)); + } +} \ No newline at end of file diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building13Test.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building13Test.java index f3367e7..a645164 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building13Test.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building13Test.java @@ -41,6 +41,8 @@ class Building13Test { Player p1 = new Player("gigi"); p1.addPrestige(10); Building13 b1 = new Building13(1, 10); + b1.buy(p1); + p1.buildingCards.add(b1); b1.applyEffect(p1); assertEquals(35, p1.getPrestigeValue()); } diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building8Test.java b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building8Test.java new file mode 100644 index 0000000..cf73767 --- /dev/null +++ b/src/test/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building8Test.java @@ -0,0 +1,34 @@ +package it.polimi.ingsw.gc14.Model.Cards.Building.Effects; + +import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.Builder; +import it.polimi.ingsw.gc14.Model.Player; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class Building8Test { + + @Test + void applyEffect() { + Building8 b8 = new Building8(1, 1); + Player p = new Player("test"); + p.addFood(b8.getPrice()); + b8.buy(p); + + int Era = 1; + int PrestigeMul = 1; + Builder builder1 = new Builder(Era, 1, PrestigeMul); + p.builders.add(builder1); + + b8.applyEffect(p); + + 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()); + + Builder b2 = new Builder(Era, 1, PrestigeMul); + p.builders.add(b2); + b8.applyEffect(p); + + assertEquals(2 + 4, p.getPrestigeValue()); + } +} \ No newline at end of file