package sim import "testing" func TestWalletPayTopUpAndPhone(t *testing.T) { w := NewWallet() if w.Card != StartCardYen || w.Cash != StartCashYen || !w.CardUsable() { t.Fatal("startvärden") } if !w.PayCard(200) || w.Card != StartCardYen-200 || w.Spent != 200 { t.Fatal("PayCard") } if w.PayCard(99999) { t.Fatal("kan inte betala mer än saldot") } if !w.TopUp(1000) || w.Card != StartCardYen-200+1000 || w.Cash != StartCashYen-1000 || w.Spent != 200 { t.Fatal("TopUp flyttar kontanter till kortet utan att räknas som spenderat") } if w.TopUp(99999) || !w.PayCash(150) || w.PayCash(99999) { t.Fatal("kontantgränser") } w.Phone = true w.Drain(450) // halva batteriet if w.Battery < 49 || w.Battery > 51 || !w.CardUsable() { t.Fatalf("battery=%.1f", w.Battery) } w.Drain(10000) if w.Battery != 0 || w.CardUsable() || w.PayCard(1) { t.Fatal("dött batteri = kortet i telefonen går inte att använda") } w.Phone = false if !w.CardUsable() { t.Fatal("kortet i plånboken bryr sig inte om batteriet") } }