| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package eu.oschl.textadventure;
- import eu.oschl.textadventure.map.Blockage;
- import eu.oschl.textadventure.map.Room;
- import eu.oschl.textadventure.objects.InventoryItem;
- import eu.oschl.textadventure.objects.Weapon;
- import org.junit.jupiter.api.BeforeEach;
- import org.junit.jupiter.api.Test;
- import static org.junit.jupiter.api.Assertions.*;
- /**
- * Tests for the Inventory class.
- *
- * @author Ondřej Schlaichert
- */
- class InventoryTest {
- private Inventory inventory;
- @BeforeEach
- void setUp() {
- inventory = new Inventory();
- }
- @Test
- void testConstructorInitializesEmptyInventory() {
- assertTrue(inventory.getItems().isEmpty());
- assertTrue(inventory.getWeapon().isEmpty());
- }
- @Test
- void testAddItemSucceedsWhenUnderLimit() {
- for (int i = 0; i < 5; i++) {
- InventoryItem item = makeItem("Item" + i);
- assertTrue(inventory.addItem(item));
- }
- }
- @Test
- void testAddItemFailsWhenOverLimit() {
- for (int i = 0; i < 5; i++) {
- assertTrue(inventory.addItem(makeItem("Item" + i)));
- }
- InventoryItem extra = makeItem("Overflow");
- assertFalse(inventory.addItem(extra));
- }
- @Test
- void testRemoveItemSucceedsIfPresent() {
- InventoryItem item = makeItem("Potion");
- inventory.addItem(item);
- assertTrue(inventory.removeItem(item));
- assertFalse(inventory.getItems().contains(item));
- }
- @Test
- void testRemoveItemFailsIfAbsent() {
- InventoryItem item = makeItem("Ghost Item");
- assertFalse(inventory.removeItem(item));
- }
- @Test
- void testSetWeaponReplacesWeapon() {
- Weapon axe = new Weapon("Axe", "Choppy", "CHOP", 15);
- Weapon sword = new Weapon("Sword", "Sharp", "SLASH", 25);
- inventory.setWeapon(axe);
- assertEquals(axe, inventory.getWeapon().orElse(null));
- inventory.setWeapon(sword);
- assertEquals(sword, inventory.getWeapon().orElse(null));
- }
- private InventoryItem makeItem(String name) {
- return new InventoryItem(
- name,
- "Desc of " + name,
- "Use text for " + name,
- new Room[0],
- new Blockage("Fake", 1)
- );
- }
- }
|