diff options
author | External Time <84183548+ExternalTime@users.noreply.github.com> | 2022-04-27 00:25:33 +0200 |
---|---|---|
committer | External Time <84183548+ExternalTime@users.noreply.github.com> | 2022-04-27 00:34:01 +0200 |
commit | 61216edf3ebd20ce0e37ffdd0fc42e89068abe49 (patch) | |
tree | a514c042df1c31e5a38da4e5cdd1cc115b79b9c4 /src/test/java | |
parent | 9b52a8a15acae268aace6e3729a773fc4476ca55 (diff) | |
download | Skyblocker-61216edf3ebd20ce0e37ffdd0fc42e89068abe49.tar.gz Skyblocker-61216edf3ebd20ce0e37ffdd0fc42e89068abe49.tar.bz2 Skyblocker-61216edf3ebd20ce0e37ffdd0fc42e89068abe49.zip |
Separated parsing action bar and drawing hud. Rewrote parsing to be hopefully more robust.
Diffstat (limited to 'src/test/java')
-rw-r--r-- | src/test/java/me/xmrvizzy/skyblocker/skyblock/StatusBarTrackerTest.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/test/java/me/xmrvizzy/skyblocker/skyblock/StatusBarTrackerTest.java b/src/test/java/me/xmrvizzy/skyblocker/skyblock/StatusBarTrackerTest.java new file mode 100644 index 00000000..da919699 --- /dev/null +++ b/src/test/java/me/xmrvizzy/skyblocker/skyblock/StatusBarTrackerTest.java @@ -0,0 +1,74 @@ +package me.xmrvizzy.skyblocker.skyblock; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class StatusBarTrackerTest { + private StatusBarTracker tracker; + + @BeforeEach + void setUp() { + tracker = new StatusBarTracker(); + } + + void assertStats(int hp, int maxHp, int def, int mana, int maxMana, int overflowMana) { + int absorption = 0; + if(hp > maxHp) { + absorption = hp - maxHp; + hp -= absorption; + if(absorption > maxHp) + absorption = maxHp; + } + assertEquals(new StatusBarTracker.Resource(hp, maxHp, absorption), tracker.getHealth()); + assertEquals(new StatusBarTracker.Resource(mana, maxMana, overflowMana), tracker.getMana()); + } + + @Test + void normalStatusBar() { + String res = tracker.update("§c934/1086❤ §a159§a❈ Defense §b562/516✎ Mana", false); + assertNull(res); + assertStats(934, 1086, 159, 562, 516, 0); + } + + @Test + void overflowMana() { + String res = tracker.update("§61605/1305❤ §a270§a❈ Defense §b548/548✎ §3200ʬ", false); + assertNull(res); + assertStats(1605, 1305, 270, 548, 548, 200); + } + + @Test + void regeneration() { + String res = tracker.update("§c2484/2484❤+§c120▄ §a642§a❈ Defense §b2557/2611✎ Mana", false); + assertEquals("§c❤+§c120▄", res); + } + + @Test + void instantTransmission() { + String actionBar = "§c2259/2259❤ §b-20 Mana (§6Instant Transmission§b) §b549/2676✎ Mana"; + assertEquals("§b-20 Mana (§6Instant Transmission§b)", tracker.update(actionBar, false)); + assertNull(tracker.update(actionBar, true)); + } + + @Test + void rapidFire() { + String actionBar = "§c2509/2509❤ §b-48 Mana (§6Rapid-fire§b) §b2739/2811✎ Mana"; + assertEquals("§b-48 Mana (§6Rapid-fire§b)", tracker.update(actionBar, false)); + assertNull(tracker.update(actionBar, true)); + } + + @Test + void zombieSword() { + String actionBar = "§c2509/2509❤ §b-56 Mana (§6Instant Heal§b) §b2674/2821✎ Mana §e§lⓩⓩⓩⓩ§6§lⓄ"; + assertEquals("§b-56 Mana (§6Instant Heal§b) §e§lⓩⓩⓩⓩ§6§lⓄ", tracker.update(actionBar, false)); + assertEquals("§e§lⓩⓩⓩⓩ§6§lⓄ", tracker.update(actionBar, true)); + } + + @Test + void campfire() { + String res = tracker.update("§c17070/25565❤+§c170▃ §65,625 DPS §c1 second §b590/626✎ §3106ʬ", false); + assertEquals("§c❤+§c170▃ §65,625 DPS §c1 second", res); + } +} |