InventoryTest.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package eu.oschl.textadventure;
  2. import eu.oschl.textadventure.map.Blockage;
  3. import eu.oschl.textadventure.map.Room;
  4. import eu.oschl.textadventure.objects.InventoryItem;
  5. import eu.oschl.textadventure.objects.Weapon;
  6. import org.junit.jupiter.api.BeforeEach;
  7. import org.junit.jupiter.api.Test;
  8. import static org.junit.jupiter.api.Assertions.*;
  9. /**
  10. * Tests for the Inventory class.
  11. *
  12. * @author Ondřej Schlaichert
  13. */
  14. class InventoryTest {
  15. private Inventory inventory;
  16. @BeforeEach
  17. void setUp() {
  18. inventory = new Inventory();
  19. }
  20. @Test
  21. void testConstructorInitializesEmptyInventory() {
  22. assertTrue(inventory.getItems().isEmpty());
  23. assertTrue(inventory.getWeapon().isEmpty());
  24. }
  25. @Test
  26. void testAddItemSucceedsWhenUnderLimit() {
  27. for (int i = 0; i < 5; i++) {
  28. InventoryItem item = makeItem("Item" + i);
  29. assertTrue(inventory.addItem(item));
  30. }
  31. }
  32. @Test
  33. void testAddItemFailsWhenOverLimit() {
  34. for (int i = 0; i < 5; i++) {
  35. assertTrue(inventory.addItem(makeItem("Item" + i)));
  36. }
  37. InventoryItem extra = makeItem("Overflow");
  38. assertFalse(inventory.addItem(extra));
  39. }
  40. @Test
  41. void testRemoveItemSucceedsIfPresent() {
  42. InventoryItem item = makeItem("Potion");
  43. inventory.addItem(item);
  44. assertTrue(inventory.removeItem(item));
  45. assertFalse(inventory.getItems().contains(item));
  46. }
  47. @Test
  48. void testRemoveItemFailsIfAbsent() {
  49. InventoryItem item = makeItem("Ghost Item");
  50. assertFalse(inventory.removeItem(item));
  51. }
  52. @Test
  53. void testSetWeaponReplacesWeapon() {
  54. Weapon axe = new Weapon("Axe", "Choppy", "CHOP", 15);
  55. Weapon sword = new Weapon("Sword", "Sharp", "SLASH", 25);
  56. inventory.setWeapon(axe);
  57. assertEquals(axe, inventory.getWeapon().orElse(null));
  58. inventory.setWeapon(sword);
  59. assertEquals(sword, inventory.getWeapon().orElse(null));
  60. }
  61. private InventoryItem makeItem(String name) {
  62. return new InventoryItem(
  63. name,
  64. "Desc of " + name,
  65. "Use text for " + name,
  66. new Room[0],
  67. new Blockage("Fake", 1)
  68. );
  69. }
  70. }