PlayerTest.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package cz.davza.studentadventure.objects;
  2. import cz.davza.studentadventure.enums.DeprivationState;
  3. import org.junit.jupiter.api.BeforeEach;
  4. import org.junit.jupiter.api.Test;
  5. import static org.junit.jupiter.api.Assertions.*;
  6. class PlayerTest {
  7. private Player player;
  8. @BeforeEach
  9. void setUp() {
  10. player = new Player("Dave", 20);
  11. }
  12. @Test
  13. void startsWithDefaultStats() {
  14. assertEquals(5, player.getIntelligence().getValue());
  15. assertEquals(100, player.getEnergy().getValue());
  16. assertEquals(0, player.getStress().getValue());
  17. }
  18. @Test
  19. void startsWithStartingMoney() {
  20. assertEquals(50, player.getWallet().getMoney());
  21. }
  22. @Test
  23. void nameIsSet() {
  24. assertEquals("Dave", player.getName());
  25. }
  26. @Test
  27. void idIsNotNull() {
  28. assertNotNull(player.getId());
  29. }
  30. @Test
  31. void addHoursAwakeAccumulates() {
  32. player.addHoursAwake(5);
  33. player.addHoursAwake(5);
  34. assertEquals(DeprivationState.NORMAL, player.getDeprivationState()); // 10 < tired threshold 14
  35. }
  36. @Test
  37. void deprivationStateTiredAt14Hours() {
  38. player.addHoursAwake(14);
  39. assertEquals(DeprivationState.TIRED, player.getDeprivationState());
  40. }
  41. @Test
  42. void deprivationStateDeprivedAt20Hours() {
  43. player.addHoursAwake(20);
  44. assertEquals(DeprivationState.DEPRIVED, player.getDeprivationState());
  45. }
  46. @Test
  47. void resetHoursAwakeSetsToNormal() {
  48. player.addHoursAwake(25);
  49. player.resetHoursAwake();
  50. assertEquals(DeprivationState.NORMAL, player.getDeprivationState());
  51. }
  52. @Test
  53. void multiplierIs1WhenNormal() {
  54. assertEquals(1.0, player.getDeprivationMultiplier(), 0.001);
  55. }
  56. @Test
  57. void multiplierIs1point3WhenTired() {
  58. player.addHoursAwake(14);
  59. assertEquals(1.3, player.getDeprivationMultiplier(), 0.001);
  60. }
  61. @Test
  62. void multiplierIncreasesWhenDeprived() {
  63. player.addHoursAwake(21); // 1 hour past deprived threshold
  64. assertTrue(player.getDeprivationMultiplier() > 1.3);
  65. }
  66. @Test
  67. void multiplierCapsAt3() {
  68. player.addHoursAwake(100);
  69. assertEquals(3.0, player.getDeprivationMultiplier(), 0.001);
  70. }
  71. @Test
  72. void printStatsContainsMoneyFromWallet() {
  73. String stats = player.printStats();
  74. assertTrue(stats.contains("50 coins"));
  75. }
  76. @Test
  77. void printStatsContainsAllStatNames() {
  78. String stats = player.printStats();
  79. assertTrue(stats.contains("Intelligence"));
  80. assertTrue(stats.contains("Energy"));
  81. assertTrue(stats.contains("Stress"));
  82. }
  83. }