aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/me/xmrvizzy/skyblocker/skyblock/StatusBarTrackerTest.java
diff options
context:
space:
mode:
authorSerhan <serhanduzce@gmail.com>2022-06-16 12:34:35 +0300
committerGitHub <noreply@github.com>2022-06-16 12:34:35 +0300
commit5f323aaf6f26aba3a2f33eea9ed88e1ee40cc4f9 (patch)
tree856b91f6a6c8632b24ef05d1898c0ba1f847585b /src/test/java/me/xmrvizzy/skyblocker/skyblock/StatusBarTrackerTest.java
parent4afe31dca21b94c102099549800d4fa1cb1bbe6d (diff)
parent6c268d4f5b5d9447d9cd7ca4cb5afe2066198c97 (diff)
downloadSkyblocker-5f323aaf6f26aba3a2f33eea9ed88e1ee40cc4f9.tar.gz
Skyblocker-5f323aaf6f26aba3a2f33eea9ed88e1ee40cc4f9.tar.bz2
Skyblocker-5f323aaf6f26aba3a2f33eea9ed88e1ee40cc4f9.zip
Merge branch 'SkyblockerMod:master' into master
Diffstat (limited to 'src/test/java/me/xmrvizzy/skyblocker/skyblock/StatusBarTrackerTest.java')
-rw-r--r--src/test/java/me/xmrvizzy/skyblocker/skyblock/StatusBarTrackerTest.java74
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);
+ }
+}