GameTimeTest.java 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package cz.davza.studentadventure.objects;
  2. import org.junit.jupiter.api.Test;
  3. import static org.junit.jupiter.api.Assertions.*;
  4. class GameTimeTest {
  5. @Test
  6. void startsOnDay1At8() {
  7. GameTime time = new GameTime();
  8. assertEquals(1, time.getDay());
  9. assertEquals(8, time.getHour());
  10. }
  11. @Test
  12. void advanceHoursWithinSameDay() {
  13. GameTime time = new GameTime();
  14. time.advanceHours(3);
  15. assertEquals(1, time.getDay());
  16. assertEquals(11, time.getHour());
  17. }
  18. @Test
  19. void advanceHoursRollsOverToNextDay() {
  20. GameTime time = new GameTime();
  21. time.advanceHours(20); // 8 + 20 = 28 → day 2, hour 4
  22. assertEquals(2, time.getDay());
  23. assertEquals(4, time.getHour());
  24. }
  25. @Test
  26. void advanceHoursRollsOverMultipleDays() {
  27. GameTime time = new GameTime();
  28. time.advanceHours(48); // 8 + 48 = 56 → day 3, hour 8
  29. assertEquals(3, time.getDay());
  30. assertEquals(8, time.getHour());
  31. }
  32. @Test
  33. void advanceToNextMorningSetsDay2Hour8() {
  34. GameTime time = new GameTime();
  35. time.advanceHours(5); // move to hour 13
  36. time.advanceToNextMorning();
  37. assertEquals(2, time.getDay());
  38. assertEquals(8, time.getHour());
  39. }
  40. @Test
  41. void notPastDeadlineAtStart() {
  42. GameTime time = new GameTime();
  43. assertFalse(time.isPastDeadline());
  44. }
  45. @Test
  46. void notPastDeadlineJustBeforeExam() {
  47. GameTime time = new GameTime();
  48. // advance to day 7, hour 8 — one hour before deadline
  49. for (int i = 0; i < 6; i++) time.advanceToNextMorning();
  50. assertEquals(7, time.getDay());
  51. assertEquals(8, time.getHour());
  52. assertFalse(time.isPastDeadline());
  53. }
  54. @Test
  55. void pastDeadlineAtExactDeadline() {
  56. GameTime time = new GameTime();
  57. for (int i = 0; i < 6; i++) time.advanceToNextMorning();
  58. time.advanceHours(1); // day 7, hour 9
  59. assertTrue(time.isPastDeadline());
  60. }
  61. @Test
  62. void pastDeadlineAfterDay7() {
  63. GameTime time = new GameTime();
  64. for (int i = 0; i < 7; i++) time.advanceToNextMorning();
  65. assertTrue(time.isPastDeadline());
  66. }
  67. @Test
  68. void toStringFormat() {
  69. GameTime time = new GameTime();
  70. assertEquals("Day 1, 08:00", time.toString());
  71. }
  72. }