package cz.davza.studentadventure.objects; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class WalletTest { @Test void startsWithGivenAmount() { Wallet wallet = new Wallet(50); assertEquals(50, wallet.getMoney()); } @Test void earnMoneyIncreasesBalance() { Wallet wallet = new Wallet(10); wallet.earnMoney(20); assertEquals(30, wallet.getMoney()); } @Test void spendMoneyReducesBalance() { Wallet wallet = new Wallet(50); boolean result = wallet.spendMoney(20); assertTrue(result); assertEquals(30, wallet.getMoney()); } @Test void spendMoneyReturnsFalseWhenInsufficient() { Wallet wallet = new Wallet(10); boolean result = wallet.spendMoney(20); assertFalse(result); } @Test void balanceUnchangedAfterFailedSpend() { Wallet wallet = new Wallet(10); wallet.spendMoney(20); assertEquals(10, wallet.getMoney()); } @Test void spendExactBalanceSucceeds() { Wallet wallet = new Wallet(20); assertTrue(wallet.spendMoney(20)); assertEquals(0, wallet.getMoney()); } @Test void defaultConstructorStartsAtZero() { Wallet wallet = new Wallet(); assertEquals(0, wallet.getMoney()); } }