From f722c8ed8e36ad2e311792e8c97337e644570bfb Mon Sep 17 00:00:00 2001 From: Nicolai Brand <nicolahb@stud.ntnu.no> Date: Sun, 21 May 2023 20:01:21 +0200 Subject: [PATCH] test: some unit tests for Playthrough --- .../group_30/paths/model/Playthrough.java | 2 +- .../group_30/paths/model/PlayhtroughTest.java | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/test/java/edu/ntnu/idatt2001/group_30/paths/model/PlayhtroughTest.java diff --git a/src/main/java/edu/ntnu/idatt2001/group_30/paths/model/Playthrough.java b/src/main/java/edu/ntnu/idatt2001/group_30/paths/model/Playthrough.java index 1290478..0433bdb 100644 --- a/src/main/java/edu/ntnu/idatt2001/group_30/paths/model/Playthrough.java +++ b/src/main/java/edu/ntnu/idatt2001/group_30/paths/model/Playthrough.java @@ -70,7 +70,7 @@ public class Playthrough { return; } - if (!currentPassage.hasLinks()) { + if (currentPassage != null && !currentPassage.hasLinks()) { gameState = PlaythroughState.STUCK; } } diff --git a/src/test/java/edu/ntnu/idatt2001/group_30/paths/model/PlayhtroughTest.java b/src/test/java/edu/ntnu/idatt2001/group_30/paths/model/PlayhtroughTest.java new file mode 100644 index 0000000..859a2db --- /dev/null +++ b/src/test/java/edu/ntnu/idatt2001/group_30/paths/model/PlayhtroughTest.java @@ -0,0 +1,46 @@ +package edu.ntnu.idatt2001.group_30.paths.model; + +import static org.junit.jupiter.api.Assertions.*; + +import edu.ntnu.idatt2001.group_30.paths.model.goals.Goal; +import edu.ntnu.idatt2001.group_30.paths.model.goals.GoldGoal; +import java.util.List; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class PlaythroughTest { + + private Playthrough playthrough; + Passage openingPassage; + + @BeforeEach + void setUp() { + openingPassage = new Passage("Opening passage", "This is the opening passage"); + Player player = new Player("Player", 10, 20, 30); + Story story = new Story("My story", openingPassage); + List<Goal> goals = List.of(new GoldGoal(50)); + Game game = new Game(player, story, goals); + + playthrough = new Playthrough(game); + } + + @Test + void testBeginPlaythrough() { + PlaythroughState state = playthrough.beginPlaythrough(); + assertEquals(PlaythroughState.STUCK, state); + assertEquals(openingPassage, playthrough.getCurrentPassage()); + } + + @Test + void testMakeTurn() { + playthrough.beginPlaythrough(); + Link link = new Link("Link", "Passage123"); + PlaythroughState state = playthrough.makeTurn(link); + assertEquals(PlaythroughState.STUCK, state); + } + + @Test + void testMakeTurnWithNullLink() { + assertThrows(NullPointerException.class, () -> playthrough.makeTurn(null)); + } +} -- GitLab