@@ -1,55 +1,141 @@
|
|||||||
package it.polimi.ingsw.gc14.Model.Orders;
|
package it.polimi.ingsw.gc14.Model.Orders;
|
||||||
|
|
||||||
|
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
|
||||||
import it.polimi.ingsw.gc14.Model.Player;
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
class Order2Test {
|
class Order2Test {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectZero() {
|
void firstReturnGetsFood() {
|
||||||
Player p = new Player("p1");
|
Player p1 = new Player("p1");
|
||||||
Order2 order = new Order2(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
Order2 order = new Order2(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
|
Player secondToAct = order.pull();
|
||||||
|
|
||||||
order.effect(p, 0);
|
int initialFood = firstToAct.getFoodValue();
|
||||||
|
order.push(firstToAct);
|
||||||
|
|
||||||
assertEquals(initialFood + 1, p.getFoodValue());
|
assertEquals(initialFood + 1, firstToAct.getFoodValue());
|
||||||
|
assertEquals(firstToAct, order.getFirst());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectOneWithFood() {
|
void secondReturnPaysFood() {
|
||||||
Player p = new Player("p1");
|
Player p1 = new Player("p1");
|
||||||
Order2 order = new Order2(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
Order2 order = new Order2(players);
|
||||||
|
|
||||||
p.addFood(1);
|
Player firstToAct = order.pull();
|
||||||
int initialPrestige = p.getPrestigeValue();
|
Player secondToAct = order.pull();
|
||||||
|
|
||||||
order.effect(p, 1);
|
secondToAct.addFood(1);
|
||||||
|
int initialPrestige = secondToAct.getPrestigeValue();
|
||||||
|
|
||||||
assertEquals(0, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(initialPrestige, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
|
||||||
|
assertEquals(0, secondToAct.getFoodValue());
|
||||||
|
assertEquals(initialPrestige, secondToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectOneWithoutFood() {
|
void secondReturnLosesPrestige() {
|
||||||
Player p = new Player("p1");
|
Player p1 = new Player("p1");
|
||||||
Order2 order = new Order2(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
Order2 order = new Order2(players);
|
||||||
|
|
||||||
p.addPrestige(3);
|
Player firstToAct = order.pull();
|
||||||
|
Player secondToAct = order.pull();
|
||||||
|
|
||||||
order.effect(p, 1);
|
secondToAct.addPrestige(3);
|
||||||
|
|
||||||
assertEquals(0, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(1, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
|
||||||
|
assertEquals(0, secondToAct.getFoodValue());
|
||||||
|
assertEquals(1, secondToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectWrongIndexHigh() {
|
void firstReturnWithBuilding() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
Order2 order = new Order2(players);
|
||||||
|
|
||||||
|
Player firstToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
|
firstToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2));
|
||||||
|
|
||||||
|
order.push(firstToAct);
|
||||||
|
|
||||||
|
assertEquals(2, firstToAct.getFoodValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void thirdPlayerThrows() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
Order2 order = new Order2(players);
|
||||||
|
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
|
order.push(p1);
|
||||||
|
order.push(p2);
|
||||||
|
|
||||||
|
assertThrows(IndexOutOfBoundsException.class, () -> order.push(p3));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void constructorLoadsPlayers() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
|
||||||
|
Order2 order = new Order2(players);
|
||||||
|
|
||||||
|
Player firstOut = order.pull();
|
||||||
|
Player secondOut = order.pull();
|
||||||
|
|
||||||
|
assertTrue((firstOut == p1 && secondOut == p2) || (firstOut == p2 && secondOut == p1));
|
||||||
|
assertThrows(NoSuchElementException.class, order::pull);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void wrongIndexLow() {
|
||||||
|
Player p = new Player("p1");
|
||||||
|
Order2 order = new Order2(new ArrayList<>());
|
||||||
|
|
||||||
|
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, -1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void wrongIndexHigh() {
|
||||||
Player p = new Player("p1");
|
Player p = new Player("p1");
|
||||||
Order2 order = new Order2(new ArrayList<>());
|
Order2 order = new Order2(new ArrayList<>());
|
||||||
|
|
||||||
@@ -57,10 +143,15 @@ class Order2Test {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectWrongIndexLow() {
|
void getFirst() {
|
||||||
Player p = new Player("p1");
|
Player p1 = new Player("p1");
|
||||||
Order2 order = new Order2(new ArrayList<>());
|
Order2 order = new Order2(new ArrayList<>());
|
||||||
|
|
||||||
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, -1));
|
assertNull(order.getFirst());
|
||||||
|
|
||||||
|
order.push(p1);
|
||||||
|
|
||||||
|
assertEquals(p1, order.getFirst());
|
||||||
|
assertEquals(p1, order.getFirst());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,80 +1,209 @@
|
|||||||
package it.polimi.ingsw.gc14.Model.Orders;
|
package it.polimi.ingsw.gc14.Model.Orders;
|
||||||
|
|
||||||
|
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
|
||||||
import it.polimi.ingsw.gc14.Model.Player;
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
class Order3Test {
|
class Order3Test {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectZero() {
|
void firstReturnGetsFood() {
|
||||||
Player p = new Player("Luca");
|
Player p1 = new Player("p1");
|
||||||
Order3 order = new Order3(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
Order3 order = new Order3(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
order.effect(p, 0);
|
int initialFood = firstToAct.getFoodValue();
|
||||||
|
order.push(firstToAct);
|
||||||
|
|
||||||
assertEquals(initialFood + 2, p.getFoodValue());
|
assertEquals(initialFood + 2, firstToAct.getFoodValue());
|
||||||
|
assertEquals(firstToAct, order.getFirst());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectOne() {
|
void secondReturnNoEffect() {
|
||||||
Player p = new Player("Mario");
|
Player p1 = new Player("p1");
|
||||||
Order3 order = new Order3(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
Order3 order = new Order3(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
int initialPrestige = p.getPrestigeValue();
|
Player secondToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
order.effect(p, 1);
|
int initialFood = secondToAct.getFoodValue();
|
||||||
|
int initialPrestige = secondToAct.getPrestigeValue();
|
||||||
|
|
||||||
assertEquals(initialFood, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(initialPrestige, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
|
||||||
|
assertEquals(initialFood, secondToAct.getFoodValue());
|
||||||
|
assertEquals(initialPrestige, secondToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectTwoWithFood() {
|
void thirdReturnPaysFoodAndLosesPrestige() {
|
||||||
Player p = new Player("Gabriele");
|
Player p1 = new Player("p1");
|
||||||
Order3 order = new Order3(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
Order3 order = new Order3(players);
|
||||||
|
|
||||||
p.addFood(1);
|
Player firstToAct = order.pull();
|
||||||
|
Player secondToAct = order.pull();
|
||||||
|
Player thirdToAct = order.pull();
|
||||||
|
|
||||||
order.effect(p, 2);
|
thirdToAct.addFood(1);
|
||||||
|
|
||||||
assertEquals(0, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(-2, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
order.push(thirdToAct);
|
||||||
|
|
||||||
|
assertEquals(0, thirdToAct.getFoodValue());
|
||||||
|
assertEquals(-2, thirdToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectTwoWithoutFood() {
|
void thirdReturnWithoutFoodNoEffect() {
|
||||||
Player p = new Player("Giorgio");
|
Player p1 = new Player("p1");
|
||||||
Order3 order = new Order3(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
Order3 order = new Order3(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
int initialPrestige = p.getPrestigeValue();
|
Player secondToAct = order.pull();
|
||||||
|
Player thirdToAct = order.pull();
|
||||||
|
|
||||||
order.effect(p, 2);
|
int initialFood = thirdToAct.getFoodValue();
|
||||||
|
int initialPrestige = thirdToAct.getPrestigeValue();
|
||||||
|
|
||||||
assertEquals(initialFood, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(initialPrestige, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
order.push(thirdToAct);
|
||||||
|
|
||||||
|
assertEquals(initialFood, thirdToAct.getFoodValue());
|
||||||
|
assertEquals(initialPrestige, thirdToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectWrongIndexHigh() {
|
void firstReturnWithBuilding() {
|
||||||
Player p = new Player("Luca");
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
Order3 order = new Order3(players);
|
||||||
|
|
||||||
|
Player firstToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
|
firstToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2));
|
||||||
|
|
||||||
|
order.push(firstToAct);
|
||||||
|
|
||||||
|
assertEquals(3, firstToAct.getFoodValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void fourthPlayerThrows() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
Order3 order = new Order3(players);
|
||||||
|
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
|
order.push(p1);
|
||||||
|
order.push(p2);
|
||||||
|
order.push(p3);
|
||||||
|
|
||||||
|
assertThrows(IndexOutOfBoundsException.class, () -> order.push(p4));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void constructorLoadsPlayers() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
|
||||||
|
Order3 order = new Order3(players);
|
||||||
|
|
||||||
|
Player firstOut = order.pull();
|
||||||
|
Player secondOut = order.pull();
|
||||||
|
Player thirdOut = order.pull();
|
||||||
|
|
||||||
|
assertTrue(firstOut == p1 || firstOut == p2 || firstOut == p3);
|
||||||
|
assertTrue(secondOut == p1 || secondOut == p2 || secondOut == p3);
|
||||||
|
assertTrue(thirdOut == p1 || thirdOut == p2 || thirdOut == p3);
|
||||||
|
assertNotEquals(firstOut, secondOut);
|
||||||
|
assertNotEquals(firstOut, thirdOut);
|
||||||
|
assertNotEquals(secondOut, thirdOut);
|
||||||
|
assertThrows(NoSuchElementException.class, order::pull);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void wrongIndexLow() {
|
||||||
|
Player p = new Player("p1");
|
||||||
|
Order3 order = new Order3(new ArrayList<>());
|
||||||
|
|
||||||
|
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, -1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void wrongIndexHigh() {
|
||||||
|
Player p = new Player("p1");
|
||||||
Order3 order = new Order3(new ArrayList<>());
|
Order3 order = new Order3(new ArrayList<>());
|
||||||
|
|
||||||
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, 3));
|
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, 3));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectWrongIndexLow() {
|
void getFirst() {
|
||||||
Player p = new Player("Luca");
|
Player p1 = new Player("p1");
|
||||||
Order3 order = new Order3(new ArrayList<>());
|
Order3 order = new Order3(new ArrayList<>());
|
||||||
|
|
||||||
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, -1));
|
assertNull(order.getFirst());
|
||||||
|
|
||||||
|
order.push(p1);
|
||||||
|
|
||||||
|
assertEquals(p1, order.getFirst());
|
||||||
|
assertEquals(p1, order.getFirst());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,92 +1,291 @@
|
|||||||
package it.polimi.ingsw.gc14.Model.Orders;
|
package it.polimi.ingsw.gc14.Model.Orders;
|
||||||
|
|
||||||
|
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
|
||||||
import it.polimi.ingsw.gc14.Model.Player;
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
class Order4Test {
|
class Order4Test {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectZero() {
|
void firstReturnGetsFood() {
|
||||||
Player p = new Player("Marco");
|
Player p1 = new Player("p1");
|
||||||
Order4 order = new Order4(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
Order4 order = new Order4(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
order.effect(p, 0);
|
int initialFood = firstToAct.getFoodValue();
|
||||||
|
order.push(firstToAct);
|
||||||
|
|
||||||
assertEquals(initialFood + 2, p.getFoodValue());
|
assertEquals(initialFood + 2, firstToAct.getFoodValue());
|
||||||
|
assertEquals(firstToAct, order.getFirst());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectOne() {
|
void secondReturnGetsFood() {
|
||||||
Player p = new Player("Luca");
|
Player p1 = new Player("p1");
|
||||||
Order4 order = new Order4(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
Order4 order = new Order4(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
|
Player secondToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
order.effect(p, 1);
|
int initialFood = secondToAct.getFoodValue();
|
||||||
|
|
||||||
assertEquals(initialFood + 1, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
|
order.push(secondToAct);
|
||||||
|
|
||||||
|
assertEquals(initialFood + 1, secondToAct.getFoodValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectTwo() {
|
void thirdReturnNoEffect() {
|
||||||
Player p = new Player("Antonio");
|
Player p1 = new Player("p1");
|
||||||
Order4 order = new Order4(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
Order4 order = new Order4(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
int initialPrestige = p.getPrestigeValue();
|
Player secondToAct = order.pull();
|
||||||
|
Player thirdToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
order.effect(p, 2);
|
int initialFood = thirdToAct.getFoodValue();
|
||||||
|
int initialPrestige = thirdToAct.getPrestigeValue();
|
||||||
|
|
||||||
assertEquals(initialFood, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(initialPrestige, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
order.push(thirdToAct);
|
||||||
|
|
||||||
|
assertEquals(initialFood, thirdToAct.getFoodValue());
|
||||||
|
assertEquals(initialPrestige, thirdToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectThreeWithFood() {
|
void fourthReturnPaysFoodAndLosesPrestige() {
|
||||||
Player p = new Player("Giovanni");
|
Player p1 = new Player("p1");
|
||||||
Order4 order = new Order4(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
Order4 order = new Order4(players);
|
||||||
|
|
||||||
p.addFood(1);
|
Player firstToAct = order.pull();
|
||||||
|
Player secondToAct = order.pull();
|
||||||
|
Player thirdToAct = order.pull();
|
||||||
|
Player fourthToAct = order.pull();
|
||||||
|
|
||||||
order.effect(p, 3);
|
fourthToAct.addFood(1);
|
||||||
|
|
||||||
assertEquals(0, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(-2, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
order.push(thirdToAct);
|
||||||
|
order.push(fourthToAct);
|
||||||
|
|
||||||
|
assertEquals(0, fourthToAct.getFoodValue());
|
||||||
|
assertEquals(-2, fourthToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectThreeWithoutFood() {
|
void fourthReturnWithoutFoodNoEffect() {
|
||||||
Player p = new Player("test");
|
Player p1 = new Player("p1");
|
||||||
Order4 order = new Order4(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
Order4 order = new Order4(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
int initialPrestige = p.getPrestigeValue();
|
Player secondToAct = order.pull();
|
||||||
|
Player thirdToAct = order.pull();
|
||||||
|
Player fourthToAct = order.pull();
|
||||||
|
|
||||||
order.effect(p, 3);
|
int initialFood = fourthToAct.getFoodValue();
|
||||||
|
int initialPrestige = fourthToAct.getPrestigeValue();
|
||||||
|
|
||||||
assertEquals(initialFood, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(initialPrestige, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
order.push(thirdToAct);
|
||||||
|
order.push(fourthToAct);
|
||||||
|
|
||||||
|
assertEquals(initialFood, fourthToAct.getFoodValue());
|
||||||
|
assertEquals(initialPrestige, fourthToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectWrongIndexHigh() {
|
void firstReturnWithBuilding() {
|
||||||
Player p = new Player("Marco");
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
Order4 order = new Order4(players);
|
||||||
|
|
||||||
|
Player firstToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
|
firstToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2));
|
||||||
|
|
||||||
|
order.push(firstToAct);
|
||||||
|
|
||||||
|
assertEquals(3, firstToAct.getFoodValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void secondReturnWithBuilding() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
Order4 order = new Order4(players);
|
||||||
|
|
||||||
|
Player firstToAct = order.pull();
|
||||||
|
Player secondToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
|
secondToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2));
|
||||||
|
|
||||||
|
order.push(firstToAct);
|
||||||
|
order.push(secondToAct);
|
||||||
|
|
||||||
|
assertEquals(2, secondToAct.getFoodValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void fifthPlayerThrows() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
Order4 order = new Order4(players);
|
||||||
|
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
|
order.push(p1);
|
||||||
|
order.push(p2);
|
||||||
|
order.push(p3);
|
||||||
|
order.push(p4);
|
||||||
|
|
||||||
|
assertThrows(IndexOutOfBoundsException.class, () -> order.push(p5));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void constructorLoadsPlayers() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
|
||||||
|
Order4 order = new Order4(players);
|
||||||
|
|
||||||
|
Player firstOut = order.pull();
|
||||||
|
Player secondOut = order.pull();
|
||||||
|
Player thirdOut = order.pull();
|
||||||
|
Player fourthOut = order.pull();
|
||||||
|
|
||||||
|
assertTrue(firstOut == p1 || firstOut == p2 || firstOut == p3 || firstOut == p4);
|
||||||
|
assertTrue(secondOut == p1 || secondOut == p2 || secondOut == p3 || secondOut == p4);
|
||||||
|
assertTrue(thirdOut == p1 || thirdOut == p2 || thirdOut == p3 || thirdOut == p4);
|
||||||
|
assertTrue(fourthOut == p1 || fourthOut == p2 || fourthOut == p3 || fourthOut == p4);
|
||||||
|
|
||||||
|
assertNotEquals(firstOut, secondOut);
|
||||||
|
assertNotEquals(firstOut, thirdOut);
|
||||||
|
assertNotEquals(firstOut, fourthOut);
|
||||||
|
assertNotEquals(secondOut, thirdOut);
|
||||||
|
assertNotEquals(secondOut, fourthOut);
|
||||||
|
assertNotEquals(thirdOut, fourthOut);
|
||||||
|
|
||||||
|
assertThrows(NoSuchElementException.class, order::pull);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void wrongIndexLow() {
|
||||||
|
Player p = new Player("p1");
|
||||||
|
Order4 order = new Order4(new ArrayList<>());
|
||||||
|
|
||||||
|
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, -1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void wrongIndexHigh() {
|
||||||
|
Player p = new Player("p1");
|
||||||
Order4 order = new Order4(new ArrayList<>());
|
Order4 order = new Order4(new ArrayList<>());
|
||||||
|
|
||||||
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, 4));
|
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectWrongIndexLow() {
|
void getFirst() {
|
||||||
Player p = new Player("Marco");
|
Player p1 = new Player("p1");
|
||||||
Order4 order = new Order4(new ArrayList<>());
|
Order4 order = new Order4(new ArrayList<>());
|
||||||
|
|
||||||
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, -1));
|
assertNull(order.getFirst());
|
||||||
|
|
||||||
|
order.push(p1);
|
||||||
|
|
||||||
|
assertEquals(p1, order.getFirst());
|
||||||
|
assertEquals(p1, order.getFirst());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,109 +1,385 @@
|
|||||||
package it.polimi.ingsw.gc14.Model.Orders;
|
package it.polimi.ingsw.gc14.Model.Orders;
|
||||||
|
|
||||||
|
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
|
||||||
import it.polimi.ingsw.gc14.Model.Player;
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
class Order5Test {
|
class Order5Test {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectZero() {
|
void firstReturnGetsFood() {
|
||||||
Player p = new Player("Marco");
|
Player p1 = new Player("p1");
|
||||||
Order5 order = new Order5(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
players.add(p5);
|
||||||
|
Order5 order = new Order5(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
order.effect(p, 0);
|
int initialFood = firstToAct.getFoodValue();
|
||||||
|
order.push(firstToAct);
|
||||||
|
|
||||||
assertEquals(initialFood + 3, p.getFoodValue());
|
assertEquals(initialFood + 3, firstToAct.getFoodValue());
|
||||||
assertEquals(0, p.getPrestigeValue());
|
assertEquals(firstToAct, order.getFirst());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectOne() {
|
void secondReturnGetsFood() {
|
||||||
Player p = new Player("Luca");
|
Player p1 = new Player("p1");
|
||||||
Order5 order = new Order5(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
players.add(p5);
|
||||||
|
Order5 order = new Order5(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
int initialPrestige = p.getPrestigeValue();
|
Player secondToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
order.effect(p, 1);
|
int initialFood = secondToAct.getFoodValue();
|
||||||
|
|
||||||
assertEquals(initialFood + 1, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(initialPrestige, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
|
||||||
|
assertEquals(initialFood + 1, secondToAct.getFoodValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectTwo() {
|
void thirdReturnNoEffect() {
|
||||||
Player p = new Player("Antonio");
|
Player p1 = new Player("p1");
|
||||||
Order5 order = new Order5(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
players.add(p5);
|
||||||
|
Order5 order = new Order5(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
int initialPrestige = p.getPrestigeValue();
|
Player secondToAct = order.pull();
|
||||||
|
Player thirdToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
order.effect(p, 2);
|
int initialFood = thirdToAct.getFoodValue();
|
||||||
|
int initialPrestige = thirdToAct.getPrestigeValue();
|
||||||
|
|
||||||
assertEquals(initialFood, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(initialPrestige, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
order.push(thirdToAct);
|
||||||
|
|
||||||
|
assertEquals(initialFood, thirdToAct.getFoodValue());
|
||||||
|
assertEquals(initialPrestige, thirdToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectThree() {
|
void fourthReturnNoEffect() {
|
||||||
Player p = new Player("Giovanni");
|
Player p1 = new Player("p1");
|
||||||
Order5 order = new Order5(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
players.add(p5);
|
||||||
|
Order5 order = new Order5(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
int initialPrestige = p.getPrestigeValue();
|
Player secondToAct = order.pull();
|
||||||
|
Player thirdToAct = order.pull();
|
||||||
|
Player fourthToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
order.effect(p, 3);
|
int initialFood = fourthToAct.getFoodValue();
|
||||||
|
int initialPrestige = fourthToAct.getPrestigeValue();
|
||||||
|
|
||||||
assertEquals(initialFood, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(initialPrestige, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
order.push(thirdToAct);
|
||||||
|
order.push(fourthToAct);
|
||||||
|
|
||||||
|
assertEquals(initialFood, fourthToAct.getFoodValue());
|
||||||
|
assertEquals(initialPrestige, fourthToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectFourWithFood() {
|
void fifthReturnPaysFoodAndLosesPrestige() {
|
||||||
Player p = new Player("Francesco");
|
Player p1 = new Player("p1");
|
||||||
Order5 order = new Order5(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
players.add(p5);
|
||||||
|
Order5 order = new Order5(players);
|
||||||
|
|
||||||
p.addFood(1);
|
Player firstToAct = order.pull();
|
||||||
|
Player secondToAct = order.pull();
|
||||||
|
Player thirdToAct = order.pull();
|
||||||
|
Player fourthToAct = order.pull();
|
||||||
|
Player fifthToAct = order.pull();
|
||||||
|
|
||||||
order.effect(p, 4);
|
fifthToAct.addFood(1);
|
||||||
|
|
||||||
assertEquals(0, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(-2, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
order.push(thirdToAct);
|
||||||
|
order.push(fourthToAct);
|
||||||
|
order.push(fifthToAct);
|
||||||
|
|
||||||
|
assertEquals(0, fifthToAct.getFoodValue());
|
||||||
|
assertEquals(-2, fifthToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectFourWithoutFood() {
|
void fifthReturnWithoutFoodNoEffect() {
|
||||||
Player p = new Player("Giulio");
|
Player p1 = new Player("p1");
|
||||||
Order5 order = new Order5(new ArrayList<>());
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
players.add(p5);
|
||||||
|
Order5 order = new Order5(players);
|
||||||
|
|
||||||
int initialFood = p.getFoodValue();
|
Player firstToAct = order.pull();
|
||||||
int initialPrestige = p.getPrestigeValue();
|
Player secondToAct = order.pull();
|
||||||
|
Player thirdToAct = order.pull();
|
||||||
|
Player fourthToAct = order.pull();
|
||||||
|
Player fifthToAct = order.pull();
|
||||||
|
|
||||||
order.effect(p, 4);
|
int initialFood = fifthToAct.getFoodValue();
|
||||||
|
int initialPrestige = fifthToAct.getPrestigeValue();
|
||||||
|
|
||||||
assertEquals(initialFood, p.getFoodValue());
|
order.push(firstToAct);
|
||||||
assertEquals(initialPrestige, p.getPrestigeValue());
|
order.push(secondToAct);
|
||||||
|
order.push(thirdToAct);
|
||||||
|
order.push(fourthToAct);
|
||||||
|
order.push(fifthToAct);
|
||||||
|
|
||||||
|
assertEquals(initialFood, fifthToAct.getFoodValue());
|
||||||
|
assertEquals(initialPrestige, fifthToAct.getPrestigeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectWrongIndexHigh() {
|
void firstReturnWithBuilding() {
|
||||||
Player p = new Player("Marco");
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
players.add(p5);
|
||||||
|
Order5 order = new Order5(players);
|
||||||
|
|
||||||
|
Player firstToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
|
firstToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2));
|
||||||
|
|
||||||
|
order.push(firstToAct);
|
||||||
|
|
||||||
|
assertEquals(4, firstToAct.getFoodValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void secondReturnWithBuilding() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
players.add(p5);
|
||||||
|
Order5 order = new Order5(players);
|
||||||
|
|
||||||
|
Player firstToAct = order.pull();
|
||||||
|
Player secondToAct = order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
|
secondToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2));
|
||||||
|
|
||||||
|
order.push(firstToAct);
|
||||||
|
order.push(secondToAct);
|
||||||
|
|
||||||
|
assertEquals(2, secondToAct.getFoodValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void sixthPlayerThrows() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
Player p6 = new Player("p6");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
players.add(p5);
|
||||||
|
Order5 order = new Order5(players);
|
||||||
|
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
order.pull();
|
||||||
|
|
||||||
|
order.push(p1);
|
||||||
|
order.push(p2);
|
||||||
|
order.push(p3);
|
||||||
|
order.push(p4);
|
||||||
|
order.push(p5);
|
||||||
|
|
||||||
|
assertThrows(IndexOutOfBoundsException.class, () -> order.push(p6));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void constructorLoadsPlayers() {
|
||||||
|
Player p1 = new Player("p1");
|
||||||
|
Player p2 = new Player("p2");
|
||||||
|
Player p3 = new Player("p3");
|
||||||
|
Player p4 = new Player("p4");
|
||||||
|
Player p5 = new Player("p5");
|
||||||
|
ArrayList<Player> players = new ArrayList<>();
|
||||||
|
players.add(p1);
|
||||||
|
players.add(p2);
|
||||||
|
players.add(p3);
|
||||||
|
players.add(p4);
|
||||||
|
players.add(p5);
|
||||||
|
|
||||||
|
Order5 order = new Order5(players);
|
||||||
|
|
||||||
|
Player firstOut = order.pull();
|
||||||
|
Player secondOut = order.pull();
|
||||||
|
Player thirdOut = order.pull();
|
||||||
|
Player fourthOut = order.pull();
|
||||||
|
Player fifthOut = order.pull();
|
||||||
|
|
||||||
|
assertTrue(firstOut == p1 || firstOut == p2 || firstOut == p3 || firstOut == p4 || firstOut == p5);
|
||||||
|
assertTrue(secondOut == p1 || secondOut == p2 || secondOut == p3 || secondOut == p4 || secondOut == p5);
|
||||||
|
assertTrue(thirdOut == p1 || thirdOut == p2 || thirdOut == p3 || thirdOut == p4 || thirdOut == p5);
|
||||||
|
assertTrue(fourthOut == p1 || fourthOut == p2 || fourthOut == p3 || fourthOut == p4 || fourthOut == p5);
|
||||||
|
assertTrue(fifthOut == p1 || fifthOut == p2 || fifthOut == p3 || fifthOut == p4 || fifthOut == p5);
|
||||||
|
|
||||||
|
assertNotEquals(firstOut, secondOut);
|
||||||
|
assertNotEquals(firstOut, thirdOut);
|
||||||
|
assertNotEquals(firstOut, fourthOut);
|
||||||
|
assertNotEquals(firstOut, fifthOut);
|
||||||
|
assertNotEquals(secondOut, thirdOut);
|
||||||
|
assertNotEquals(secondOut, fourthOut);
|
||||||
|
assertNotEquals(secondOut, fifthOut);
|
||||||
|
assertNotEquals(thirdOut, fourthOut);
|
||||||
|
assertNotEquals(thirdOut, fifthOut);
|
||||||
|
assertNotEquals(fourthOut, fifthOut);
|
||||||
|
|
||||||
|
assertThrows(NoSuchElementException.class, order::pull);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void wrongIndexLow() {
|
||||||
|
Player p = new Player("p1");
|
||||||
|
Order5 order = new Order5(new ArrayList<>());
|
||||||
|
|
||||||
|
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, -1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void wrongIndexHigh() {
|
||||||
|
Player p = new Player("p1");
|
||||||
Order5 order = new Order5(new ArrayList<>());
|
Order5 order = new Order5(new ArrayList<>());
|
||||||
|
|
||||||
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, 5));
|
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, 5));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void effectWrongIndexLow() {
|
void getFirst() {
|
||||||
Player p = new Player("Marco");
|
Player p1 = new Player("p1");
|
||||||
Order5 order = new Order5(new ArrayList<>());
|
Order5 order = new Order5(new ArrayList<>());
|
||||||
|
|
||||||
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, -1));
|
assertNull(order.getFirst());
|
||||||
|
|
||||||
|
order.push(p1);
|
||||||
|
|
||||||
|
assertEquals(p1, order.getFirst());
|
||||||
|
assertEquals(p1, order.getFirst());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user