aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/me
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/me')
-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);
+ }
+}