ClassroomRoomTest.java 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package cz.davza.studentadventure.rooms;
  2. import cz.davza.studentadventure.Items.Book;
  3. import cz.davza.studentadventure.TestHelpers;
  4. import cz.davza.studentadventure.enums.CommandState;
  5. import cz.davza.studentadventure.objects.CommandResult;
  6. import cz.davza.studentadventure.objects.GameData;
  7. import org.junit.jupiter.api.BeforeEach;
  8. import org.junit.jupiter.api.Test;
  9. import static org.junit.jupiter.api.Assertions.*;
  10. class ClassroomRoomTest {
  11. private GameData context;
  12. @BeforeEach
  13. void setUp() {
  14. context = TestHelpers.buildGameData();
  15. // Bedroom → Hallway
  16. context.getMap().setNextRoom(context.getMap().getCurrentRoom().getExit("hallway"));
  17. context.getMap().commitRoomChange();
  18. }
  19. private ClassroomRoom getClassroomRoom() {
  20. return (ClassroomRoom) context.getMap().getCurrentRoom().getExit("classroom");
  21. }
  22. @Test
  23. void enterWithoutBookReturnsFailed() {
  24. CommandResult result = getClassroomRoom().onEnter(context);
  25. assertEquals(CommandState.FAILED, result.getResultState());
  26. }
  27. @Test
  28. void enterWithoutBookAppliesStressPenalty() {
  29. int stressBefore = context.getPlayer().getStress().getValue();
  30. getClassroomRoom().onEnter(context);
  31. assertEquals(stressBefore + 15, context.getPlayer().getStress().getValue());
  32. }
  33. @Test
  34. void enterWithoutBookCancelsRoomChange() {
  35. getClassroomRoom().onEnter(context);
  36. assertFalse(context.getMap().hasPendingRoomChange());
  37. }
  38. @Test
  39. void enterWithBookReturnsSuccess() {
  40. context.getPlayer().getInventory().Add(new Book(), 1);
  41. CommandResult result = getClassroomRoom().onEnter(context);
  42. assertEquals(CommandState.SUCCESS, result.getResultState());
  43. }
  44. @Test
  45. void enterWithBookDoesNotAddStress() {
  46. context.getPlayer().getInventory().Add(new Book(), 1);
  47. int stressBefore = context.getPlayer().getStress().getValue();
  48. getClassroomRoom().onEnter(context);
  49. assertEquals(stressBefore, context.getPlayer().getStress().getValue());
  50. }
  51. @Test
  52. void classroomHasSleepCommand() {
  53. assertTrue(getClassroomRoom().getAllowedCommands().contains("sleep"));
  54. }
  55. @Test
  56. void classroomHasStickyNote() {
  57. assertNotNull(getClassroomRoom().getItems().GetByItemCode("sticky_note"));
  58. }
  59. }