| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package cz.davza.studentadventure.commands;
- import cz.davza.studentadventure.Items.Book;
- import cz.davza.studentadventure.Items.EnergyDrink;
- import cz.davza.studentadventure.TestHelpers;
- import cz.davza.studentadventure.enums.CommandState;
- import cz.davza.studentadventure.objects.CommandResult;
- import cz.davza.studentadventure.objects.GameData;
- import cz.davza.studentadventure.objects.Player;
- import org.junit.jupiter.api.BeforeEach;
- import org.junit.jupiter.api.Test;
- import static cz.davza.studentadventure.TestHelpers.execute;
- import static org.junit.jupiter.api.Assertions.*;
- class ConsumeCommandTest {
- private GameData context;
- private Player player;
- @BeforeEach
- void setUp() {
- context = TestHelpers.buildGameData();
- player = context.getPlayer();
- player.getInventory().Add(new EnergyDrink(), 2);
- }
- @Test
- void consumeAppliesItemEffect() {
- player.getEnergy().decrease(50);
- int before = player.getEnergy().getValue();
- execute("consume energy_drink", context);
- assertEquals(before + EnergyDrink.ENERGY_RESTORE, player.getEnergy().getValue());
- }
- @Test
- void consumeRemovesOneFromStack() {
- execute("consume energy_drink", context);
- assertEquals(1, player.getInventory().GetByItemCode("energy_drink").getAmount());
- }
- @Test
- void consumeLastItemClearsInventoryEntry() {
- player.getInventory().Add(new EnergyDrink(), 1);
- // inventory has 2 from setUp + 1 = 3 total
- execute("consume energy_drink", context);
- execute("consume energy_drink", context);
- execute("consume energy_drink", context);
- assertNull(player.getInventory().GetByItemCode("energy_drink"));
- }
- @Test
- void consumeRestoresInventoryCapacity() {
- int before = player.getInventory().GetRemainingCapacity();
- execute("consume energy_drink", context);
- assertEquals(before + new EnergyDrink().getBulk(),
- player.getInventory().GetRemainingCapacity());
- }
- @Test
- void consumeReturnsSuccessState() {
- CommandResult result = execute("consume energy_drink", context);
- assertEquals(CommandState.SUCCESS, result.getResultState());
- }
- @Test
- void consumeItemNotInInventoryReturnsItemNotFound() {
- CommandResult result = execute("consume mouldy_cheese", context);
- assertEquals(CommandState.ITEM_NOT_FOUND, result.getResultState());
- }
- @Test
- void consumeNonConsumableReturnsFailed() {
- player.getInventory().Add(new Book(), 1);
- CommandResult result = execute("consume book", context);
- assertEquals(CommandState.FAILED, result.getResultState());
- }
- @Test
- void consumeWithNoParamsReturnsInvalidParams() {
- CommandResult result = execute("consume", context);
- assertEquals(CommandState.INVALID_PARAMS, result.getResultState());
- }
- @Test
- void consumeEnergyCappsAt100() {
- // energy already at 100 — drink shouldn't push above 100
- execute("consume energy_drink", context);
- assertEquals(100, player.getEnergy().getValue());
- }
- }
|