diff --git a/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCard.java b/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCard.java index 86eac96..4ae6d26 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCard.java +++ b/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCard.java @@ -17,6 +17,9 @@ public class ProgrammingCard implements Comparable { * @param cardAction the action of the card */ public ProgrammingCard(int cardPriority, Action cardAction) { + if (cardPriority < 10 || cardPriority > 840 || cardPriority % 10 != 0) { + throw new IllegalArgumentException("You cannot create a programming card not part of the original game."); + } this.cardPriority = cardPriority; this.cardAction = cardAction; } diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 4cd9aa9..862805c 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -131,6 +131,9 @@ public class RoboRallyGame implements DrawableGame, InteractableGame { @Override public void setProgram(List program) { + if (program.size() != 5) { + throw new IllegalArgumentException("Invalid program chosen."); + } this.program = program; } diff --git a/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java b/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java index ed9ae08..b272121 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java @@ -270,9 +270,9 @@ public class PhaseTest { List testProgram1 = new ArrayList<>(); List testProgram2 = new ArrayList<>(); List testProgram3 = new ArrayList<>(); - testProgram1.add(new ProgrammingCard(1, Action.MOVE_1)); - testProgram2.add(new ProgrammingCard(10, Action.MOVE_1)); - testProgram3.add(new ProgrammingCard(100, Action.ROTATE_LEFT)); + testProgram1.add(new ProgrammingCard(10, Action.MOVE_1)); + testProgram2.add(new ProgrammingCard(20, Action.MOVE_1)); + testProgram3.add(new ProgrammingCard(30, Action.ROTATE_LEFT)); for (int i = 0; i < 4; i++) { testProgram1.add(null); testProgram2.add(null); diff --git a/src/test/java/inf112/fiasko/roborally/objects/ProgrammingCardDeckTest.java b/src/test/java/inf112/fiasko/roborally/objects/ProgrammingCardDeckTest.java index 34bf9d1..d656ca7 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/ProgrammingCardDeckTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/ProgrammingCardDeckTest.java @@ -29,9 +29,9 @@ public class ProgrammingCardDeckTest { e.printStackTrace(); } ArrayList cardList = new ArrayList<>(); - programmingCard1 = new ProgrammingCard(5, Action.MOVE_1); - ProgrammingCard programmingCard2 = new ProgrammingCard(6, Action.MOVE_2); - programmingCard3 = new ProgrammingCard(7, Action.MOVE_3); + programmingCard1 = new ProgrammingCard(10, Action.MOVE_1); + ProgrammingCard programmingCard2 = new ProgrammingCard(20, Action.MOVE_2); + programmingCard3 = new ProgrammingCard(30, Action.MOVE_3); cardList.add(programmingCard1); cardList.add(programmingCard2); cardList.add(programmingCard3); diff --git a/src/test/java/inf112/fiasko/roborally/objects/ProgrammingCardTest.java b/src/test/java/inf112/fiasko/roborally/objects/ProgrammingCardTest.java index 10a3d2a..0fdadfb 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/ProgrammingCardTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/ProgrammingCardTest.java @@ -15,9 +15,9 @@ public class ProgrammingCardTest { @Before public void setUp() { - programmingCard1 = new ProgrammingCard(5, Action.MOVE_1); - programmingCard2 = new ProgrammingCard(234, Action.ROTATE_LEFT); - programmingCard3 = new ProgrammingCard(2334, Action.ROTATE_LEFT); + programmingCard1 = new ProgrammingCard(50, Action.MOVE_1); + programmingCard2 = new ProgrammingCard(230, Action.ROTATE_LEFT); + programmingCard3 = new ProgrammingCard(500, Action.ROTATE_LEFT); } @Test @@ -28,8 +28,8 @@ public class ProgrammingCardTest { @Test public void testGetProgrammingCardValue() { - assertEquals(5, programmingCard1.getPriority()); - assertEquals(234, programmingCard2.getPriority()); - assertEquals(2334, programmingCard3.getPriority()); + assertEquals(50, programmingCard1.getPriority()); + assertEquals(230, programmingCard2.getPriority()); + assertEquals(500, programmingCard3.getPriority()); } } diff --git a/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java b/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java index 07715ea..1a504c0 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java @@ -1,14 +1,20 @@ package inf112.fiasko.roborally.objects; +import static junit.framework.TestCase.assertEquals; +import static junit.framework.TestCase.assertNull; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import inf112.fiasko.roborally.elementproperties.Action; +import inf112.fiasko.roborally.elementproperties.GameState; import org.junit.Before; import org.junit.Test; import java.util.ArrayList; +import java.util.List; public class RoboRallyGameTest { - private DrawableGame game; + private RoboRallyGame game; @Before public void setUp() { @@ -21,18 +27,74 @@ public class RoboRallyGameTest { assertTrue(game.getWidth() > 0); } - @Test - public void gameWidthIsMaximumFullHD() { - assertTrue(game.getWidth() <= 1920); - } - @Test public void gameHeightIsPositive() { assertTrue(game.getHeight() > 0); } @Test - public void gameHeightIsMaximumFullHD() { - assertTrue(game.getHeight() <= 1080); + public void initialGameStateIsCorrect() { + assertEquals(GameState.BEGINNING_OF_GAME, game.getGameState()); } + + @Test + public void gameStateIsChangeable() { + game.setGameState(GameState.EXITED); + assertEquals(GameState.EXITED, game.getGameState()); + } + + @Test + public void gameWidthIsEqualToBoardWidth() { + assertEquals(12, game.getWidth()); + } + + @Test + public void gameHeightIsEqualToBoardHeight() { + assertEquals(16, game.getHeight()); + } + + @Test (expected = IllegalArgumentException.class) + public void invalidProgramThrowsError() { + List programmingCardList = new ArrayList<>(); + programmingCardList.add(new ProgrammingCard(10, Action.MOVE_1)); + game.setProgram(programmingCardList); + } + + @Test + public void canChangeGameProgram() { + assertNull(game.getProgram()); + List programmingCardList = new ArrayList<>(); + programmingCardList.add(new ProgrammingCard(10, Action.MOVE_1)); + programmingCardList.add(new ProgrammingCard(30, Action.MOVE_2)); + programmingCardList.add(new ProgrammingCard(50, Action.MOVE_3)); + programmingCardList.add(new ProgrammingCard(340, Action.BACK_UP)); + programmingCardList.add(new ProgrammingCard(450, Action.U_TURN)); + game.setProgram(programmingCardList); + assertEquals(programmingCardList, game.getProgram()); + } + + @Test + public void canChangePlayerHand() { + assertNull(game.getPlayerHand()); + ProgrammingCard card = new ProgrammingCard(10, Action.ROTATE_RIGHT); + List cards = new ArrayList<>(); + cards.add(card); + ProgrammingCardDeck deck = new ProgrammingCardDeck(cards); + game.setPlayerHand(deck); + assertEquals(card, game.getPlayerHand().peekTop()); + } + + @Test + public void canChangeWinningPlayer() { + assertNull(game.getWinningPlayerName()); + String winning = "Player 1"; + game.setWinningPlayerName(winning); + assertEquals(winning, game.getWinningPlayerName()); + } + + @Test + public void canGetPowerDown() { + assertFalse(game.getRobotPowerDown()); + } + }