From cc460f414bef28c0e6378d6627110d2be579d3aa Mon Sep 17 00:00:00 2001 From: rubenpirreram Date: Sat, 11 Apr 2026 15:35:30 +0200 Subject: [PATCH] Fix: Orders --- .../ingsw/gc14/Model/Orders/Order2.java | 11 ++++-- .../ingsw/gc14/Model/Orders/Order3.java | 7 ++-- .../ingsw/gc14/Model/Orders/Order4.java | 7 ++-- .../ingsw/gc14/Model/Orders/Order5.java | 7 ++-- .../ingsw/gc14/Model/Orders/Order2Test.java | 23 ++++-------- .../ingsw/gc14/Model/Orders/Order3Test.java | 27 +++++--------- .../ingsw/gc14/Model/Orders/Order4Test.java | 28 ++++++--------- .../ingsw/gc14/Model/Orders/Order5Test.java | 35 +++++++------------ 8 files changed, 60 insertions(+), 85 deletions(-) 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 b3affe4..29cb63b 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 @@ -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 players) { +public class Order2 extends OrderLogicCard { + public Order2(ArrayList 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) { diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java index ab207a6..f0144fb 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java @@ -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 players) { + public Order3(ArrayList 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) { diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java index 0bb9237..afde765 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java @@ -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 players) { + public Order4(ArrayList 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) { diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java index 5526df7..0f5f5dc 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java @@ -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 players) { + public Order5(ArrayList 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) { 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 b566c13..fb85436 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 @@ -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); 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 c15c129..ac80397 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 @@ -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); 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 3a683b6..e1e805d 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 @@ -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); 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 a9a21c7..380f1c5 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 @@ -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);