Fix: Orders

This commit is contained in:
rubenpirreram
2026-04-11 15:35:30 +02:00
parent 902e4ac729
commit cc460f414b
8 changed files with 60 additions and 85 deletions
@@ -3,14 +3,19 @@ package it.polimi.ingsw.gc14.Model.Orders;
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.OrderLogicCard;
import it.polimi.ingsw.gc14.Model.Player;
import jdk.jshell.spi.ExecutionControl;
import java.util.*;
public class Order2 extends OrderLogicCard {
public Order2(ArrayList<Player> players) {
public class Order2 extends OrderLogicCard {
public Order2(ArrayList<Player> players)throws NoSuchElementException {
if(players.size()!=2)
throw new NoSuchElementException();
super(players);
}
@Override
public void effect(Player player,int index) throws IndexOutOfBoundsException
protected void effect(Player player,int index) throws IndexOutOfBoundsException
{
if(index >= 2 || index < 0)
{
@@ -4,13 +4,16 @@ import it.polimi.ingsw.gc14.Model.OrderLogicCard;
import it.polimi.ingsw.gc14.Model.Player;
import java.util.ArrayList;
import java.util.NoSuchElementException;
public class Order3 extends OrderLogicCard {
public Order3(ArrayList<Player> players) {
public Order3(ArrayList<Player> players) throws NoSuchElementException{
if(players.size()!=3)
throw new NoSuchElementException();
super(players);
}
@Override
public void effect(Player player,int index) throws IndexOutOfBoundsException
protected void effect(Player player,int index) throws IndexOutOfBoundsException
{
if(index >= 3 || index < 0)
{
@@ -4,13 +4,16 @@ import it.polimi.ingsw.gc14.Model.OrderLogicCard;
import it.polimi.ingsw.gc14.Model.Player;
import java.util.ArrayList;
import java.util.NoSuchElementException;
public class Order4 extends OrderLogicCard {
public Order4(ArrayList<Player> players) {
public Order4(ArrayList<Player> players)throws NoSuchElementException {
if(players.size()!=4)
throw new NoSuchElementException();
super(players);
}
@Override
public void effect(Player player,int index) throws IndexOutOfBoundsException
protected void effect(Player player,int index) throws IndexOutOfBoundsException
{
if(index>=4 || index < 0)
{
@@ -4,13 +4,16 @@ import it.polimi.ingsw.gc14.Model.OrderLogicCard;
import it.polimi.ingsw.gc14.Model.Player;
import java.util.ArrayList;
import java.util.NoSuchElementException;
public class Order5 extends OrderLogicCard {
public Order5(ArrayList<Player> players) {
public Order5(ArrayList<Player> players) throws NoSuchElementException{
if(players.size()!=5)
throw new NoSuchElementException();
super(players);
}
@Override
public void effect(Player player,int index) throws IndexOutOfBoundsException
protected void effect(Player player,int index) throws IndexOutOfBoundsException
{
if(index>=5 || index < 0)
{
@@ -4,6 +4,7 @@ import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Player;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.NoSuchElementException;
import static org.junit.jupiter.api.Assertions.*;
@@ -123,30 +124,18 @@ class Order2Test {
Player secondOut = order.pull();
assertTrue((firstOut == p1 && secondOut == p2) || (firstOut == p2 && secondOut == p1));
assertThrows(NoSuchElementException.class, order::pull);
assertNull(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");
Order2 order = new Order2(new ArrayList<>());
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, 2));
}
@Test
void getFirst() {
Player p1 = new Player("p1");
Order2 order = new Order2(new ArrayList<>());
Player p2 = new Player("p2");
Order2 order = new Order2(new ArrayList<>(Arrays.asList(p1, p2)));
order.pull();
order.pull();
assertNull(order.getFirst());
order.push(p1);
@@ -4,6 +4,7 @@ import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Player;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.NoSuchElementException;
import static org.junit.jupiter.api.Assertions.*;
@@ -174,30 +175,20 @@ class Order3Test {
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<>());
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, 3));
assertNull(order.pull());
}
@Test
void getFirst() {
Player p1 = new Player("p1");
Order3 order = new Order3(new ArrayList<>());
Player p2 = new Player("p2");
Player p3 = new Player("p3");
Order3 order = new Order3(new ArrayList<>(Arrays.asList(p1, p2, p3)));
order.pull();
order.pull();
order.pull();
assertNull(order.getFirst());
order.push(p1);
@@ -4,6 +4,7 @@ import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Player;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.NoSuchElementException;
import static org.junit.jupiter.api.Assertions.*;
@@ -257,30 +258,21 @@ class Order4Test {
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<>());
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, 4));
assertNull(order.pull());
}
@Test
void getFirst() {
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");
Order4 order = new Order4(new ArrayList<>(Arrays.asList(p1, p2, p3, p4)));
order.pull();
order.pull();
order.pull();
order.pull();
assertNull(order.getFirst());
order.push(p1);
@@ -4,10 +4,7 @@ import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Player;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.*;
import static org.junit.jupiter.api.Assertions.*;
@@ -334,30 +331,22 @@ class Order5Test {
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<>());
assertThrows(IndexOutOfBoundsException.class, () -> order.effect(p, 5));
assertEquals(null, order.pull());
}
@Test
void getFirst() {
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");
Order5 order = new Order5(new ArrayList<>(Arrays.asList(p1,p2,p3,p4,p5)));
Player firstOut = order.pull();
Player secondOut = order.pull();
Player thirdOut = order.pull();
Player fourthOut = order.pull();
Player fifthOut = order.pull();
assertNull(order.getFirst());
order.push(p1);